From 454a94c89e807f0d557a80b069571e2688fc97d0 Mon Sep 17 00:00:00 2001 From: Pessimistress Date: Fri, 31 Jul 2026 15:51:29 -0700 Subject: [PATCH] Replace eslint with biome --- .eslintignore | 3 - .eslintrc.cjs | 19 - .prettierignore | 2 - biome.jsonc | 43 + docs/README.md | 3 +- docs/table-of-contents.json | 6 - modules/dev-tools/docs/README.md | 49 +- .../docs/api-reference/get-eslint-config.md | 26 - .../docs/api-reference/get-prettier-config.md | 19 - modules/dev-tools/docs/cli/ocular-lint.md | 9 +- modules/dev-tools/docs/upgrade-guide.md | 8 + modules/dev-tools/package.json | 16 +- modules/dev-tools/scripts/bump.js | 2 +- modules/dev-tools/scripts/bundle.js | 2 +- modules/dev-tools/scripts/lint.js | 114 +- modules/dev-tools/scripts/lint.sh | 93 -- .../dev-tools/src/configuration/biome.jsonc | 89 ++ .../best-practices.json | 10 - .../ecmascript-6.json | 41 - .../eslint-config-uber-es2015/eslintrc.json | 37 - .../miscellaneous.json | 5 - .../stylistic-issues.json | 29 - .../best-practices.json | 81 -- .../eslint-config-uber-es5/errors.json | 115 -- .../eslint-config-uber-es5/eslintrc.json | 46 - .../eslint-config-uber-es5/miscellaneous.json | 8 - .../node-js-and-common-js.json | 27 - .../eslint-config-uber-es5/strict-mode.json | 8 - .../stylistic-issues.json | 178 ---- .../eslint-config-uber-es5/variables.json | 24 - .../best-practices.json | 5 - .../eslint-config-uber-jsx/eslintrc.json | 35 - .../eslint-config-uber-jsx/miscellaneous.json | 33 - .../stylistic-issues.json | 8 - .../src/configuration/get-esbuild-config.ts | 4 +- .../src/configuration/get-eslint-config.ts | 160 --- .../src/configuration/get-prettier-config.ts | 21 - modules/dev-tools/src/configuration/index.ts | 3 - modules/dev-tools/src/github-release.ts | 4 +- modules/dev-tools/src/helpers/aliases.ts | 2 +- modules/dev-tools/src/helpers/get-config.ts | 2 +- .../dev-tools/src/helpers/get-npm-dist-tag.ts | 2 +- .../src/helpers/get-ocular-config.ts | 9 +- modules/dev-tools/src/test.ts | 5 +- modules/dev-tools/src/utils/utils.ts | 4 +- modules/dev-tools/templates/.eslintignore | 3 - modules/dev-tools/templates/.prettierignore | 1 - modules/dev-tools/templates/.prettierrc | 5 - modules/dev-tools/test/configuration.spec.ts | 9 +- .../src/components/examples-index.tsx | 2 +- .../src/get-default-config.ts | 2 +- .../src/plugin-webpack-config/index.ts | 3 +- .../src/write-heading-ids.ts | 2 +- .../src/ts-transform-webgpu/index.ts | 1 - modules/ts-plugins/test/test-transformer.ts | 2 +- website/.eslintignore | 2 - yarn.lock | 984 ++---------------- 57 files changed, 383 insertions(+), 2042 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs delete mode 100644 .prettierignore create mode 100644 biome.jsonc delete mode 100644 modules/dev-tools/docs/api-reference/get-eslint-config.md delete mode 100644 modules/dev-tools/docs/api-reference/get-prettier-config.md delete mode 100755 modules/dev-tools/scripts/lint.sh create mode 100644 modules/dev-tools/src/configuration/biome.jsonc delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es2015/best-practices.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es2015/ecmascript-6.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es2015/eslintrc.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es2015/miscellaneous.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es2015/stylistic-issues.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/best-practices.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/errors.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/eslintrc.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/miscellaneous.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/node-js-and-common-js.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/strict-mode.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/stylistic-issues.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-es5/variables.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-jsx/best-practices.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-jsx/eslintrc.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-jsx/miscellaneous.json delete mode 100644 modules/dev-tools/src/configuration/eslint-config-uber-jsx/stylistic-issues.json delete mode 100644 modules/dev-tools/src/configuration/get-eslint-config.ts delete mode 100644 modules/dev-tools/src/configuration/get-prettier-config.ts delete mode 100644 modules/dev-tools/src/configuration/index.ts delete mode 100644 modules/dev-tools/templates/.eslintignore delete mode 100644 modules/dev-tools/templates/.prettierignore delete mode 100644 modules/dev-tools/templates/.prettierrc delete mode 100644 website/.eslintignore diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 08aa4ac..0000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -dist/ -test/ -test-case-*.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 363fa99..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,19 +0,0 @@ -const {getESLintConfig} = require('@vis.gl/dev-tools/configuration'); - -module.exports = getESLintConfig({ - react: "18.0.0", - overrides: { - rules: { - 'import/no-extraneous-dependencies': 0, - 'import/no-unresolved': 0, - 'no-console': 0, - 'no-continue': 0, - 'no-process-env': 0, - 'no-process-exit': 0 - }, - - env: { - node: true - } - } -}); diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 23559ac..0000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -**/dist*/**/*.js -test-case-*.ts \ No newline at end of file diff --git a/biome.jsonc b/biome.jsonc new file mode 100644 index 0000000..c05a56e --- /dev/null +++ b/biome.jsonc @@ -0,0 +1,43 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json", + "extends": ["./modules/dev-tools/src/configuration/biome.jsonc"], + "files": { + "includes": [ + "!**/dist/**", + "!**/build/**", + "!**/.cache/**", + "modules/**/*.js", + "modules/**/*.jsx", + "modules/**/*.ts", + "modules/**/*.tsx", + "scripts/**/*.js", + "scripts/**/*.jsx", + "scripts/**/*.ts", + "scripts/**/*.tsx", + "!**/test-case-*.ts" + ] + }, + "linter": { + "rules": { + "a11y": { + "recommended": false + }, + "correctness": { + "useExhaustiveDependencies": "off", + "useHookAtTopLevel": "off" + }, + "suspicious": { + "noArrayIndexKey": "off", + "noConsole": "off" + } + } + }, + "overrides": [ + { + "includes": ["modules/docusaurus-website/**/*.tsx"], + "javascript": { + "jsxRuntime": "reactClassic" + } + } + ] +} diff --git a/docs/README.md b/docs/README.md index cbe705a..8455312 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Welcome ocular is a set of tools to help build and publish open source frameworks. It contains: -- a `dev-tools` module that installs and provides base configurations for tools like webpack, babel, lerna, eslint prettier etc. +- a `dev-tools` module that installs and provides base configurations for tools such as Biome, Vite, esbuild and lerna. - a `gatsby-theme-ocular` module that contains a markdown to HTML converter to make it easy to build websites. ## About ocular-dev-tools @@ -26,4 +26,3 @@ We wanted: Happy documenting! To find out more, go to [get started](get-started.md) - diff --git a/docs/table-of-contents.json b/docs/table-of-contents.json index 276f0c8..383ff12 100644 --- a/docs/table-of-contents.json +++ b/docs/table-of-contents.json @@ -81,12 +81,6 @@ { "entry": "modules/dev-tools/docs/api-reference/get-babel-config" }, - { - "entry": "modules/dev-tools/docs/api-reference/get-eslint-config" - }, - { - "entry": "modules/dev-tools/docs/api-reference/get-prettier-config" - }, { "entry": "modules/dev-tools/docs/api-reference/get-webpack-config" } diff --git a/modules/dev-tools/docs/README.md b/modules/dev-tools/docs/README.md index 1ada504..74778b9 100644 --- a/modules/dev-tools/docs/README.md +++ b/modules/dev-tools/docs/README.md @@ -5,7 +5,7 @@ Dev tools for vis.gl open source Javascript frameworks Contains developer targets for building, cleaning, linting, testing and publishing frameworks. * The testing script has a number of modes, it can run tests on both browser and node, it can run test on src or built distributions etc. -* The linting feature supports both code and markdown, and runs both eslint and prettier. +* The linting feature uses Biome to format and lint JavaScript and TypeScript. * Supports both single module repos (all code in src) and monorepos (code in `modules//src`). Note: flow is not currently integrated into ocular-dev-tools as we restrict its use to React related code bases. @@ -14,8 +14,7 @@ Note: flow is not currently integrated into ocular-dev-tools as we restrict its ocular installs the necessary dependencies and provides working default configurations for -- eslint -- prettier +- Biome - ts-node - vite @@ -58,7 +57,7 @@ After installing you can set up your build scripts in package.json as follows: | [`ocular-bootstrap`](docs/dev-tools/cli/ocular-bootstrap) | `bootstrap` | Install dependencies for monorepos | | [`ocular-clean`](docs/dev-tools/cli/ocular-clean) | `clean` | Remove all transpiled files in preparation for a new build. | | [`ocular-build`](docs/dev-tools/cli/ocular-build) | `build` | Transpile all modules. | -| [`ocular-lint`](docs/dev-tools/cli/ocular-lint) | `lint` | Run eslint & prettier on the code base. | +| [`ocular-lint`](docs/dev-tools/cli/ocular-lint) | `lint` | Format and lint the code base with Biome. | | [`ocular-test`](docs/dev-tools/cli/ocular-test) | `test` | Run tests. | | [`ocular-metrics`](docs/dev-tools/cli/ocular-metrics) | `metrics` | Bundle the source and report the bundle size. | | [`ocular-publish`](docs/dev-tools/cli/ocular-publish) | `publish` | Publish the packages, create git tag and push. | @@ -73,9 +72,8 @@ To provide maximum control to the user, ocular build scripts use config files in A file `.ocularrc.js` can be placed at the root of the package to customize the dev scripts. The config file may export a JSON object that contains the following keys, or a callback function that returns such object: - `esm` (Boolean) - set if tests should run using Node.js's ES module resolution. By default `true` if and only if `type: "module"` is found in the root package.json. -- `lint` - options to control eslint behavior +- `lint` - options to control Biome's target paths + `paths` (Arrray) - directories to include when linting. Default `['modules', 'src']` - + `extensions` (Array) - file extensions to include when linting. Default `['js', 'md']` - `aliases` (Object) - Module aliases to use in tests. Any import from a submodule is mapped to its source. Use this object to define additional mappings, for example `"test-data": "./test/sample-data`. - `nodeAliases` (Object) - Module aliases to use in node tests only. - `typescript` @@ -95,35 +93,22 @@ A file `.ocularrc.js` can be placed at the root of the package to customize the - `browserTest` (Object) - options for browser tests. Passed to [BrowserTestDriver.run](https://uber-web.github.io/probe.gl/#/documentation/api-reference-testing/browsertestdriver). -#### eslint +#### Biome -You may extend the default eslint config with a `.eslintrc.js` or `eslint.config.js` at the project root: +`ocular-lint` uses `biome.json` or `biome.jsonc` at the project root when present. A project may +extend the shared vis.gl defaults and add repository-specific file selection and rule overrides: -```js -// .eslintrc.js -const {getEslintConfig} = require('ocular-dev-tools/configuration'); - -module.exports = getEslintConfig({ - react: '18.0', - // specify custom configs - overrides: {} -}); -``` - -#### prettier - -You may extend the default eslint config with a `.prettier.js` or `prettier.config.js` at the project root: - -```js -// .prettier.js -const {getPrettierConfig} = require('ocular-dev-tools/configuration'); - -module.exports = getPrettierConfig({ - // specify custom configs - overrides: {} -}); +```jsonc +{ + "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json", + "extends": ["@vis.gl/dev-tools/biome.jsonc"], + "files": { + "includes": ["modules/**/*.js", "modules/**/*.ts", "test/**/*.ts"] + } +} ``` +When no project configuration exists, `ocular-lint` uses the packaged defaults directly. #### vite If `vite.config.js` is found at the root of the package, it is used to bundle units tests and benchmark tests for the browser. Otherwise, a default vite config is used. @@ -137,5 +122,5 @@ To enable ESM mode: - Add `type: 'module'` to the root `package.json` and each submodule's `package.json`s. - Add `compilerOptions.module: 'esnext'` to `tsconfig.json`. -- ES5-style `require()` and `module.exports` must be removed from all `.js` files. Some dev dependencies, for example eslint, may not support ESM syntax. In this case, rename the config files to use the `.cjs` extension so that they can be imported successfully. +- ES5-style `require()` and `module.exports` must be removed from all `.js` files. Dependencies that do not support ESM syntax may still require `.cjs` configuration files. - When importing directly from a non-TypeScript file, the file extension must be specified. E.g. `import './init'` now becomes `import './init.js'`. diff --git a/modules/dev-tools/docs/api-reference/get-eslint-config.md b/modules/dev-tools/docs/api-reference/get-eslint-config.md deleted file mode 100644 index dc8a166..0000000 --- a/modules/dev-tools/docs/api-reference/get-eslint-config.md +++ /dev/null @@ -1,26 +0,0 @@ -# getEslintConfig - -Create a `ocular-dev-tools` default eslint config. - -## Usage - -```js -// .eslintrc.js -const {getESlintConfig} = requre('ocular-dev-tools/configuration'); - -modules.export = getESlintConfig({ - /** Set React version, if any */ - react: '18.0.0', - /** This will be deep merged with the default config */ - overrides: { - parserOptions: { - project: ['./tsconfig.json'] - }, - rules: { - // custom rules - } - }, - /** Print full config JSON for inspection */ - debug: true -}); -``` diff --git a/modules/dev-tools/docs/api-reference/get-prettier-config.md b/modules/dev-tools/docs/api-reference/get-prettier-config.md deleted file mode 100644 index b45c6af..0000000 --- a/modules/dev-tools/docs/api-reference/get-prettier-config.md +++ /dev/null @@ -1,19 +0,0 @@ -# getPrettierConfig - -Get `ocular-dev-tools` default prettier config. - -## Usage - -```js -// .prettierrc.js -const {getPrettierConfig} = requre('ocular-dev-tools/configuration'); - -modules.export = getPrettierConfig({ - /** This will be deep merged with the default config */ - overrides: { - // custom config - }, - /** Print full config JSON for inspection */ - debug: true -}); -``` diff --git a/modules/dev-tools/docs/cli/ocular-lint.md b/modules/dev-tools/docs/cli/ocular-lint.md index 54fda82..3404d3d 100644 --- a/modules/dev-tools/docs/cli/ocular-lint.md +++ b/modules/dev-tools/docs/cli/ocular-lint.md @@ -1,6 +1,6 @@ # ocular-lint -Run eslint & prettier on the code base. +Format and lint JavaScript and TypeScript with Biome. ```bash ocular-lint [mode] @@ -8,10 +8,13 @@ ocular-lint [mode] ## Modes -- `full` (default) - run on all files. +- `full` (default) - run on all configured paths. - `pre-commit` - only run on changed files since the last commit. -- `fix` - run prettier and eslint --fix on all files. +- `fix` - apply Biome's safe lint fixes and formatting changes. ## Configuration [Configurations](#ocular-dev-tools-1): `lint` + +`ocular-lint` loads `biome.json` or `biome.jsonc` from the project root. If neither exists, it +uses the configuration shipped by `@vis.gl/dev-tools`. diff --git a/modules/dev-tools/docs/upgrade-guide.md b/modules/dev-tools/docs/upgrade-guide.md index 53b355f..aab7a51 100644 --- a/modules/dev-tools/docs/upgrade-guide.md +++ b/modules/dev-tools/docs/upgrade-guide.md @@ -1,5 +1,13 @@ # Upgrade Guide +## @vis.gl/dev-tools 2.0.0 + +`ocular-lint` now uses Biome for both formatting and linting. Remove project ESLint and Prettier +configuration and add a root `biome.jsonc` that extends `@vis.gl/dev-tools/biome.jsonc`. + +The `getESLintConfig` and `getPrettierConfig` exports have been removed. Biome configuration is +shared as JSON instead of through JavaScript configuration builders. + ## ocular-dev-tools 1.0.0 Functional entry points replace subpath imports diff --git a/modules/dev-tools/package.json b/modules/dev-tools/package.json index e97ce60..997252b 100644 --- a/modules/dev-tools/package.json +++ b/modules/dev-tools/package.json @@ -27,11 +27,7 @@ "require": "./dist/index.cjs", "import": "./dist/index.js" }, - "./configuration": { - "types": "./dist/configuration/index.d.ts", - "require": "./dist/configuration/index.cjs", - "import": "./dist/configuration/index.js" - } + "./biome.jsonc": "./src/configuration/biome.jsonc" }, "types": "./dist/index.d.ts", "main": "./dist/index.js", @@ -50,23 +46,16 @@ "dependencies": { "@esbuild-plugins/node-globals-polyfill": "^0.2.0", "@esbuild-plugins/node-modules-polyfill": "^0.2.0", + "@biomejs/biome": "^2.4.8", "@probe.gl/test-utils": "^4.0.6", "c8": "^7.12.0", "coveralls": "^3.0.3", "deepmerge": "^4.2.2", "esbuild": "^0.16.7", "esbuild-plugin-external-global": "^1.0.1", - "eslint": "^8.52.0", - "eslint-config-prettier": "^8.0.0", - "eslint-plugin-import": "^2.28.0", - "eslint-plugin-jsx-a11y": "^6.1.2", - "eslint-plugin-markdown": "^2.2.0", - "eslint-plugin-react": "^7.22.0", - "eslint-plugin-react-hooks": "^4.0.0", "glob": "^7.1.4", "lerna": "^8.1.0", "minimatch": "^3.0.0", - "prettier": "^3.2.0", "semver": "^7.6.0", "tap-spec": "^5.0.0", "tape": "^4.11.0", @@ -75,7 +64,6 @@ "ts-patch": "^3.1.2", "tsconfig-paths": "^4.1.1", "typescript": "^5.2.2", - "typescript-eslint": "^7.7.0", "vite": "^4.5.0" }, "devDependencies": { diff --git a/modules/dev-tools/scripts/bump.js b/modules/dev-tools/scripts/bump.js index ea558b1..df5f86b 100755 --- a/modules/dev-tools/scripts/bump.js +++ b/modules/dev-tools/scripts/bump.js @@ -79,7 +79,7 @@ function main() { if (modules) { packages = packages.concat( - modules.map(function (module) { + modules.map((module) => { const version = getTargetVersion(packageAndVersion, module.name); return { name: module.name, diff --git a/modules/dev-tools/scripts/bundle.js b/modules/dev-tools/scripts/bundle.js index cf44477..092d486 100755 --- a/modules/dev-tools/scripts/bundle.js +++ b/modules/dev-tools/scripts/bundle.js @@ -28,7 +28,7 @@ async function run() { if (env.watch) { buildConfig.watch = true; await esbuild.build(buildConfig); - /* eslint-disable no-console */ + // biome-ignore lint/suspicious/noConsole: Verbose mode intentionally prints bundle diagnostics. console.log('watching...'); } else { const result = await esbuild.build(buildConfig); diff --git a/modules/dev-tools/scripts/lint.js b/modules/dev-tools/scripts/lint.js index 78eaa0d..5480541 100755 --- a/modules/dev-tools/scripts/lint.js +++ b/modules/dev-tools/scripts/lint.js @@ -1,8 +1,112 @@ #!/usr/bin/env node -import {execShellCommand} from './shell.js'; -import {join} from 'path'; +import fs from 'node:fs'; +import path from 'node:path'; +import {spawnSync} from 'node:child_process'; +import {createRequire} from 'node:module'; +import {fileURLToPath, pathToFileURL} from 'node:url'; -const scriptDir = new URL(import.meta.url).pathname; -// Runs the bash script and forward the arguments, exiting with the same code -execShellCommand(join(scriptDir, '../lint.sh'), process.argv.slice(2)); +import {getOcularConfig} from '../dist/helpers/get-ocular-config.js'; + +const packageDirectory = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const require = createRequire(pathToFileURL(path.resolve(packageDirectory, 'package.json'))); +const projectDirectory = process.cwd(); +const mode = process.argv[2]; +const extraArguments = process.argv.slice(mode === 'fix' || mode === 'pre-commit' ? 3 : 2); +const ocularConfig = await getOcularConfig({root: projectDirectory}); + +if (mode === 'help') { + printUsage(); + process.exit(0); +} + +const targetPaths = + mode === 'pre-commit' ? getChangedFiles() : ocularConfig.lint.paths.filter(fs.existsSync); + +if (targetPaths.length > 0) { + const configPath = getConfigPath(); + const arguments_ = [ + 'check', + mode === 'fix' ? '--write' : undefined, + '--files-ignore-unknown=true', + '--no-errors-on-unmatched', + '--diagnostic-level=error', + '--reporter=summary', + `--config-path=${configPath}`, + ...extraArguments, + ...targetPaths + ].filter(Boolean); + + runBiome(arguments_); +} + +validateLockfile(); + +function getConfigPath() { + for (const fileName of ['biome.json', 'biome.jsonc']) { + const configPath = path.resolve(projectDirectory, fileName); + if (fs.existsSync(configPath)) { + return configPath; + } + } + + // Preserve ocular-lint's zero-config behavior for existing consumers. + return path.resolve(packageDirectory, 'src/configuration/biome.jsonc'); +} + +function getChangedFiles() { + const result = spawnSync('git', ['diff', 'HEAD', '--name-only', '--diff-filter=ACMR'], { + cwd: projectDirectory, + encoding: 'utf8' + }); + if (result.status !== 0) { + process.exit(result.status ?? 1); + } + + const lintRoots = ocularConfig.lint.paths.map((lintPath) => + path.normalize(lintPath).replace(/[\\/]$/, '') + ); + return result.stdout + .split(/\r?\n/) + .filter(Boolean) + .filter((fileName) => lintRoots.some((lintRoot) => isWithinRoot(fileName, lintRoot))) + .filter((fileName) => fs.existsSync(path.resolve(projectDirectory, fileName))); +} + +function isWithinRoot(fileName, root) { + const normalizedFileName = path.normalize(fileName); + return normalizedFileName === root || normalizedFileName.startsWith(`${root}${path.sep}`); +} + +function runBiome(arguments_) { + // Resolve the dependency relative to dev-tools so consumers do not need their own Biome install. + const biomeExecutable = require.resolve('@biomejs/biome/bin/biome'); + const result = spawnSync(process.execPath, [biomeExecutable, ...arguments_], { + cwd: projectDirectory, + stdio: 'inherit' + }); + if (result.status !== 0) { + process.exit(result.status ?? 1); + } +} + +function validateLockfile() { + const lockfilePath = path.resolve(projectDirectory, 'yarn.lock'); + if (!fs.existsSync(lockfilePath)) { + return; + } + if (fs.readFileSync(lockfilePath, 'utf8').includes('unpm.u')) { + console.error('Please rebuild yarn.lock using a public npm registry.'); + process.exit(1); + } + console.log('Lockfile valid.'); +} + +function printUsage() { + console.log(`ocular-lint [fix | pre-commit] + +Run Biome formatting and lint checks over the paths configured by lint.paths. + + fix Apply safe lint fixes and formatting changes. + pre-commit Check tracked files changed relative to HEAD.`); +} diff --git a/modules/dev-tools/scripts/lint.sh b/modules/dev-tools/scripts/lint.sh deleted file mode 100755 index 6dfeb06..0000000 --- a/modules/dev-tools/scripts/lint.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# Script to check code styles - -set -e - -# Lint selected directories -# lint.sh DIR1,DIR2 -MODE=$1 - -DEV_TOOLS_DIR=$(dirname $0)/.. - -DIRECTORIES=`node $DEV_TOOLS_DIR/dist/helpers/get-config.js ".lint.paths"` -EXTENSIONS=`node $DEV_TOOLS_DIR/dist/helpers/get-config.js ".lint.extensions"` -if [[ $EXTENSIONS == *","* ]]; then - EXTENSIONS={$EXTENSIONS} -fi - -DIR_PATTERN= -IFS=',' read -r -a DIR_ARRAY <<< "$DIRECTORIES" -for dir in "${DIR_ARRAY[@]}" -do - DIR_PATTERN+="$dir/**/*.$EXTENSIONS " -done - -# if no prettier config present, use default template -PRETTIER_CONFIG=`ls .prettierrc* 2> /dev/null || echo "${PRETTIER_CONFIG:=$DEV_TOOLS_DIR/templates/.prettierrc}"` - -usage() { - # TODO: Add more specific url - open "https://uber-web.github.io/ocular/docs/dev-tools/cli/ocular-lint" -} - -print_yellow() { - echo -e "\033[93m${1}\033[0m" -} - -case $MODE in - "help") - usage - ;; - - "pre-commit") - print_yellow "Running prettier & eslint on changed files..." - - NAME_PATTERN=`echo "^$DIRECTORIES/.*\.$EXTENSIONS$" | sed -e 's/,/|/g' | sed -e 's/{/(/g' | sed -e 's/}/)/g'` - - # only check changed files - set +e - FILES=`git diff HEAD --name-only | grep -E "${NAME_PATTERN}"` - set -e - - FILES_LIST="" - - if [ ! -z "${FILES}" ]; then - for f in $FILES - do - if [ -e "${f}" ]; then - FILES_LIST+="${f} " - fi - done - - (set -x; npx prettier --config $PRETTIER_CONFIG --check $FILES_LIST) - (set -x; npx eslint $FILES_LIST) - fi - ;; - - "fix") - # eslint has a issue with {dir1,dir2} style filters - it tries to enumerate all files at root before matching - # this may lead to unexpected error when an incompatible file exists outside of the target directories - for dir in "${DIR_ARRAY[@]}" - do - print_yellow "Checking $dir..." - (set -x; npx eslint --no-error-on-unmatched-pattern --fix "$dir/**/*.$EXTENSIONS") - (set -x; npx prettier --log-level warn --config $PRETTIER_CONFIG --write "$dir/**/*.$EXTENSIONS") - done - ;; - - *) - # eslint has a issue with {dir1,dir2} style filters - it tries to enumerate all files at root before matching - # this may lead to unexpected error when an incompatible file exists outside of the target directories - for dir in "${DIR_ARRAY[@]}" - do - print_yellow "Checking $dir..." - (set -x; npx eslint --no-error-on-unmatched-pattern "$dir/**/*.$EXTENSIONS") - (set -x; npx prettier --config $PRETTIER_CONFIG --check "$dir/**/*.$EXTENSIONS" || - (echo -e "\033[91mNot all files using prettier code style. This may be fixed by running\033[0m \033[1mnpm run lint fix\033[0m" && - exit 1)) - done - ;; - esac - -# check if yarn.lock contains private registry information -!(grep -q unpm.u yarn.lock) && echo "Lockfile valid." || (echo -e "\033[91mPlease rebuild yarn file using public npmrc\033[0m" && false) diff --git a/modules/dev-tools/src/configuration/biome.jsonc b/modules/dev-tools/src/configuration/biome.jsonc new file mode 100644 index 0000000..affe78f --- /dev/null +++ b/modules/dev-tools/src/configuration/biome.jsonc @@ -0,0 +1,89 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json", + "root": false, + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": true, + "includes": [ + "**/*.js", + "**/*.jsx", + "**/*.mjs", + "**/*.cjs", + "**/*.ts", + "**/*.tsx", + "**/*.mts", + "**/*.cts" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100 + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedImports": "error", + "noUnusedVariables": "error", + "useIsNan": "error" + }, + "style": { + "noInferrableTypes": "off", + "noNonNullAssertion": "off", + "useConst": "off", + "useNamingConvention": { + "level": "warn", + "options": { + "strictCase": false + } + } + }, + "suspicious": { + "noConsole": "error", + "noDebugger": "error", + "noDoubleEquals": "error", + "noExplicitAny": "warn", + "noRedeclare": "error", + "noShadowRestrictedNames": "error" + } + } + }, + "javascript": { + "formatter": { + "arrowParentheses": "always", + "bracketSpacing": false, + "jsxQuoteStyle": "double", + "quoteStyle": "single", + "semicolons": "always", + "trailingCommas": "none" + }, + "globals": ["__VERSION__"] + }, + "assist": { + "enabled": false, + "actions": { + "source": { + "organizeImports": "off" + } + } + }, + "overrides": [ + { + "includes": ["**/*.test.*", "**/*.spec.*", "**/test/**"], + "linter": { + "rules": { + "suspicious": { + "noConsole": "off" + } + } + } + } + ] +} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/best-practices.json b/modules/dev-tools/src/configuration/eslint-config-uber-es2015/best-practices.json deleted file mode 100644 index 52475a6..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/best-practices.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "rules": { - "accessor-pairs": [ - 2, - { - "getWithoutSet": true - } - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/ecmascript-6.json b/modules/dev-tools/src/configuration/eslint-config-uber-es2015/ecmascript-6.json deleted file mode 100644 index 965e715..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/ecmascript-6.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "rules": { - "no-class-assign": 2, - "arrow-spacing": [ - 1, - { - "before": true, - "after": true - } - ], - "no-const-assign": 2, - "no-dupe-class-members": 2, - "no-this-before-super": 2, - "no-var": 2, - "prefer-arrow-callback": 0, - "prefer-const": 2, - "prefer-spread": 2, - "prefer-template": 2, - "arrow-parens": 0, - "arrow-spacing": [ - 2, - { - "before": true, - "after": true - } - ], - "constructor-super": 2, - "generator-star-spacing": [ - 2, - { - "before": false, - "after": true - } - ], - "object-shorthand": [ - 2, - "always" - ], - "require-yield": 2 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/eslintrc.json b/modules/dev-tools/src/configuration/eslint-config-uber-es2015/eslintrc.json deleted file mode 100644 index f76ada0..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/eslintrc.json +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -{ - "extends": [ - "./best-practices.json", - "./ecmascript-6.json", - "./miscellaneous.json", - "./stylistic-issues.json", - "../eslint-config-uber-es5/eslintrc.json" - ], - "env": { - "es6": true - }, - "parserOptions": { - "sourceType": "module", - "ecmaFeatures": { - "experimentalObjectRestSpread": true - } - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/miscellaneous.json b/modules/dev-tools/src/configuration/eslint-config-uber-es2015/miscellaneous.json deleted file mode 100644 index 1335144..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/miscellaneous.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "prefer-reflect": 0 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/stylistic-issues.json b/modules/dev-tools/src/configuration/eslint-config-uber-es2015/stylistic-issues.json deleted file mode 100644 index 0f34281..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es2015/stylistic-issues.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "rules": { - "no-continue": 2, - "func-style": [ - 2, - "declaration", - { - "allowArrowFunctions": true - } - ], - "lines-around-comment": [ - 0, - { - "beforeBlockComment": true, - "afterBlockComment": false, - "beforeLineComment": false, - "afterLineComment": false, - "allowBlockStart": true, - "allowBlockEnd": true - } - ], - "quote-props": [ - 2, - "as-needed" - ], - "sort-vars": 2, - "wrap-regex": 2 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/best-practices.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/best-practices.json deleted file mode 100644 index 575b855..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/best-practices.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "rules": { - "no-alert": 2, - "no-caller": 2, - "no-div-regex": 2, - "no-else-return": 2, - "no-eq-null": 2, - "no-extend-native": 2, - "no-labels": 2, - "no-eval": 2, - "no-extra-bind": 2, - "no-fallthrough": 2, - "no-floating-decimal": 2, - "no-implicit-coercion": 2, - "no-implied-eval": 2, - "no-invalid-this": 2, - "no-iterator": 2, - "no-lone-blocks": 2, - "no-loop-func": 2, - "no-multi-spaces": 2, - "no-multi-str": 2, - "no-new": 2, - "no-new-func": 2, - "no-new-wrappers": 2, - "no-octal": 2, - "no-octal-escape": 2, - "no-param-reassign": 0, - "no-proto": 2, - "no-redeclare": 2, - "no-return-assign": 2, - "no-script-url": 2, - "no-self-compare": 2, - "no-sequences": 2, - "no-throw-literal": 2, - "no-unused-expressions": 2, - "no-useless-call": 2, - "no-void": 1, - "no-warning-comments": [ - 0, - { - "terms": [ - "todo", - "fixme", - "xxx" - ], - "location": "start" - } - ], - "no-with": 2, - "block-scoped-var": 2, - "complexity": [ - 2, - 11 - ], - "consistent-return": 2, - "curly": [ - 2, - "all" - ], - "default-case": 2, - "dot-location": [ - 2, - "property" - ], - "dot-notation": [ - 2, - { - "allowKeywords": true - } - ], - "eqeqeq": 2, - "guard-for-in": 2, - "radix": 2, - "vars-on-top": 0, - "wrap-iife": 2, - "yoda": [ - 2, - "never" - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/errors.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/errors.json deleted file mode 100644 index 7ee7a81..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/errors.json +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// These rules relate to possible syntax or logic errors -// Categorized as "errors" here: http://eslint.org/docs/rules/ -{ - "rules": { - /** - * Possible Errors Section from http://eslint.org/docs/rules/: - */ - - // http://eslint.org/docs/rules/no-cond-assign - "no-cond-assign": 2, - - // http://eslint.org/docs/rules/no-constant-condition - "no-constant-condition": 2, - - // http://eslint.org/docs/rules/no-console - // highly agreed upon - "no-console": 2, - - // http://eslint.org/docs/rules/no-control-regex - "no-control-regex": 2, - - // http://eslint.org/docs/rules/no-debugger - // highly agreed upon - "no-debugger": 2, - - // http://eslint.org/docs/rules/no-dupe-args - "no-dupe-args": 2, - - // http://eslint.org/docs/rules/no-dupe-keys - "no-dupe-keys": 2, - - // http://eslint.org/docs/rules/no-duplicate-case - "no-duplicate-case": 2, - - // http://eslint.org/docs/rules/no-empty-character-class - "no-empty-character-class": 2, - - // http://eslint.org/docs/rules/no-empty - // highly agreed upon - "no-empty": 2, - - // http://eslint.org/docs/rules/no-ex-assign - // abnormal behavior in ie 6-8 - "no-ex-assign": 2, - - // http://eslint.org/docs/rules/no-extra-boolean-cast - // highly agreed upon - "no-extra-boolean-cast": 2, - - // http://eslint.org/docs/rules/no-extra-parens - "no-extra-parens": [2, "functions"], - - // http://eslint.org/docs/rules/no-extra-semi - // highly agreed upon - "no-extra-semi": 2, - - // http://eslint.org/docs/rules/no-func-assign - "no-func-assign": 2, - - // http://eslint.org/docs/rules/no-inner-declarations - "no-inner-declarations": [2, "functions"], - - "no-invalid-regexp": 2, - - "no-irregular-whitespace": 2, - - "no-obj-calls": 2, - - // http://eslint.org/docs/rules/no-prototype-builtins - "no-prototype-builtins": 0, - - "no-regex-spaces": 2, - - "no-sparse-arrays": 2, - - // http://eslint.org/docs/rules/no-template-curly-in-string - "no-template-curly-in-string": 2, - - "no-unexpected-multiline": 2, - - "no-unreachable": 2, - - // http://eslint.org/docs/rules/no-unsafe-finally - "no-unsafe-finally": 2, - - // http://eslint.org/docs/rules/no-unsafe-negation - "no-unsafe-negation": 2, - - "use-isnan": 2, - - "valid-jsdoc": 0, - - "valid-typeof": 2 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/eslintrc.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/eslintrc.json deleted file mode 100644 index e972a51..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/eslintrc.json +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -{ - "extends": [ - "./best-practices.json", - "./errors.json", - "./miscellaneous.json", - "./node-js-and-common-js.json", - "./strict-mode.json", - "./stylistic-issues.json", - "./variables.json" - ], - "parser": "espree", // TODO: remove? - "env": { - "browser": false, - "node": false, - "amd": false, - "mocha": false, - "jasmine": false, - "es6": false - }, - "globals": { - "__dirname": false, - "__filename": false, - "require": false, - "module": false - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/miscellaneous.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/miscellaneous.json deleted file mode 100644 index 50c6bf6..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/miscellaneous.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "no-native-reassign": 2, - "no-negated-in-lhs": 2, - "no-reserved-keys": 0, - "no-spaced-func": 2 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/node-js-and-common-js.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/node-js-and-common-js.json deleted file mode 100644 index 77ad0e2..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/node-js-and-common-js.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "rules": { - "no-mixed-requires": [ - 2, - false - ], - "no-new-require": 2, - "no-path-concat": 2, - "no-process-env": 2, - "no-process-exit": 2, - "no-restricted-modules": 0, - "no-sync": 0, - "callback-return": [ - 2, - [ - "callback", - "cb", - "next", - "done" - ] - ], - "handle-callback-err": [ - 2, - "^(err|error|anySpecificError)$" - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/strict-mode.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/strict-mode.json deleted file mode 100644 index 71f6291..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/strict-mode.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "strict": [ - 2, - "global" - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/stylistic-issues.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/stylistic-issues.json deleted file mode 100644 index ccb85fc..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/stylistic-issues.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "rules": { - "no-array-constructor": 2, - "no-bitwise": 0, - "no-inline-comments": 2, - "no-lonely-if": 2, - "no-mixed-spaces-and-tabs": [ - 2, - false - ], - "linebreak-style": [ - 2, - "unix" - ], - "no-multiple-empty-lines": [ - 2, - { - "max": 1 - } - ], - "no-nested-ternary": 0, - "no-new-object": 2, - "no-plusplus": 0, - "no-ternary": 0, - "no-trailing-spaces": 2, - "no-underscore-dangle": 0, - "no-unneeded-ternary": 2, - "array-bracket-spacing": [ - 2, - "never" - ], - "block-spacing": [ - 2, - "always" - ], - "brace-style": [ - 2, - "1tbs" - ], - "camelcase": 2, - "comma-dangle": [ - 2, - "never" - ], - "comma-spacing": [ - 2, - { - "before": false, - "after": true - } - ], - "comma-style": [ - 2, - "last" - ], - "computed-property-spacing": [ - 2, - "never" - ], - "consistent-this": [ - 2, - "self" - ], - "eol-last": 2, - "func-names": 2, - "func-style": [ - 0, - "declaration" - ], - "id-length": 0, - "id-match": 0, - "indent": [ - 2, - 2 - ], - "key-spacing": [ - 2, - { - "beforeColon": false, - "afterColon": true - } - ], - "max-depth": [ - 2, - 3 - ], - "max-len": [ - 2, - 100, - 4 - ], - "max-nested-callbacks": [ - 2, - 3 - ], - "max-params": [ - 2, - 5 - ], - "max-statements": [ - 2, - 25 - ], - "new-cap": [ - 2, - { - "newIsCap": true, - "capIsNew": false - } - ], - "new-parens": 2, - "newline-after-var": 0, - "object-curly-spacing": [ - 2, - "never" - ], - "one-var": [ - 2, - "never" - ], - "operator-assignment": [ - 0, - "always" - ], - "operator-linebreak": [ - 2, - "after" - ], - "padded-blocks": 0, - "quotes": [ - 2, - "single" - ], - "semi": 2, - "semi-spacing": [ - 2, - { - "before": false, - "after": true - } - ], - "keyword-spacing": [ - 2 - ], - "space-before-blocks": [ - 2, - "always" - ], - "space-before-function-paren": [ - 2, - "never" - ], - "space-in-parens": [ - 2, - "never" - ], - "space-infix-ops": 2, - "space-unary-ops": [ - 2, - { - "words": true, - "nonwords": false - } - ], - "spaced-comment": [ - 2, - "always", - { - "exceptions": [ - "-", - "=", - "+", - "*" - ] - } - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-es5/variables.json b/modules/dev-tools/src/configuration/eslint-config-uber-es5/variables.json deleted file mode 100644 index d05315d..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-es5/variables.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "rules": { - "no-catch-shadow": 2, - "no-delete-var": 2, - "no-label-var": 2, - "no-shadow": 2, - "no-shadow-restricted-names": 2, - "no-undef-init": 2, - "no-undef": 2, - "no-undefined": 0, - "no-unused-vars": [ - 2, - { - "vars": "all", - "args": "none" - } - ], - "no-use-before-define": [ - 2, - "nofunc" - ], - "init-declarations": 0 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/best-practices.json b/modules/dev-tools/src/configuration/eslint-config-uber-jsx/best-practices.json deleted file mode 100644 index 709b011..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/best-practices.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "no-invalid-this": 0 - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/eslintrc.json b/modules/dev-tools/src/configuration/eslint-config-uber-jsx/eslintrc.json deleted file mode 100644 index 2e5e0ae..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/eslintrc.json +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -{ - "extends": [ - "../eslint-config-uber-es2015/eslintrc.json", - "./best-practices.json", - "./miscellaneous.json", - "./stylistic-issues.json" - ], - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - "experimentalObjectRestSpread": true - } - }, - "plugins": ["react"] -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/miscellaneous.json b/modules/dev-tools/src/configuration/eslint-config-uber-jsx/miscellaneous.json deleted file mode 100644 index 63f9e10..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/miscellaneous.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "rules": { - "react/jsx-no-undef": 2, - "react/no-unknown-property": 1, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/no-did-mount-set-state": 1, - "react/no-did-update-set-state": 1, - "react/prop-types": 0, - "react/react-in-jsx-scope": 2, - "react/self-closing-comp": 2, - "react/sort-comp": 1, - "react/jsx-wrap-multilines": 2, - "react/display-name": 1, - "react/no-danger": 1, - "react/no-deprecated": 1, - "react/no-direct-mutation-state": 1, - "react/jsx-indent": [ - 1, - 2 - ], - "react/jsx-no-target-blank": 1, - "react/forbid-prop-types": [ - 1, - { - "forbid": [ - "any", - "array" - ] - } - ] - } -} diff --git a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/stylistic-issues.json b/modules/dev-tools/src/configuration/eslint-config-uber-jsx/stylistic-issues.json deleted file mode 100644 index e4df28a..0000000 --- a/modules/dev-tools/src/configuration/eslint-config-uber-jsx/stylistic-issues.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "jsx-quotes": [ - 2, - "prefer-double" - ] - } -} diff --git a/modules/dev-tools/src/configuration/get-esbuild-config.ts b/modules/dev-tools/src/configuration/get-esbuild-config.ts index 82a1449..c99f274 100644 --- a/modules/dev-tools/src/configuration/get-esbuild-config.ts +++ b/modules/dev-tools/src/configuration/get-esbuild-config.ts @@ -99,7 +99,6 @@ type BundleOptions = { sourcemap?: boolean; }; -/* eslint-disable max-statements,complexity */ /** Returns esbuild config for building standalone bundles */ export async function getBundleConfig(opts: BundleOptions): Promise { // This script must be executed in a submodule's directory @@ -154,7 +153,7 @@ export async function getBundleConfig(opts: BundleOptions): Promise | undefined; switch (format) { case 'cjs': case 'esm': @@ -192,6 +191,7 @@ export async function getBundleConfig(opts: BundleOptions): Promise resolve(ocularRoot, 'src/configuration', path); - -const DEFAULT_OPTIONS = { - react: false -} as const; - -const DEFAULT_CONFIG = { - extends: [ - localRules('./eslint-config-uber-es2015/eslintrc.json'), - 'prettier', - 'plugin:import/recommended' - ], - plugins: ['import'], - parserOptions: { - ecmaVersion: 2020 - }, - env: { - // Note: also sets ecmaVersion - es2020: true - }, - globals: { - globalThis: 'readonly', - __VERSION__: 'readonly' - }, - rules: { - 'guard-for-in': 'off', - 'func-names': 'off', - 'no-inline-comments': 'off', - 'no-multi-str': 'off', - // Rules disabled because they conflict with our preferred style - // We use function hoisting to put exports at top of file - 'no-use-before-define': 'off', - camelcase: 'warn', - // Let prettier handle this - indent: 'off', - 'accessor-pairs': ['error', {getWithoutSet: false, setWithoutGet: false}], - 'import/no-extraneous-dependencies': ['error', {devDependencies: false, peerDependencies: true}] - }, - settings: { - // Ensure eslint finds typescript files - 'import/resolver': { - node: { - extensions: ['.js', '.jsx', '.mjs', '.ts', '.tsx', '.d.ts'] - } - } - }, - ignorePatterns: ['node_modules', '**/dist*/**/*.js'], - overrides: [ - { - // babel-eslint can process TS files, but it doesn't understand types - // typescript-eslint has some more advanced rules with type checking - files: ['**/*.ts', '**/*.tsx', '**/*.d.ts'], - parser: '@typescript-eslint/parser', - parserOptions: { - sourceType: 'module', // we want to use ES modules - project: './tsconfig.json' - }, - extends: ['plugin:@typescript-eslint/recommended-type-checked'], - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/no-dupe-class-members': 'error', - '@typescript-eslint/switch-exhaustiveness-check': 'error', - - // This rule is incompatible with TypeScript, replace with the TS counterpart - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': 'error', - - // Rules disabled because they conflict with our preferred style - // We use function hoisting to put exports at top of file - '@typescript-eslint/no-use-before-define': 'off', - // We encourage explicit typing, e.g `field: string = ''` - '@typescript-eslint/no-inferrable-types': 'off', - // Allow noOp as default value for callbacks - '@typescript-eslint/no-empty-function': 'off', - - // Rules downgraded because they are deemed acceptable - '@typescript-eslint/ban-ts-comment': [ - 'error', - { - 'ts-expect-error': 'allow-with-description', - 'ts-ignore': 'allow-with-description', - 'ts-nocheck': 'allow-with-description', - 'ts-check': false, - minimumDescriptionLength: 3 - } - ], - '@typescript-eslint/no-floating-promises': 'warn', - '@typescript-eslint/restrict-template-expressions': 'warn', - '@typescript-eslint/no-empty-interface': 'warn', - '@typescript-eslint/require-await': 'warn', - - // Rules that restrict the use of `any` - // Might be too strict for our code base, but should be gradually enabled - '@typescript-eslint/no-explicit-any': 'warn', - '@typescript-eslint/no-unsafe-argument': 'warn', - '@typescript-eslint/no-unsafe-assignment': 'warn', - '@typescript-eslint/no-unsafe-call': 'warn', - '@typescript-eslint/no-unsafe-enum-comparison': 'warn', - '@typescript-eslint/no-unsafe-member-access': 'warn', - '@typescript-eslint/no-unsafe-return': 'warn', - '@typescript-eslint/explicit-module-boundary-types': 'warn' - } - }, - { - // We can lint through code examples in Markdown as well, - // but we don't need to enable all of the rules there - files: ['**/*.md'], - plugins: ['markdown'], - // extends: 'plugin:markdown/recommended', - rules: { - 'no-undef': 'off', - 'no-unused-vars': 'off', - 'no-unused-expressions': 'off', - 'no-console': 'off', - 'padded-blocks': 'off' - } - } - ] -}; - -function getReactConfig(options) { - return { - extends: [ - localRules('./eslint-config-uber-jsx/eslintrc.json'), - 'prettier', - 'plugin:import/recommended' - ], - plugins: ['import', 'react'], - settings: { - react: { - version: options.react - } - } - }; -} - -export function getESLintConfig( - options: {react?: string | false; overrides?: any; debug?: boolean} = {} -) { - options = {...DEFAULT_OPTIONS, ...options}; - - let config = {...DEFAULT_CONFIG}; - if (options.react) { - config = deepMerge(config, getReactConfig(options)); - } - if (options.overrides) { - config = deepMerge(config, options.overrides); - } - if (options.debug) { - // eslint-disable-next-line - console.log(inspect(config, {colors: true, depth: null})); - } - - return config; -} diff --git a/modules/dev-tools/src/configuration/get-prettier-config.ts b/modules/dev-tools/src/configuration/get-prettier-config.ts deleted file mode 100644 index a584353..0000000 --- a/modules/dev-tools/src/configuration/get-prettier-config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import deepMerge from 'deepmerge'; - -const DEFAULT_CONFIG = { - printWidth: 100, - semi: true, - singleQuote: true, - trailingComma: 'none', - bracketSpacing: false -}; - -export function getPrettierConfig(options: {overrides?: any; debug?: boolean} = {}) { - let config = {...DEFAULT_CONFIG}; - if (options.overrides) { - config = deepMerge(config, options.overrides); - } - if (options.debug) { - // eslint-disable-next-line - console.log(config); - } - return config; -} diff --git a/modules/dev-tools/src/configuration/index.ts b/modules/dev-tools/src/configuration/index.ts deleted file mode 100644 index 93a57fd..0000000 --- a/modules/dev-tools/src/configuration/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -// JS Tool Configurations -export {getESLintConfig} from './get-eslint-config.js'; -export {getPrettierConfig} from './get-prettier-config.js'; diff --git a/modules/dev-tools/src/github-release.ts b/modules/dev-tools/src/github-release.ts index 57676d4..3a883ae 100644 --- a/modules/dev-tools/src/github-release.ts +++ b/modules/dev-tools/src/github-release.ts @@ -72,7 +72,7 @@ function getRepoName(): string | null { if (!repoUrl || !repoUrl.includes('github.com')) { return null; } - const m = repoUrl.match(/([\w\.\-]+\/[\w\.\-]+?)(.git)?$/); + const m = repoUrl.match(/([\w.-]+\/[\w.-]+?)(.git)?$/); return m?.[1] ?? null; } @@ -82,7 +82,7 @@ function getGitTag(): string | null { stdio: [null, 'pipe', null], encoding: 'utf-8' }).trim(); - } catch (err) { + } catch { // not tagged return null; } diff --git a/modules/dev-tools/src/helpers/aliases.ts b/modules/dev-tools/src/helpers/aliases.ts index 7d3093d..60ff72d 100644 --- a/modules/dev-tools/src/helpers/aliases.ts +++ b/modules/dev-tools/src/helpers/aliases.ts @@ -20,7 +20,7 @@ export function getModuleInfo(path: string): ModuleInfo | null { path, packageInfo }; - } catch (err) { + } catch { // ignore if sub directory does not contain package.json } } diff --git a/modules/dev-tools/src/helpers/get-config.ts b/modules/dev-tools/src/helpers/get-config.ts index e46a14c..daaf4a4 100644 --- a/modules/dev-tools/src/helpers/get-config.ts +++ b/modules/dev-tools/src/helpers/get-config.ts @@ -4,7 +4,7 @@ Example: $ node get-config.js ".babel.configPath" */ -import {getOcularConfig, MaterializedOcularConfig} from './get-ocular-config.js'; +import {getOcularConfig, type MaterializedOcularConfig} from './get-ocular-config.js'; let ocularConfig: MaterializedOcularConfig; try { diff --git a/modules/dev-tools/src/helpers/get-npm-dist-tag.ts b/modules/dev-tools/src/helpers/get-npm-dist-tag.ts index f372ac8..fff9798 100644 --- a/modules/dev-tools/src/helpers/get-npm-dist-tag.ts +++ b/modules/dev-tools/src/helpers/get-npm-dist-tag.ts @@ -74,7 +74,7 @@ function getPublishedVersion(packageName: string, distTag: string): string | nul stdio: [null, 'pipe', null], encoding: 'utf-8' }).trim(); - } catch (err) { + } catch { // not found return null; } diff --git a/modules/dev-tools/src/helpers/get-ocular-config.ts b/modules/dev-tools/src/helpers/get-ocular-config.ts index fc97cd0..a7c4dad 100644 --- a/modules/dev-tools/src/helpers/get-ocular-config.ts +++ b/modules/dev-tools/src/helpers/get-ocular-config.ts @@ -106,14 +106,11 @@ export type MaterializedOcularConfig = { }; export async function getOcularConfig( - options: { - root?: string; - aliasMode?: 'src' | 'dist'; - } = {} + options: {root?: string; aliasMode?: 'src' | 'dist'} = {} ): Promise { const packageRoot = options.root || process.env.PWD!; - const IS_MONOREPO = fs.existsSync(resolve(packageRoot, './modules')); + const IsMonorepo = fs.existsSync(resolve(packageRoot, './modules')); const userConfig = await getUserConfig(packageRoot); @@ -132,7 +129,7 @@ export async function getOcularConfig( }, lint: { - paths: IS_MONOREPO ? ['modules'] : ['src'], + paths: IsMonorepo ? ['modules'] : ['src'], extensions: ['js', 'mjs', 'jsx', 'ts', 'tsx', 'd.ts'] }, diff --git a/modules/dev-tools/src/test.ts b/modules/dev-tools/src/test.ts index fac3d76..40ba92e 100644 --- a/modules/dev-tools/src/test.ts +++ b/modules/dev-tools/src/test.ts @@ -15,7 +15,8 @@ const viteConfigPath = ocularConfig.vite.configPath; // c8 default directory for coverage data const CoverageTempDir = './coverage/tmp'; -console.log(`Running ${mode} tests...`); // eslint-disable-line +// biome-ignore lint/suspicious/noConsole: The CLI reports the selected test mode to the user. +console.log(`Running ${mode} tests...`); switch (mode) { case 'cover': @@ -205,7 +206,7 @@ function sourcemapFromDataUrl(url: string): string | null { const decodedData = base64 ? Buffer.from(data, 'base64').toString('utf8') : data; try { return JSON.parse(decodedData); - } catch (err) { + } catch { return null; } } diff --git a/modules/dev-tools/src/utils/utils.ts b/modules/dev-tools/src/utils/utils.ts index ebdb2e4..e5d9fe7 100644 --- a/modules/dev-tools/src/utils/utils.ts +++ b/modules/dev-tools/src/utils/utils.ts @@ -14,8 +14,8 @@ export function execShellCommand(command: string, args: string[] = []) { } /** Returns the path to the root directory of ocular-dev-tools */ -export const ocularRoot: string = (function () { - let dir; +export const ocularRoot: string = (() => { + let dir: string; try { dir = __dirname; } catch { diff --git a/modules/dev-tools/templates/.eslintignore b/modules/dev-tools/templates/.eslintignore deleted file mode 100644 index 02483a2..0000000 --- a/modules/dev-tools/templates/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -dist/* -coverage/* diff --git a/modules/dev-tools/templates/.prettierignore b/modules/dev-tools/templates/.prettierignore deleted file mode 100644 index 6cca00e..0000000 --- a/modules/dev-tools/templates/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -**/dist*/**/*.js diff --git a/modules/dev-tools/templates/.prettierrc b/modules/dev-tools/templates/.prettierrc deleted file mode 100644 index bffdbcd..0000000 --- a/modules/dev-tools/templates/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -printWidth: 100 -semi: true -singleQuote: true -trailingComma: none -bracketSpacing: false diff --git a/modules/dev-tools/test/configuration.spec.ts b/modules/dev-tools/test/configuration.spec.ts index e6d9931..52b5d46 100644 --- a/modules/dev-tools/test/configuration.spec.ts +++ b/modules/dev-tools/test/configuration.spec.ts @@ -1,13 +1,8 @@ import test from 'tape-promise/tape'; -// @ts-expect-error Aliased import -import {getESLintConfig, getPrettierConfig} from '@vis.gl/dev-tools/configuration'; +import {getOcularConfig} from '@vis.gl/dev-tools'; test('dev-tools#getConfig', (t) => { - let config = getESLintConfig(); - t.equals(typeof config, 'object'); - - config = getPrettierConfig(); - t.equals(typeof config, 'object'); + t.equals(typeof getOcularConfig, 'function'); t.end(); }); diff --git a/modules/docusaurus-website/src/components/examples-index.tsx b/modules/docusaurus-website/src/components/examples-index.tsx index 965c4a7..e5a0033 100644 --- a/modules/docusaurus-website/src/components/examples-index.tsx +++ b/modules/docusaurus-website/src/components/examples-index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -// @ts-ignore Internal API +// @ts-expect-error Internal API import {useDocsSidebar} from '@docusaurus/plugin-content-docs/client'; import useBaseUrl from '@docusaurus/useBaseUrl'; import styled from 'styled-components'; diff --git a/modules/docusaurus-website/src/get-default-config.ts b/modules/docusaurus-website/src/get-default-config.ts index cc16979..7e9d25d 100644 --- a/modules/docusaurus-website/src/get-default-config.ts +++ b/modules/docusaurus-website/src/get-default-config.ts @@ -168,7 +168,7 @@ export function getDocusaurusConfig(config: OcularWebsiteConfig): Config { modules: [resolve('node_modules'), resolve(rootDir, 'node_modules')], alias: getAliases(rootDir) }, - // @ts-ignore undefined property + // @ts-expect-error undefined property webpackConfig.resolve ) } diff --git a/modules/docusaurus-website/src/plugin-webpack-config/index.ts b/modules/docusaurus-website/src/plugin-webpack-config/index.ts index 39623a3..189e277 100644 --- a/modules/docusaurus-website/src/plugin-webpack-config/index.ts +++ b/modules/docusaurus-website/src/plugin-webpack-config/index.ts @@ -24,7 +24,8 @@ export default function ( } if (debug) { - console.log(util.inspect(_config.module, {depth: null})); // eslint-disable-line + // biome-ignore lint/suspicious/noConsole: Debug mode intentionally prints webpack internals. + console.log(util.inspect(_config.module, {depth: null})); } // Symlink docs crash otherwise, see https://github.com/facebook/docusaurus/issues/6257 diff --git a/modules/docusaurus-website/src/write-heading-ids.ts b/modules/docusaurus-website/src/write-heading-ids.ts index 0705861..46b80b8 100644 --- a/modules/docusaurus-website/src/write-heading-ids.ts +++ b/modules/docusaurus-website/src/write-heading-ids.ts @@ -28,7 +28,7 @@ import fs from 'fs/promises'; /** Should match if the line is a header */ -const headerTest = /^(#+)\s+(?.*?)\s*(?\{#[\w\-]+\})?$/; +const headerTest = /^(#+)\s+(?.*?)\s*(?\{#[\w-]+\})?$/; /** Should match if the header describes an API */ const apiTest = /^`((?\w+)[^`]*)`\s*(\(.*?\)|$)/; diff --git a/modules/ts-plugins/src/ts-transform-webgpu/index.ts b/modules/ts-plugins/src/ts-transform-webgpu/index.ts index de5bace..14c2182 100644 --- a/modules/ts-plugins/src/ts-transform-webgpu/index.ts +++ b/modules/ts-plugins/src/ts-transform-webgpu/index.ts @@ -1,7 +1,6 @@ /** * TypeScript transform that controls whether WebGPU-only code is emitted. */ -/* eslint-disable complexity, max-depth */ import type { Expression, Identifier, diff --git a/modules/ts-plugins/test/test-transformer.ts b/modules/ts-plugins/test/test-transformer.ts index 7744954..4560c00 100644 --- a/modules/ts-plugins/test/test-transformer.ts +++ b/modules/ts-plugins/test/test-transformer.ts @@ -38,7 +38,7 @@ export function transpile({ if (config.after) { customTransformers.after = [transform]; } else if (config.afterDeclarations) { - // @ts-ignore + // @ts-expect-error customTransformers.afterDeclarations = [transform]; } else { customTransformers.before = [transform]; diff --git a/website/.eslintignore b/website/.eslintignore deleted file mode 100644 index 1eae0cf..0000000 --- a/website/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -dist/ -node_modules/ diff --git a/yarn.lock b/yarn.lock index 7a52cac..6e82152 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@algolia/autocomplete-core@1.17.4": version "1.17.4" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.4.tgz#43b6160b67cff853e05769c5f15b91ced5eff7c4" @@ -1232,7 +1227,7 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.7": +"@babel/runtime@^7.0.0": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== @@ -1282,6 +1277,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@^2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.8.tgz#4808c2b90e3f0dd18b199ea8ea376249cdc5b2f0" + integrity sha512-ponn0oKOky1oRXBV+rlSaUlixUxf1aZvWC19Z41zBfUOUesthrQqL3OtiAlSB1EjFjyWpn98Q64DHelhA6jNlA== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "2.4.8" + "@biomejs/cli-darwin-x64" "2.4.8" + "@biomejs/cli-linux-arm64" "2.4.8" + "@biomejs/cli-linux-arm64-musl" "2.4.8" + "@biomejs/cli-linux-x64" "2.4.8" + "@biomejs/cli-linux-x64-musl" "2.4.8" + "@biomejs/cli-win32-arm64" "2.4.8" + "@biomejs/cli-win32-x64" "2.4.8" + +"@biomejs/cli-darwin-arm64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.8.tgz#3b4cfa6aacd729e0055906b41354a565be098313" + integrity sha512-ARx0tECE8I7S2C2yjnWYLNbBdDoPdq3oyNLhMglmuctThwUsuzFWRKrHmIGwIRWKz0Mat9DuzLEDp52hGnrxGQ== + +"@biomejs/cli-darwin-x64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.8.tgz#1a8f564f5057f2abd8ea89890cd4e486202b56a7" + integrity sha512-Jg9/PsB9vDCJlANE8uhG7qDhb5w0Ix69D7XIIc8IfZPUoiPrbLm33k2Ig3NOJ/7nb3UbesFz3D1aDKm9DvzjhQ== + +"@biomejs/cli-linux-arm64-musl@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.8.tgz#b6b0e94787146e7d09b6c08f21b54c1629c6915b" + integrity sha512-Zo9OhBQDJ3IBGPlqHiTISloo5H0+FBIpemqIJdW/0edJ+gEcLR+MZeZozcUyz3o1nXkVA7++DdRKQT0599j9jA== + +"@biomejs/cli-linux-arm64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.8.tgz#c98695d0cfd8b397d741879b03bdf673b0aa1856" + integrity sha512-5CdrsJct76XG2hpKFwXnEtlT1p+4g4yV+XvvwBpzKsTNLO9c6iLlAxwcae2BJ7ekPGWjNGw9j09T5KGPKKxQig== + +"@biomejs/cli-linux-x64-musl@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.8.tgz#06623f877379f70e3f55476fc6c10ad9e56c0b28" + integrity sha512-Gi8quv8MEuDdKaPFtS2XjEnMqODPsRg6POT6KhoP+VrkNb+T2ywunVB+TvOU0LX1jAZzfBr+3V1mIbBhzAMKvw== + +"@biomejs/cli-linux-x64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.8.tgz#032256998a984baf1c47b9473ad62f33dcc5898c" + integrity sha512-PdKXspVEaMCQLjtZCn6vfSck/li4KX9KGwSDbZdgIqlrizJ2MnMcE3TvHa2tVfXNmbjMikzcfJpuPWH695yJrw== + +"@biomejs/cli-win32-arm64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.8.tgz#af89b557b8ff982255a580b2a0022bfb7f3bcaf6" + integrity sha512-LoFatS0tnHv6KkCVpIy3qZCih+MxUMvdYiPWLHRri7mhi2vyOOs8OrbZBcLTUEWCS+ktO72nZMy4F96oMhkOHQ== + +"@biomejs/cli-win32-x64@2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.8.tgz#feaea7bb2849838b816c52b769fd5f1a143cc566" + integrity sha512-vAn7iXDoUbqFXqVocuq1sMYAd33p8+mmurqJkWl6CtIhobd/O6moe4rY5AJvzbunn/qZCdiDVcveqtkFh1e7Hg== + "@cmfcmf/docusaurus-search-local@^1.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@cmfcmf/docusaurus-search-local/-/docusaurus-search-local-1.2.0.tgz#85c8fcfc4dd0e8481c5c0435fa754ab51e483f67" @@ -2013,38 +2062,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.52.0": - version "8.52.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" - integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== - "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -2057,25 +2074,6 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== - "@hutson/parse-repository-url@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" @@ -2321,7 +2319,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -3122,23 +3120,11 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mdast@^3.0.0": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.14.tgz#0735473a5b35be032b9f2685b7413cbab1b8a639" - integrity sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw== - dependencies: - "@types/unist" "^2" - "@types/mdast@^4.0.0", "@types/mdast@^4.0.2": version "4.0.4" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" @@ -3273,11 +3259,6 @@ dependencies: "@types/node" "*" -"@types/semver@^7.5.8": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/send@*": version "0.17.4" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" @@ -3314,11 +3295,6 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== -"@types/unist@^2", "@types/unist@^2.0.2": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.9.tgz#72e164381659a49557b0a078b28308f2c6a3e1ce" - integrity sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ== - "@types/unist@^2.0.0": version "2.0.11" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" @@ -3350,93 +3326,7 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz#50a9044e3e5fe76b22caf64fb7fc1f97614bdbfd" - integrity sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.7.1" - "@typescript-eslint/type-utils" "7.7.1" - "@typescript-eslint/utils" "7.7.1" - "@typescript-eslint/visitor-keys" "7.7.1" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.3.1" - natural-compare "^1.4.0" - semver "^7.6.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/parser@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.7.1.tgz#f940e9f291cdca40c46cb75916217d3a42d6ceea" - integrity sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw== - dependencies: - "@typescript-eslint/scope-manager" "7.7.1" - "@typescript-eslint/types" "7.7.1" - "@typescript-eslint/typescript-estree" "7.7.1" - "@typescript-eslint/visitor-keys" "7.7.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz#07fe59686ca843f66e3e2b5c151522bc38effab2" - integrity sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA== - dependencies: - "@typescript-eslint/types" "7.7.1" - "@typescript-eslint/visitor-keys" "7.7.1" - -"@typescript-eslint/type-utils@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz#2f8094edca3bebdaad009008929df645ed9c8743" - integrity sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q== - dependencies: - "@typescript-eslint/typescript-estree" "7.7.1" - "@typescript-eslint/utils" "7.7.1" - debug "^4.3.4" - ts-api-utils "^1.3.0" - -"@typescript-eslint/types@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.7.1.tgz#f903a651fb004c75add08e4e9e207f169d4b98d7" - integrity sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w== - -"@typescript-eslint/typescript-estree@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz#5cafde48fe390fe1c1b329b2ce0ba8a73c1e87b2" - integrity sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ== - dependencies: - "@typescript-eslint/types" "7.7.1" - "@typescript-eslint/visitor-keys" "7.7.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/utils@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.7.1.tgz#5d161f2b4a55e1bc38b634bebb921e4bd4e4a16e" - integrity sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.15" - "@types/semver" "^7.5.8" - "@typescript-eslint/scope-manager" "7.7.1" - "@typescript-eslint/types" "7.7.1" - "@typescript-eslint/typescript-estree" "7.7.1" - semver "^7.6.0" - -"@typescript-eslint/visitor-keys@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz#da2294796220bb0f3b4add5ecbb1b9c3f4f65798" - integrity sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw== - dependencies: - "@typescript-eslint/types" "7.7.1" - eslint-visitor-keys "^3.4.3" - -"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": +"@ungap/structured-clone@^1.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== @@ -3618,7 +3508,7 @@ acorn-import-attributes@^1.9.5: resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: +acorn-jsx@^5.0.0: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -3640,7 +3530,7 @@ acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.7.1, acorn@^8.8.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== -acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.4.1: version "8.11.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== @@ -3710,7 +3600,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3869,13 +3759,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^5.1.3: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - array-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -3899,64 +3782,11 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.6, array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - arraybuffer.prototype.slice@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" @@ -3992,11 +3822,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - ast-types@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" @@ -4014,13 +3839,6 @@ async@^3.2.3: resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== -asynciterator.prototype@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" - integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== - dependencies: - has-symbols "^1.0.3" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -4058,11 +3876,6 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.6.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.2.tgz#2f6f3cde40935825cf4465e3c1c9e77b240ff6ae" - integrity sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g== - axios@^1.6.0: version "1.6.8" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" @@ -4072,13 +3885,6 @@ axios@^1.6.0: form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" - integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== - dependencies: - dequal "^2.0.3" - b4a@^1.6.4: version "1.6.6" resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" @@ -4537,31 +4343,16 @@ character-entities-html4@^2.0.0: resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - character-entities-legacy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - character-entities@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - character-reference-invalid@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" @@ -5174,7 +4965,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -5357,11 +5148,6 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -damerau-levenshtein@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -5396,20 +5182,13 @@ debug@2.6.9, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - debug@^4.1.0, debug@^4.3.1: version "4.3.6" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" @@ -5466,11 +5245,6 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -5571,7 +5345,7 @@ deprecation@^2.0.0: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -dequal@^2.0.0, dequal@^2.0.3: +dequal@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -5643,20 +5417,6 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -5937,26 +5697,6 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.13" -es-iterator-helpers@^1.0.12: - version "1.0.15" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== - dependencies: - asynciterator.prototype "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" - es-module-lexer@^1.2.1: version "1.5.4" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" @@ -5971,13 +5711,6 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -6094,106 +5827,6 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.0.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@^2.28.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.15.0" - -eslint-plugin-jsx-a11y@^6.1.2: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== - dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" - damerau-levenshtein "^1.0.8" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" - -eslint-plugin-markdown@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-2.2.1.tgz#76b8a970099fbffc6cc1ffcad9772b96911c027a" - integrity sha512-FgWp4iyYvTFxPwfbxofTvXxgzPsDuSKHQy2S+a8Ve6savbujey+lgrFFbXQA0HPygISpRYWYBjooPzhYSF81iA== - dependencies: - mdast-util-from-markdown "^0.8.5" - -eslint-plugin-react-hooks@^4.0.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react@^7.22.0: - version "7.33.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" - integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - es-iterator-helpers "^1.0.12" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.1" - string.prototype.matchall "^4.0.8" - eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -6202,84 +5835,11 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.52.0: - version "8.52.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" - integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.52.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -6292,7 +5852,7 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: +estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -6539,11 +6099,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - fast-uri@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" @@ -6606,13 +6161,6 @@ figures@^1.4.0: escape-string-regexp "^1.0.5" object-assign "^4.1.0" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -6706,25 +6254,11 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" -flat-cache@^3.0.4: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - follow-redirects@^1.0.0, follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -6882,12 +6416,12 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: +function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -7057,7 +6591,7 @@ glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -7141,13 +6675,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" - globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -7212,11 +6739,6 @@ graceful-fs@4.2.11, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - gray-matter@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" @@ -7325,7 +6847,7 @@ has-yarn@^3.0.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== -has@^1.0.3, has@~1.0.3: +has@~1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== @@ -7774,7 +7296,7 @@ ignore-walk@^6.0.4: dependencies: minimatch "^9.0.0" -ignore@^5.0.4, ignore@^5.3.1: +ignore@^5.0.4: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -7801,7 +7323,7 @@ immer@^9.0.7: resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== -import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: +import-fresh@^3.1.0, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -7958,24 +7480,11 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - is-alphabetical@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-alphanumerical@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" @@ -8006,13 +7515,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== - dependencies: - has-tostringtag "^1.0.0" - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -8047,25 +7549,20 @@ is-ci@3.0.1, is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: +is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - is-decimal@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" @@ -8086,13 +7583,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-finalizationregistry@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" - integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== - dependencies: - call-bind "^1.0.2" - is-finite@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" @@ -8103,25 +7593,13 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - is-hexadecimal@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" @@ -8145,11 +7623,6 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -8187,7 +7660,7 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -8249,11 +7722,6 @@ is-root@^2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-set@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -8316,11 +7784,6 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -8328,14 +7791,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -8405,17 +7860,6 @@ istanbul-reports@^3.1.4: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterator.prototype@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" - integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== - dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" - jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" @@ -8572,23 +8016,11 @@ json-schema@0.4.0: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -8630,16 +8062,6 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -8657,18 +8079,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -language-subtag-registry@~0.3.2: - version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== - dependencies: - language-subtag-registry "~0.3.2" - latest-version@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" @@ -8774,14 +8184,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - libnpmaccess@7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-7.0.2.tgz#7f056c8c933dd9c8ba771fa6493556b53c5aac52" @@ -8910,11 +8312,6 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9113,17 +8510,6 @@ mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: unist-util-is "^6.0.0" unist-util-visit-parents "^6.0.0" -mdast-util-from-markdown@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - mdast-util-from-markdown@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" @@ -9309,11 +8695,6 @@ mdast-util-to-markdown@^2.0.0: unist-util-visit "^5.0.0" zwitch "^2.0.0" -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - mdast-util-to-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" @@ -9796,14 +9177,6 @@ micromark@^4.0.0: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" -micromark@~2.11.0: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - micromatch@^4.0.2, micromatch@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -9927,7 +9300,7 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.4: +minimatch@^9.0.0, minimatch@^9.0.1: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -10084,7 +9457,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: +ms@2.1.3, ms@^2.0.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -10123,11 +9496,6 @@ nanoid@^3.3.7: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -10515,51 +9883,6 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.fromentries@^2.0.6, object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.hasown@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" - integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== - dependencies: - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.values@^1.1.6, object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -10612,18 +9935,6 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - ora@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" @@ -10870,18 +10181,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - parse-entities@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" @@ -11466,16 +10765,6 @@ preact@^10.13.2: resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.2.tgz#52deec92796ae0f0cc6b034d9c66e0fbc1b837dc" integrity sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA== -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier@^3.2.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== - pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -11573,7 +10862,7 @@ promzard@^1.0.0: dependencies: read "^3.0.1" -prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -12052,18 +11341,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reflect.getprototypeof@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" - integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - which-builtin-type "^1.1.3" - regenerate-unicode-properties@^10.1.0: version "10.1.1" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" @@ -12088,7 +11365,7 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -12314,7 +11591,7 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4, resolve@~1.22.6: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.2, resolve@~1.22.6: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -12323,15 +11600,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.4: - version "2.0.0-next.5" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - responselike@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" @@ -12547,7 +11815,7 @@ semver-diff@^4.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -12649,7 +11917,7 @@ set-function-length@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -set-function-name@^2.0.0, set-function-name@^2.0.1: +set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== @@ -13083,21 +12351,6 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" - string.prototype.trim@^1.2.8, string.prototype.trim@~1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" @@ -13581,11 +12834,6 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== -ts-api-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== - ts-morph@^21.0.0: version "21.0.1" resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-21.0.1.tgz#712302a0f6e9dbf1aa8d9cf33a4386c4b18c2006" @@ -13625,16 +12873,6 @@ ts-patch@^3.1.2: semver "^7.5.4" strip-ansi "^6.0.1" -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - tsconfig-paths@^4.1.1, tsconfig-paths@^4.1.2: version "4.2.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" @@ -13684,23 +12922,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -13790,15 +13016,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript-eslint@^7.7.0: - version "7.7.1" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.7.1.tgz#16f82e83bb0955af02f258cb7a9de59e1bfb8706" - integrity sha512-ykEBfa3xx3odjZy6GRED4SCPrjo0rgHwstLlEgLX4EMEuv7QeIDSmfV+S6Kk+XkbsYn4BDEcPvsci1X26lRpMQ== - dependencies: - "@typescript-eslint/eslint-plugin" "7.7.1" - "@typescript-eslint/parser" "7.7.1" - "@typescript-eslint/utils" "7.7.1" - "typescript@>=3 < 6": version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" @@ -13925,13 +13142,6 @@ unist-util-position@^5.0.0: dependencies: "@types/unist" "^3.0.0" -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - unist-util-stringify-position@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" @@ -14350,35 +13560,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== - dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" - is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.0.2" - is-generator-function "^1.0.10" - is-regex "^1.1.4" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: +which-typed-array@^1.1.11, which-typed-array@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==