diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 7c0e9b09..00000000 --- a/.editorconfig +++ /dev/null @@ -1,36 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Use 4 spaces for the Python files -[*.py] -indent_size = 4 -max_line_length = 80 - -# The JSON files contain newlines inconsistently -[*.json] -insert_final_newline = ignore - -# Minified JavaScript files shouldn't be changed -[**.min.js] -indent_style = ignore -insert_final_newline = ignore - -# Makefiles always use tabs for indentation -[Makefile] -indent_style = tab - -# Batch files use tabs for indentation -[*.bat] -indent_style = tab - -[*.md] -trim_trailing_whitespace = false - diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 1f40f1fa..00000000 --- a/.eslintignore +++ /dev/null @@ -1,28 +0,0 @@ -# config -.eslintrc.js -jest-setup.js -**/*config.js - -# git -.gitkeep - -#bin -/bin - -# examples -/examples - -# testing -__tests__/e2e -__tests__/e2e-build - -# dist files -picture.js -picture.d.ts -image.js -image.d.ts -legacy -remote-image.js -remote-image.d.ts -remote-picture.js -remote-picture.d.ts diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index b26f0a37..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,54 +0,0 @@ -module.exports = { - env: { - es6: true, - node: true, - 'jest/globals': true, - }, - extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:jest-dom/recommended', 'prettier'], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2021, - sourceType: 'module', - project: ['./tsconfig.json'], - }, - settings: { - 'import/resolver': { - node: { - extensions: ['.js', '.ts'], - }, - }, - }, - plugins: ['import', 'jest'], - rules: { - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-unused-vars': 'error', - 'import/prefer-default-export': 'off', - 'import/no-unresolved': 'off', - 'import/order': [ - 'error', - { - pathGroups: [ - { - pattern: '~/**', - group: 'external', - position: 'after', - }, - ], - 'newlines-between': 'always', - alphabetize: { - order: 'asc', - caseInsensitive: false, - }, - }, - ], - 'no-continue': 'off', - 'no-restricted-syntax': 'off', - 'no-console': ['error', { allow: ['warn', 'error'] }], - }, - overrides: [ - { - files: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'], - extends: ['plugin:testing-library/react', 'plugin:jest-dom/recommended'], - }, - ], -} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index ed0d3af9..00000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -.next -public diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index afb68348..00000000 --- a/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - trailingComma: 'es5', - tabWidth: 2, - semi: false, - singleQuote: true, - printWidth: 120, -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..d8db3594 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports.biome": "explicit" + }, + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + } +} diff --git a/__tests__/cli/cache/index.test.ts b/__tests__/cli/cache/index.test.ts index af90ae88..7c456fa1 100644 --- a/__tests__/cli/cache/index.test.ts +++ b/__tests__/cli/cache/index.test.ts @@ -1,4 +1,4 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' @@ -43,9 +43,15 @@ describe('Cache', () => { let measuredError = 0 const destDir = path.resolve(__dirname, 'results') - const cacheMeasurement = () => (measuredCache += 1) - const nonCacheMeasurement = () => (measuredNonCache += 1) - const errorMeasurement = () => (measuredError += 1) + const cacheMeasurement = () => { + measuredCache += 1 + } + const nonCacheMeasurement = () => { + measuredNonCache += 1 + } + const errorMeasurement = () => { + measuredError += 1 + } const cliProgressBarIncrement = () => undefined const srcDir = path.resolve(__dirname, 'fixtures') diff --git a/__tests__/cli/external-images/index.test.ts b/__tests__/cli/external-images/index.test.ts index 82d48c4e..7f99ad7d 100644 --- a/__tests__/cli/external-images/index.test.ts +++ b/__tests__/cli/external-images/index.test.ts @@ -1,4 +1,4 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' import { imageConfigDefault } from 'next/dist/shared/lib/image-config' @@ -7,18 +7,21 @@ import { optimizeImages } from '../../../src/cli' const fixturesDir = path.resolve(__dirname, 'fixtures') -beforeAll(async () => { - await fs.remove(fixturesDir) - await optimizeImages({ - manifestJsonPath: path.resolve(__dirname, 'manifest.json'), - noCache: true, - terse: true, - config: { - outDir: '__tests__/cli/external-images/fixtures', - }, - nextImageConfig: imageConfigDefault, - }) -}, 60 * 3 * 1000) +beforeAll( + async () => { + await fs.remove(fixturesDir) + await optimizeImages({ + manifestJsonPath: path.resolve(__dirname, 'manifest.json'), + noCache: true, + terse: true, + config: { + outDir: '__tests__/cli/external-images/fixtures', + }, + nextImageConfig: imageConfigDefault, + }) + }, + 60 * 3 * 1000 +) const exist = (filename: string) => fs.existsSync(path.join(fixturesDir, '_next/static/media', filename)) diff --git a/__tests__/cli/image-optimize/index.test.ts b/__tests__/cli/image-optimize/index.test.ts index 07c0451a..4ccf43bc 100644 --- a/__tests__/cli/image-optimize/index.test.ts +++ b/__tests__/cli/image-optimize/index.test.ts @@ -1,21 +1,24 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' import { imageConfigDefault } from 'next/dist/shared/lib/image-config' import { optimizeImages } from '../../../src/cli' -beforeAll(async () => { - await optimizeImages({ - manifestJsonPath: path.resolve(__dirname, 'manifest.json'), - noCache: true, - terse: true, - config: { - outDir: '__tests__/cli/image-optimize/fixtures', - }, - nextImageConfig: imageConfigDefault, - }) -}, 60 * 3 * 1000) +beforeAll( + async () => { + await optimizeImages({ + manifestJsonPath: path.resolve(__dirname, 'manifest.json'), + noCache: true, + terse: true, + config: { + outDir: '__tests__/cli/image-optimize/fixtures', + }, + nextImageConfig: imageConfigDefault, + }) + }, + 60 * 3 * 1000 +) const exist = (filename: string) => fs.existsSync(path.resolve(__dirname, 'fixtures/results/images', filename)) diff --git a/__tests__/e2e-build/index.test.ts b/__tests__/e2e-build/index.test.ts index 8ce32dc1..9bc06d3e 100644 --- a/__tests__/e2e-build/index.test.ts +++ b/__tests__/e2e-build/index.test.ts @@ -1,4 +1,4 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' import { imageConfigDefault } from 'next/dist/shared/lib/image-config' @@ -23,18 +23,17 @@ const files = [ describe('`next build && next export && next-export-optimize-images` is executed correctly', () => { test('Images are being generated.', async () => { - // eslint-disable-next-line @typescript-eslint/no-var-requires const customConfig = require('./next.config.js') const configImages = { ...imageConfigDefault, ...customConfig.images } const allSizes = [...configImages.imageSizes, ...configImages.deviceSizes] - allSizes.forEach((size) => { - files.forEach((file) => { + for (const size of allSizes) { + for (const file of files) { const isExist = exist(file.replace('[width]', size.toString())) if (!isExist) { console.log(file.replace('[width]', size.toString())) } expect(isExist).toBeTruthy() - }) - }) + } + } }) }) diff --git a/__tests__/e2e/export-images.config.js b/__tests__/e2e/export-images.config.js index 8dcc8ce0..063f673d 100644 --- a/__tests__/e2e/export-images.config.js +++ b/__tests__/e2e/export-images.config.js @@ -17,6 +17,8 @@ const config = { generateFormats: ['avif', 'webp'], remoteImages: getRemoteImages, filenameGenerator: ({ path, name, width, extension }) => `${path}/${name}_${width}.${extension}`, + // function宣言による記述もテストしたいため無視する + // biome-ignore lint/complexity/useArrowFunction: sourceImageParser: function ({ src, defaultParser }) { return defaultParser(src) }, diff --git a/__tests__/e2e/index.test.ts b/__tests__/e2e/index.test.ts index b5ba26e5..38db1abf 100644 --- a/__tests__/e2e/index.test.ts +++ b/__tests__/e2e/index.test.ts @@ -1,4 +1,4 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' import { imageConfigDefault } from 'next/dist/shared/lib/image-config' @@ -58,18 +58,17 @@ const files = [ describe('`next build && next export && next-export-optimize-images` is executed correctly', () => { test('Images are being generated.', async () => { - // eslint-disable-next-line @typescript-eslint/no-var-requires const customConfig = require('./next.config.js') const configImages = { ...imageConfigDefault, ...customConfig.images } const allSizes = [...configImages.imageSizes, ...configImages.deviceSizes] - allSizes.forEach((size) => { - files.forEach((file) => { + for (const size of allSizes) { + for (const file of files) { const isExist = exist(file.replace('[width]', size.toString())) if (!isExist) { console.log(file.replace('[width]', size.toString())) } expect(isExist).toBeTruthy() - }) - }) + } + } }) }) diff --git a/__tests__/utils/buildOutputInfo/index.test.ts b/__tests__/utils/buildOutputInfo/index.test.ts index 67891666..f5658c34 100644 --- a/__tests__/utils/buildOutputInfo/index.test.ts +++ b/__tests__/utils/buildOutputInfo/index.test.ts @@ -1,5 +1,5 @@ import buildOutputInfo from '../../../src/utils/buildOutputInfo' -import { Config } from '../../../src/utils/getConfig' +import type { Config } from '../../../src/utils/getConfig' describe('buildOutputInfo', () => { test('Default image parser functions properly', () => { @@ -230,7 +230,7 @@ describe('buildOutputInfo', () => { } expect(() => buildOutputInfo(input)).toThrowError( - new Error(`Unauthorized format specified in \`configFormat\`. afterConvert: invalid_format`) + new Error('Unauthorized format specified in `configFormat`. afterConvert: invalid_format') ) }) @@ -243,8 +243,8 @@ describe('buildOutputInfo', () => { } as unknown as Config, } - expect(() => buildOutputInfo(input)).toThrowError( - new Error(`Unauthorized extension specified in \`generateFormats\`: invalid_format`) + expect(() => buildOutputInfo(input)).toThrow( + new Error('Unauthorized extension specified in `generateFormats`: invalid_format') ) }) diff --git a/bench/fixtures/default.avif b/bench/fixtures/default.avif deleted file mode 100644 index 76144d22..00000000 Binary files a/bench/fixtures/default.avif and /dev/null differ diff --git a/bench/fixtures/default.jpeg b/bench/fixtures/default.jpeg deleted file mode 100644 index dcdd802e..00000000 Binary files a/bench/fixtures/default.jpeg and /dev/null differ diff --git a/bench/fixtures/default.jpg b/bench/fixtures/default.jpg deleted file mode 100644 index dcdd802e..00000000 Binary files a/bench/fixtures/default.jpg and /dev/null differ diff --git a/bench/fixtures/default.png b/bench/fixtures/default.png deleted file mode 100644 index b18f8a50..00000000 Binary files a/bench/fixtures/default.png and /dev/null differ diff --git a/bench/fixtures/default.webp b/bench/fixtures/default.webp deleted file mode 100644 index d773d7d8..00000000 Binary files a/bench/fixtures/default.webp and /dev/null differ diff --git a/bench/index.ts b/bench/index.ts deleted file mode 100644 index 2898c2ab..00000000 --- a/bench/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import path from 'path' - -import Benchmark from 'benchmark' -import sharp from 'sharp' - -import { optimizeImages } from '../src/cli' - -sharp.cache(false) - -const suite = new Benchmark.Suite() - -suite - .add('current', async () => { - await optimizeImages({ - manifestJsonPath: path.resolve(__dirname, 'manifest.json'), - noCache: true, - config: { - outDir: 'bench/fixtures', - }, - terse: true, - }) - }) - .add('new', async () => { - // await newOptimizeImages({ - // manifestJsonPath: path.resolve(__dirname, 'manifest.json'), - // noCache: true, - // config: { - // outDir: 'bench/fixtures', - // }, - // terse: true, - // }) - }) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - .on('cycle', (event: any) => { - // eslint-disable-next-line no-console - console.log(String(event.target)) - }) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - .on('complete', function (this: any) { - // eslint-disable-next-line no-console - console.log(`Fastest is ${this.filter('fastest').map('name')}`) - }) - .run({ async: true }) diff --git a/bench/manifest.json b/bench/manifest.json deleted file mode 100644 index ae9ea330..00000000 --- a/bench/manifest.json +++ /dev/null @@ -1,9 +0,0 @@ - -{"output":"/results/images/default_640_75.png","src":"/default.png","width":640,"quality":75,"extension":"png"} -{"output":"/results/images/default_750_75.png","src":"/default.png","width":750,"quality":75,"extension":"png"} -{"output":"/results/images/default_828_75.png","src":"/default.png","width":828,"quality":75,"extension":"png"} -{"output":"/results/images/default_1080_75.png","src":"/default.png","width":1080,"quality":75,"extension":"png"} -{"output":"/results/images/default_1200_75.png","src":"/default.png","width":1200,"quality":75,"extension":"png"} -{"output":"/results/images/default_1920_75.png","src":"/default.png","width":1920,"quality":75,"extension":"png"} -{"output":"/results/images/default_2048_75.png","src":"/default.png","width":2048,"quality":75,"extension":"png"} -{"output":"/results/images/default_3840_75.png","src":"/default.png","width":3840,"quality":75,"extension":"png"} diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..bc9f5847 --- /dev/null +++ b/biome.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "./bin", + "./dist", + "./docs", + "./__tests__/**/*.json", + "./__tests__/**/components", + "./bench/**/*.json", + "**/.next", + "**/public", + "**/out", + "./picture.js", + "./picture.d.ts", + "./image.js", + "./image.d.ts", + "./legacy", + "./remote-image.js", + "./remote-image.d.ts", + "./remote-picture.js", + "./remote-picture.d.ts", + "./biome.json" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 120, + "attributePosition": "auto", + "bracketSpacing": true + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noConsole": "off" + } + } + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + } + } +} diff --git a/changelog.config.js b/changelog.config.js index 540f43ac..ebbaee5d 100644 --- a/changelog.config.js +++ b/changelog.config.js @@ -15,7 +15,7 @@ module.exports = { /** * コミットメッセージの題目の書式 */ - format: "{type}{scope}: {emoji}{subject}", + format: '{type}{scope}: {emoji}{subject}', /** * コミット時に選択可能な型 */ @@ -32,11 +32,11 @@ module.exports = { * コミット時に入力する項目 */ questions: [ - "type", // 型 - "subject", // コミットの題名 - "body", // コミットの本文 - "breaking", // breaking changeの内容 - "issues", // クローズするGitHub issues + 'type', // 型 + 'subject', // コミットの題名 + 'body', // コミットの本文 + 'breaking', // breaking changeの内容 + 'issues', // クローズするGitHub issues ], /** * 各型の設定 @@ -45,9 +45,9 @@ module.exports = { /** * BREAKING CHANGEに表示する絵文字 */ - breakingChangePrefix: "🧨", + breakingChangePrefix: '🧨', /** * Closesに表示する絵文字 */ - closedIssuePrefix: "✅", + closedIssuePrefix: '✅', } diff --git a/commit-types.config.js b/commit-types.config.js index b5af4510..2dc7dd7b 100644 --- a/commit-types.config.js +++ b/commit-types.config.js @@ -13,90 +13,90 @@ */ module.exports = [ { - type: "feat", // 機能追加 - release: "minor", - description: "A new feature", - emoji: "🚀", - section: "Features", + type: 'feat', // 機能追加 + release: 'minor', + description: 'A new feature', + emoji: '🚀', + section: 'Features', hidden: false, }, { - type: "fix", // バグ修正 - release: "patch", - description: "A bug fix", - emoji: "🐛", - section: "Bug Fixes", + type: 'fix', // バグ修正 + release: 'patch', + description: 'A bug fix', + emoji: '🐛', + section: 'Bug Fixes', hidden: false, }, { - type: "sec", // 脆弱性の解消 - release: "patch", - description: "A vulnerability fix", - emoji: "👮‍", - section: "Security", + type: 'sec', // 脆弱性の解消 + release: 'patch', + description: 'A vulnerability fix', + emoji: '👮‍', + section: 'Security', hidden: false, }, { - type: "perf", // パフォーマンスのみの改善 - release: "patch", - description: "A code change that improves performance", - emoji: "⚡️", - section: "Performance Improvements", + type: 'perf', // パフォーマンスのみの改善 + release: 'patch', + description: 'A code change that improves performance', + emoji: '⚡️', + section: 'Performance Improvements', hidden: false, }, { - type: "refactor", // 機能追加やバグ修正を伴わないリファクタリング + type: 'refactor', // 機能追加やバグ修正を伴わないリファクタリング release: undefined, - description: "A code change that neither fixes a bug or adds a feature", - emoji: "💡", - section: "Code Refactoring", + description: 'A code change that neither fixes a bug or adds a feature', + emoji: '💡', + section: 'Code Refactoring', hidden: true, }, { - type: "docs", // ドキュメントのみの変更 + type: 'docs', // ドキュメントのみの変更 release: undefined, - description: "Documentation only changes", - emoji: "✏️", - section: `Documentation`, + description: 'Documentation only changes', + emoji: '✏️', + section: 'Documentation', hidden: false, }, { - type: "release", // リリースコミット + type: 'release', // リリースコミット release: undefined, - description: "Create a release commit", - emoji: "🏹", + description: 'Create a release commit', + emoji: '🏹', hidden: true, }, { - type: "style", // コーディングスタイル関連の修正 + type: 'style', // コーディングスタイル関連の修正 release: undefined, - description: "Markup, white-space, formatting, missing semi-colons...", - emoji: "💄", - section: "Styles", + description: 'Markup, white-space, formatting, missing semi-colons...', + emoji: '💄', + section: 'Styles', hidden: true, }, { - type: "test", // テストの追加変更 + type: 'test', // テストの追加変更 release: undefined, - description: "Adding missing tests", - emoji: "💍", - section: "Tests", + description: 'Adding missing tests', + emoji: '💍', + section: 'Tests', hidden: false, }, { - type: "ci", // CI関連の変更 + type: 'ci', // CI関連の変更 release: undefined, - description: "CI related changes", - emoji: "🎡", - section: `Continuous Integration`, + description: 'CI related changes', + emoji: '🎡', + section: 'Continuous Integration', hidden: false, }, { - type: "chore", // ビルドプロセスや補助ツールの変更 + type: 'chore', // ビルドプロセスや補助ツールの変更 release: undefined, - description: "Build process or auxiliary tool changes", - emoji: "🤖", - section: `Chore`, + description: 'Build process or auxiliary tool changes', + emoji: '🤖', + section: 'Chore', hidden: true, }, -]; +] diff --git a/examples/common/images/img.png b/examples/common/images/img.png deleted file mode 100644 index b18f8a50..00000000 Binary files a/examples/common/images/img.png and /dev/null differ diff --git a/examples/common/next.config.js b/examples/common/next.config.js deleted file mode 100644 index 9df4b8d7..00000000 --- a/examples/common/next.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const withExportImages = require('next-export-optimize-images') - -/** - * @type {import('next').NextConfig} - */ -const config = { - reactStrictMode: true, - trailingSlash: true, - eslint: { - ignoreDuringBuilds: true, - }, -} - -module.exports = withExportImages(config) diff --git a/examples/common/package.json b/examples/common/package.json deleted file mode 100644 index 5d72c5a4..00000000 --- a/examples/common/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "example-common", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "generate": "yarn build && next export && next-export-optimize-images", - "lint": "next lint . --cache" - }, - "dependencies": { - "next": "latest", - "react": "latest", - "react-dom": "latest", - "next-export-optimize-images": "latest" - }, - "devDependencies": {} -} diff --git a/examples/common/pages/_app.jsx b/examples/common/pages/_app.jsx deleted file mode 100644 index 3ac920de..00000000 --- a/examples/common/pages/_app.jsx +++ /dev/null @@ -1,5 +0,0 @@ -function MyApp({ Component, pageProps }) { - return -} - -export default MyApp diff --git a/examples/common/pages/index.jsx b/examples/common/pages/index.jsx deleted file mode 100644 index 80de1324..00000000 --- a/examples/common/pages/index.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import Image from 'next-export-optimize-images/image' - -import imgSrc from '../images/img.png' - -const IndexPage = () => { - return ( -
- - - -
- ) -} - -export default IndexPage diff --git a/examples/common/public/images/img.png b/examples/common/public/images/img.png deleted file mode 100644 index b18f8a50..00000000 Binary files a/examples/common/public/images/img.png and /dev/null differ diff --git a/jest.config.js b/jest.config.js index 1cf78e2b..5966b832 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,5 +2,5 @@ module.exports = { preset: 'ts-jest', testMatch: ['**/__tests__/**/*.test.[jt]s?(x)'], - setupFilesAfterEnv: ['/jest-setup.ts'] + setupFilesAfterEnv: ['/jest-setup.ts'], } diff --git a/package.json b/package.json index 5d6bc23b..ba38d19c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,9 @@ "dev": "tsup --watch", "build": "tsup", "commitmsg": "commitlint -e $GIT_PARAMS", - "lint": "eslint {src,__tests__} --cache --config .eslintrc.js", + "lint": "yarn biome lint ./", + "format": "yarn biome format --write ./", + "check:write": "yarn biome check --write ./", "lint-staged": "lint-staged", "prepare": "husky", "pretest": "yarn build && npm-run-all --sequential pretest:**", @@ -51,8 +53,7 @@ }, "lint-staged": { "*.{ts,tsx}": [ - "eslint --fix --config .eslintrc.js", - "prettier --write" + "yarn biome check --write" ] }, "dependencies": { @@ -65,6 +66,7 @@ "sharp": "^0.33.5" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@commitlint/cli": "19.5.0", "@commitlint/config-conventional": "19.5.0", "@semantic-release/changelog": "6.0.3", @@ -81,15 +83,7 @@ "@types/react": "npm:types-react@rc", "@types/recursive-readdir": "2.2.4", "@types/sharp": "0.32.0", - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", "conventional-changelog-conventionalcommits": "6.1.0", - "eslint": "9.14.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-import": "2.31.0", - "eslint-plugin-jest": "28.8.3", - "eslint-plugin-jest-dom": "5.4.0", - "eslint-plugin-testing-library": "6.4.0", "git-cz": "4.9.0", "husky": "9.1.6", "jest": "29.7.0", @@ -97,7 +91,6 @@ "lint-staged": "15.2.10", "next": "15.0.3", "npm-run-all2": "6.2.6", - "prettier": "3.3.3", "react": "19.0.0-rc-ed15d500-20241110", "react-dom": "19.0.0-rc-ed15d500-20241110", "rimraf": "5.0.10", diff --git a/release.config.js b/release.config.js index 1cf69f04..ed5259e2 100644 --- a/release.config.js +++ b/release.config.js @@ -24,7 +24,7 @@ module.exports = { * * @see https://semantic-release.gitbook.io/semantic-release/usage/workflow-configuration */ - branches: [defaultBranch, { name: "beta", prerelease: true }], + branches: [defaultBranch, { name: 'beta', prerelease: true }], /** * Gitタグのフォーマット。Lodashのテンプレートが使えます。 * multi-semantic-releaseを使った場合は、この設定は無視されます。 diff --git a/src/cli/external-images/index.ts b/src/cli/external-images/index.ts index 1c2dceed..be45f80e 100644 --- a/src/cli/external-images/index.ts +++ b/src/cli/external-images/index.ts @@ -1,11 +1,8 @@ -import path from 'path' -import { Stream } from 'stream' -import { ReadableStream } from 'stream/web' - +import path from 'node:path' +import { Stream } from 'node:stream' +import type { ReadableStream } from 'node:stream/web' import fs from 'fs-extra' - import type { Manifest } from '../' - import type { Config } from './../../utils/getConfig' type ExternalImagesDownloaderArgs = { diff --git a/src/cli/index.ts b/src/cli/index.ts index 3fff7a6c..84195d8f 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,21 +1,18 @@ -import { createHash } from 'crypto' -import path from 'path' - +import { createHash } from 'node:crypto' +import path from 'node:path' import colors from 'ansi-colors' import fs from 'fs-extra' import { PHASE_PRODUCTION_BUILD } from 'next/constants' import loadConfig from 'next/dist/server/config' -import { ImageConfigComplete } from 'next/dist/shared/lib/image-config' +import type { ImageConfigComplete } from 'next/dist/shared/lib/image-config' import recursiveReadDir from 'recursive-readdir' import sharp from 'sharp' - import buildOutputInfo from '../utils/buildOutputInfo' import formatValidate from '../utils/formatValidate' -import getConfig, { Config } from '../utils/getConfig' +import getConfig, { type Config } from '../utils/getConfig' import processManifest from '../utils/processManifest' - import externalImagesDownloader from './external-images' -import { CacheImages, createCacheDir, defaultCacheDir, readCacheManifest, writeCacheManifest } from './utils/cache' +import { type CacheImages, createCacheDir, defaultCacheDir, readCacheManifest, writeCacheManifest } from './utils/cache' import { cliProgressBarIncrement, cliProgressBarStart } from './utils/cliProgressBar' import uniqueItems from './utils/uniqueItems' @@ -84,8 +81,9 @@ export const getOptimizeResult: GetOptimizeResult = async ({ cacheMeasurement() cliProgressBarIncrement() return - } else { - if (currentCacheImage !== undefined) currentCacheImage.hash = hash + } + if (currentCacheImage !== undefined) { + currentCacheImage.hash = hash } } } @@ -95,31 +93,36 @@ export const getOptimizeResult: GetOptimizeResult = async ({ image.rotate().resize({ width, withoutEnlargement: true }) switch (extension) { - case 'jpeg': + case 'jpeg': { const jpeg = await image.jpeg({ quality, ...sharpOptions?.jpg }) await jpeg.toFile(outputPath) await jpeg.toFile(filePath) break - case 'jpg': + } + case 'jpg': { const jpg = await image.jpeg({ quality, ...sharpOptions?.jpg }) await jpg.toFile(outputPath) await jpg.toFile(filePath) break - case 'png': + } + case 'png': { const png = await image.png({ quality, ...sharpOptions?.png }) await png.toFile(outputPath) await png.toFile(filePath) break - case 'webp': + } + case 'webp': { const webp = image.webp({ quality, ...sharpOptions?.webp }) await webp.toFile(outputPath) await webp.toFile(filePath) break - case 'avif': + } + case 'avif': { const avif = image.avif({ quality, ...sharpOptions?.avif }) await avif.toFile(outputPath) await avif.toFile(filePath) break + } } nonCacheMeasurement() @@ -188,9 +191,9 @@ export const optimizeImages = async ({ if (remoteImages.length > 0) { const remoteImageList = new Set() - remoteImages.forEach((url) => { + for (const url of remoteImages) { remoteImageList.add(url) - }) + } manifest = manifest.concat( Array.from(remoteImageList) @@ -244,8 +247,7 @@ export const optimizeImages = async ({ const publicDir = path.resolve(cwd, 'public') if (fs.existsSync(publicDir)) { if (!terse) { - // eslint-disable-next-line no-console - console.log(`\n- Collect images in public directory -`) + console.log('\n- Collect images in public directory -') } const publicDirFiles = await recursiveReadDir(publicDir) const publicDirImages = publicDirFiles.filter((file) => { @@ -278,8 +280,7 @@ export const optimizeImages = async ({ } if (!terse) { - // eslint-disable-next-line no-console - console.log(`\n- Image Optimization -`) + console.log('\n- Image Optimization -') cliProgressBarStart(manifest.length) } @@ -295,9 +296,15 @@ export const optimizeImages = async ({ let measuredError = 0 const invalidFormatAssets = new Set([]) - const cacheMeasurement = () => (measuredCache += 1) - const nonCacheMeasurement = () => (measuredNonCache += 1) - const errorMeasurement = () => (measuredError += 1) + const cacheMeasurement = () => { + measuredCache += 1 + } + const nonCacheMeasurement = () => { + measuredNonCache += 1 + } + const errorMeasurement = () => { + measuredError += 1 + } const pushInvalidFormatAssets = (asset: string) => invalidFormatAssets.add(asset) const srcMap: Record[]> = {} @@ -357,12 +364,11 @@ export const optimizeImages = async ({ if (invalidFormatAssets.size !== 0) { // eslint-disable-next-line no-console console.log( - `\nThe following images are in a non-optimized format and a simple copy was applied.\n`, + '\nThe following images are in a non-optimized format and a simple copy was applied.\n', Array.from(invalidFormatAssets).join('\n') ) } - // eslint-disable-next-line no-console console.log(colors.bold.magenta('\nSuccessful optimization!')) } } diff --git a/src/cli/utils/cache.ts b/src/cli/utils/cache.ts index 269ff59b..a7e24a73 100644 --- a/src/cli/utils/cache.ts +++ b/src/cli/utils/cache.ts @@ -1,4 +1,4 @@ -import path from 'path' +import path from 'node:path' import fs from 'fs-extra' diff --git a/src/components/image.tsx b/src/components/image.tsx index be3285bd..a262b748 100644 --- a/src/components/image.tsx +++ b/src/components/image.tsx @@ -1,6 +1,5 @@ -import Image, { ImageProps } from 'next/image' +import Image, { type ImageProps } from 'next/image' import React, { forwardRef } from 'react' - import getStringSrc from './utils/getStringSrc' import imageLoader from './utils/imageLoader' diff --git a/src/components/legacy-image.tsx b/src/components/legacy-image.tsx index 4cb126e1..37597f61 100644 --- a/src/components/legacy-image.tsx +++ b/src/components/legacy-image.tsx @@ -1,6 +1,5 @@ -import Image, { ImageProps } from 'next/image' +import Image, { type ImageProps } from 'next/image' import React from 'react' - import imageLoader from './utils/imageLoader' const CustomImage = (props: ImageProps) => { diff --git a/src/components/picture.tsx b/src/components/picture.tsx index 5dcbf630..08afe434 100644 --- a/src/components/picture.tsx +++ b/src/components/picture.tsx @@ -1,8 +1,6 @@ -import Image, { ImageProps, getImageProps } from 'next/image' +import Image, { type ImageProps, getImageProps } from 'next/image' import React, { forwardRef } from 'react' - import getConfig from '../utils/getConfig' - import getStringSrc from './utils/getStringSrc' import imageLoader from './utils/imageLoader' diff --git a/src/components/remote-image.tsx b/src/components/remote-image.tsx index 20498ac5..4a700aa5 100644 --- a/src/components/remote-image.tsx +++ b/src/components/remote-image.tsx @@ -1,15 +1,12 @@ -import { createHash } from 'crypto' -import { join } from 'path' - +import { createHash } from 'node:crypto' +import { join } from 'node:path' import { appendFileSync } from 'fs-extra' import type { ImageConfigComplete } from 'next/dist/shared/lib/image-config' import type { ImageProps } from 'next/image' import React, { forwardRef } from 'react' - import type { Manifest } from '../cli' import buildOutputInfo from '../utils/buildOutputInfo' import getConfig from '../utils/getConfig' - import Image from './image' type RemoteImageProps = Omit & { @@ -19,12 +16,12 @@ type RemoteImageProps = Omit & { const config = getConfig() const RemoteImage = forwardRef(({ src, ...props }, forwardedRef) => { - if (process.env['NODE_ENV'] === 'production') { - const nextImageConfig = process.env['__NEXT_IMAGE_OPTS'] as unknown as ImageConfigComplete + if (process.env.NODE_ENV === 'production') { + const nextImageConfig = process.env.__NEXT_IMAGE_OPTS as unknown as ImageConfigComplete const allSizes = [...nextImageConfig.imageSizes, ...nextImageConfig.deviceSizes] - allSizes.forEach((width) => { + for (const width of allSizes) { const outputInfo = buildOutputInfo({ src, width, @@ -59,8 +56,8 @@ const RemoteImage = forwardRef(({ src, ...pr externalUrl: src, } - appendFileSync(join(process.cwd(), '.next/next-export-optimize-images-list.nd.json'), JSON.stringify(json) + '\n') - }) + appendFileSync(join(process.cwd(), '.next/next-export-optimize-images-list.nd.json'), `${JSON.stringify(json)}\n`) + } } return diff --git a/src/components/remote-picture.tsx b/src/components/remote-picture.tsx index c783fbb7..3a282b9b 100644 --- a/src/components/remote-picture.tsx +++ b/src/components/remote-picture.tsx @@ -1,15 +1,12 @@ -import { createHash } from 'crypto' -import { join } from 'path' - +import { createHash } from 'node:crypto' +import { join } from 'node:path' import { appendFileSync } from 'fs-extra' import type { ImageConfigComplete } from 'next/dist/shared/lib/image-config' import type { ImageProps } from 'next/image' import React, { forwardRef } from 'react' - import type { Manifest } from '../cli' import buildOutputInfo from '../utils/buildOutputInfo' import getConfig from '../utils/getConfig' - import Picture from './picture' type RemotePictureProps = Omit & { @@ -19,17 +16,18 @@ type RemotePictureProps = Omit & { const config = getConfig() const RemotePicture = forwardRef(({ src, ...props }, forwardedRef) => { - if (process.env['NODE_ENV'] === 'production') { - const nextImageConfig = process.env['__NEXT_IMAGE_OPTS'] as unknown as ImageConfigComplete + if (process.env.NODE_ENV === 'production') { + const nextImageConfig = process.env.__NEXT_IMAGE_OPTS as unknown as ImageConfigComplete const allSizes = [...nextImageConfig.imageSizes, ...nextImageConfig.deviceSizes] - allSizes.forEach((width) => { - buildOutputInfo({ + for (const width of allSizes) { + const outputInfo = buildOutputInfo({ src, width, config, - }).forEach(({ output, extension, originalExtension }) => { + }) + for (const { output, extension, originalExtension } of outputInfo) { const externalOutputDir = `${ config.externalImageDir ? config.externalImageDir.replace(/^\//, '').replace(/\/$/, '') : '_next/static/media' }` @@ -54,10 +52,10 @@ const RemotePicture = forwardRef(({ src, . appendFileSync( join(process.cwd(), '.next/next-export-optimize-images-list.nd.json'), - JSON.stringify(json) + '\n' + `${JSON.stringify(json)}\n` ) - }) - }) + } + } } return diff --git a/src/components/utils/getOptimizedImageProps.ts b/src/components/utils/getOptimizedImageProps.ts index ec5ac3db..cff7ba13 100644 --- a/src/components/utils/getOptimizedImageProps.ts +++ b/src/components/utils/getOptimizedImageProps.ts @@ -1,5 +1,4 @@ -import { getImageProps, ImageProps } from 'next/image' - +import { type ImageProps, getImageProps } from 'next/image' import getStringSrc from './getStringSrc' import imageLoader from './imageLoader' diff --git a/src/components/utils/imageLoader.ts b/src/components/utils/imageLoader.ts index 3f69d4e8..57d99b61 100644 --- a/src/components/utils/imageLoader.ts +++ b/src/components/utils/imageLoader.ts @@ -1,5 +1,4 @@ import type { ImageLoaderProps } from 'next/dist/shared/lib/image-external' - import buildOutputInfo from '../../utils/buildOutputInfo' import getConfig from '../../utils/getConfig' @@ -8,7 +7,7 @@ const config = getConfig() const imageLoader = (getNumber?: number) => ({ src, width }: ImageLoaderProps) => { - if (process.env['NODE_ENV'] === 'development') { + if (process.env.NODE_ENV === 'development') { // This doesn't bother optimizing in the dev environment. Next complains if the // returned URL doesn't have a width in it, so adding it as a throwaway return `${src}?width=${width}` diff --git a/src/loader/index.ts b/src/loader/index.ts index 0f3fc0e5..6b950349 100644 --- a/src/loader/index.ts +++ b/src/loader/index.ts @@ -1,12 +1,10 @@ -import path from 'path' - +import path from 'node:path' import fs from 'fs-extra' import { PHASE_PRODUCTION_BUILD } from 'next/constants' import loadConfig from 'next/dist/server/config' import type { StaticImageData } from 'next/image' import getConfig from 'src/utils/getConfig' import type { LoaderContext } from 'webpack' - import type { Manifest } from '../cli' import buildOutputInfo from '../utils/buildOutputInfo' @@ -17,7 +15,7 @@ type LoaderOptions = { } export default async function loader(this: LoaderContext, content: string) { - this.cacheable && this.cacheable(false) + this.cacheable?.(false) const callback = this.async() const { dir, isDev } = this.getOptions() @@ -37,19 +35,20 @@ export default async function loader(this: LoaderContext, content if (!src.endsWith('.svg')) { await Promise.all( allSizes.map(async (size) => { - buildOutputInfo({ src, width: size, config }).forEach((outputInfo) => { + const outputInfo = buildOutputInfo({ src, width: size, config }) + for (const { output, src, extension } of outputInfo) { const json: Manifest[number] = { - output: outputInfo.output, - src: outputInfo.src, + output: output, + src: src, width: size, - extension: outputInfo.extension, + extension: extension, } - return fs.appendFile( + await fs.appendFile( path.join(process.cwd(), '.next/next-export-optimize-images-list.nd.json'), - JSON.stringify(json) + '\n' + `${JSON.stringify(json)}\n` ) - }) + } }) ) } diff --git a/src/utils/buildOutputInfo.ts b/src/utils/buildOutputInfo.ts index 74fd5ccb..fadc4bd0 100644 --- a/src/utils/buildOutputInfo.ts +++ b/src/utils/buildOutputInfo.ts @@ -1,5 +1,5 @@ import formatValidate from './formatValidate' -import { Config, DefaultImageParser } from './getConfig' +import type { Config, DefaultImageParser } from './getConfig' export const defaultImageParser: DefaultImageParser = (src: string) => { const path = src.split(/\.([^.]*$)/)[0] diff --git a/src/utils/getConfig.ts b/src/utils/getConfig.ts index 4dd98b25..cfb8858f 100644 --- a/src/utils/getConfig.ts +++ b/src/utils/getConfig.ts @@ -1,5 +1,4 @@ import type { AvifOptions, JpegOptions, PngOptions, WebpOptions } from 'sharp' - import type { AllowedFormat } from './formatValidate' type ParsedImageInfo = { @@ -135,10 +134,10 @@ const getConfig = (): ResolvedConfig => { return { ...config, filenameGenerator: config.filenameGenerator - ? Function('"use strict";return (' + config.filenameGenerator + ')')() + ? Function(`"use strict";return (${config.filenameGenerator})`)() : undefined, sourceImageParser: config.sourceImageParser - ? Function('"use strict";return (' + config.sourceImageParser + ')')() + ? Function(`"use strict";return (${config.sourceImageParser})`)() : undefined, } } diff --git a/src/utils/processManifest.ts b/src/utils/processManifest.ts index bbedb390..4e340325 100644 --- a/src/utils/processManifest.ts +++ b/src/utils/processManifest.ts @@ -1,5 +1,4 @@ import type { Manifest } from '../cli' - import parseNdJSON from './parseNdJSON' const processManifest = (manifestJson: string): Manifest => parseNdJSON(manifestJson) diff --git a/src/withExportImages.ts b/src/withExportImages.ts index 81feb056..5d611793 100644 --- a/src/withExportImages.ts +++ b/src/withExportImages.ts @@ -1,11 +1,9 @@ -import path from 'path' - +import path from 'node:path' import colors from 'ansi-colors' import appRootPath from 'app-root-path' import fs from 'fs-extra' import type { NextConfig } from 'next' - -import { Config } from './utils/getConfig' +import type { Config } from './utils/getConfig' const withExportImages = async ( nextConfig: NextConfig = {}, @@ -61,7 +59,7 @@ const withExportImages = async ( `info - [next-export-optimize-images]: ${ resolvedConfigPath !== null ? `Configuration loaded from \`${resolvedConfigPath}\`.` - : `Configuration was not loaded. (This is optional.)` + : 'Configuration was not loaded. (This is optional.)' }` ) ) diff --git a/tsconfig.json b/tsconfig.json index 17540c89..15418ba7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,8 @@ "allowJs": true, "noEmit": true, "jsx": "react", - "baseUrl": "." + "baseUrl": ".", + "noPropertyAccessFromIndexSignature": false }, "include": ["src/**/*", "__tests__/**/*", "jest-setup.ts", "types/**/*"], "exclude": ["node_modules", "dist", "__tests__/e2e/**/*", "__tests__/e2e-build/**/*"] diff --git a/yarn.lock b/yarn.lock index 3d420108..c66e6f2f 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== - "@adobe/css-tools@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" @@ -269,7 +264,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3": +"@babel/runtime@^7.12.5": version "7.24.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== @@ -315,6 +310,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -609,109 +658,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== -"@eslint-community/eslint-utils@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" - integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== - dependencies: - eslint-visitor-keys "^3.3.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": - 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-community/regexpp@^4.12.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/config-array@^0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" - integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== - dependencies: - "@eslint/object-schema" "^2.1.4" - debug "^4.3.1" - minimatch "^3.1.2" - -"@eslint/core@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.7.0.tgz#a1bb4b6a4e742a5ff1894b7ee76fbf884ec72bd3" - integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw== - -"@eslint/eslintrc@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" - integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.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@9.14.0": - version "9.14.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.14.0.tgz#2347a871042ebd11a00fd8c2d3d56a265ee6857e" - integrity sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg== - -"@eslint/object-schema@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" - integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== - -"@eslint/plugin-kit@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" - integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== - dependencies: - levn "^0.4.1" - "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== - -"@humanfs/node@^0.16.6": - version "0.16.6" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" - integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== - dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.3.0" - -"@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/retry@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" - integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== - -"@humanwhocodes/retry@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.0.tgz#b57438cab2a2381b4b597b0ab17339be381bd755" - integrity sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g== - "@img/sharp-darwin-arm64@0.33.3": version "0.33.3" resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.3.tgz#2bbf676be830c5a9ae7d9294f201c9151535badd" @@ -1679,11 +1630,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== -"@rtsao/scc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" - integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== - "@semantic-release/changelog@6.0.3": version "6.0.3" resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.3.tgz#6195630ecbeccad174461de727d5f975abc23eeb" @@ -1990,16 +1936,11 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.8": 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/jsonfile@*": version "6.1.4" resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" @@ -2082,11 +2023,6 @@ dependencies: "@types/node" "*" -"@types/semver@^7.3.12": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/sharp@0.32.0": version "0.32.0" resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.32.0.tgz#fc3ac6df6b456319bae807c3d24efdc6631cdd6f" @@ -2116,180 +2052,6 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" - integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/type-utils" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - graphemer "^1.4.0" - ignore "^5.3.1" - natural-compare "^1.4.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/parser@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" - integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== - dependencies: - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/scope-manager@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" - integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== - dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - -"@typescript-eslint/scope-manager@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.0.0.tgz#d14df46c9e43c53af7699dfa800cd615d7dfc118" - integrity sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw== - dependencies: - "@typescript-eslint/types" "8.0.0" - "@typescript-eslint/visitor-keys" "8.0.0" - -"@typescript-eslint/type-utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" - integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== - dependencies: - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - debug "^4.3.4" - ts-api-utils "^1.3.0" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/types@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" - integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== - -"@typescript-eslint/types@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.0.0.tgz#7195ea9369fe5ee46b958d7ffca6bd26511cce18" - integrity sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" - integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== - dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" - 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/typescript-estree@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0.tgz#d172385ced7cb851a038b5c834c245a97a0f9cf6" - integrity sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg== - dependencies: - "@typescript-eslint/types" "8.0.0" - "@typescript-eslint/visitor-keys" "8.0.0" - 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.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - -"@typescript-eslint/utils@^5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.0.0.tgz#1794d6f4b37ec253172a173dc938ae68651b9b99" - integrity sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.0.0" - "@typescript-eslint/types" "8.0.0" - "@typescript-eslint/typescript-estree" "8.0.0" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" - integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== - dependencies: - "@typescript-eslint/types" "7.18.0" - eslint-visitor-keys "^3.4.3" - -"@typescript-eslint/visitor-keys@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0.tgz#224a67230190d267e6e78586bd7d8dfbd32ae4f3" - integrity sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA== - dependencies: - "@typescript-eslint/types" "8.0.0" - eslint-visitor-keys "^3.4.3" - "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -2447,11 +2209,6 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^8.0.2: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" @@ -2462,11 +2219,6 @@ acorn@^8.1.0, acorn@^8.8.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -acorn@^8.11.3: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - acorn@^8.14.0: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" @@ -2511,7 +2263,7 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.12.4, ajv@^6.12.5: +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== @@ -2667,55 +2419,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.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - 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.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" - integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -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.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" - arraybuffer.prototype.slice@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" @@ -3419,7 +3127,7 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -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== @@ -3511,20 +3219,13 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.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.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" @@ -3572,11 +3273,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: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -3676,13 +3372,6 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -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" - dom-accessibility-api@^0.5.9: version "0.5.16" resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" @@ -3807,7 +3496,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0: version "1.23.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== @@ -3892,13 +3581,6 @@ es-set-tostringtag@^2.0.3: has-tostringtag "^1.0.2" hasown "^2.0.1" -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: - 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" @@ -3958,11 +3640,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -3974,75 +3651,7 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -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.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" - integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@2.31.0: - version "2.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" - integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== - dependencies: - "@rtsao/scc" "^1.1.0" - array-includes "^3.1.8" - array.prototype.findlastindex "^1.2.5" - 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.12.0" - hasown "^2.0.2" - is-core-module "^2.15.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.8" - object.groupby "^1.0.3" - object.values "^1.2.0" - semver "^6.3.1" - string.prototype.trimend "^1.0.8" - tsconfig-paths "^3.15.0" - -eslint-plugin-jest-dom@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-5.4.0.tgz#03a5ea600f8af63f4fcd5de49ae83dc0e6aca325" - integrity sha512-yBqvFsnpS5Sybjoq61cJiUsenRkC9K32hYQBFS9doBR7nbQZZ5FyO+X7MlmfM1C48Ejx/qTuOCgukDUNyzKZ7A== - dependencies: - "@babel/runtime" "^7.16.3" - requireindex "^1.2.0" - -eslint-plugin-jest@28.8.3: - version "28.8.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz#c5699bba0ad06090ad613535e4f1572f4c2567c0" - integrity sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ== - dependencies: - "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" - -eslint-plugin-testing-library@6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.4.0.tgz#1ba8a7422e3e31cc315a73ff17c34908f56f9838" - integrity sha512-yeWF+YgCgvNyPNI9UKnG0FjeE2sk93N/3lsKqcmR8dSfeXJwFT5irnWo7NjLf152HkRzfoFjh3LsBUrhvFz4eA== - dependencies: - "@typescript-eslint/utils" "^5.62.0" - -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -4050,100 +3659,11 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" - integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, 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-visitor-keys@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" - integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== - -eslint-visitor-keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" - integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== - -eslint@9.14.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.14.0.tgz#534180a97c00af08bcf2b60b0ebf0c4d6c1b2c95" - integrity sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.18.0" - "@eslint/core" "^0.7.0" - "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.14.0" - "@eslint/plugin-kit" "^0.2.0" - "@humanfs/node" "^0.16.6" - "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.0" - "@types/estree" "^1.0.6" - "@types/json-schema" "^7.0.15" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - escape-string-regexp "^4.0.0" - eslint-scope "^8.2.0" - eslint-visitor-keys "^4.2.0" - espree "^10.3.0" - esquery "^1.5.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^8.0.0" - find-up "^5.0.0" - glob-parent "^6.0.2" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - json-stable-stringify-without-jsonify "^1.0.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - text-table "^0.2.0" - -espree@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f" - integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww== - dependencies: - acorn "^8.11.3" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.0.0" - -espree@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" - integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== - dependencies: - acorn "^8.14.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.0" - esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: 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.5.0: - 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" @@ -4156,7 +3676,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.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -4227,7 +3747,7 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -4248,11 +3768,6 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta 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== - fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" @@ -4291,13 +3806,6 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -4334,14 +3842,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" @@ -4358,19 +3858,6 @@ find-versions@^4.0.0: dependencies: semver-regex "^3.1.2" -flat-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" - integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -4551,13 +4038,6 @@ glob-parent@^5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -4609,11 +4089,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@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -4621,7 +4096,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.0, globby@^11.0.1, globby@^11.1.0: +globby@^11.0.0, globby@^11.0.1: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -4650,11 +4125,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, 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== - handlebars@^4.7.7: version "4.7.8" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" @@ -4833,7 +4303,7 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" -ignore@^5.2.0, ignore@^5.3.1: +ignore@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -5002,13 +4472,6 @@ is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: dependencies: hasown "^2.0.0" -is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - is-data-view@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" @@ -5050,7 +4513,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, 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== @@ -5732,11 +5195,6 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -5762,11 +5220,6 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -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-nice@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" @@ -5777,13 +5230,6 @@ json-stringify-safe@^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.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -5813,13 +5259,6 @@ just-diff@^5.0.1: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== -keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -5835,14 +5274,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@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" @@ -6029,13 +5460,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - locate-path@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" @@ -6345,7 +5769,7 @@ minimatch@^5.0.1, minimatch@^5.1.0: 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== @@ -6361,7 +5785,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -6462,7 +5886,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.0.0, ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: +ms@^2.0.0, ms@^2.1.2, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -6868,34 +6292,6 @@ object.assign@^4.1.5: has-symbols "^1.0.3" object-keys "^1.1.1" -object.fromentries@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.groupby@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" - integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - -object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -6929,18 +6325,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" - p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -6972,7 +6356,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -7000,13 +6384,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-locate@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" @@ -7236,16 +6613,6 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -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.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" - integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== - pretty-format@^27.0.2: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" @@ -7544,11 +6911,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -requireindex@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -7576,7 +6938,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.4: +resolve@^1.10.0, resolve@^1.20.0: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -8369,7 +7731,7 @@ text-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== -text-table@^0.2.0, text-table@~0.2.0: +text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== @@ -8501,11 +7863,6 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -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-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" @@ -8526,21 +7883,6 @@ ts-jest@29.2.5: semver "^7.6.3" yargs-parser "^21.1.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" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -8568,20 +7910,6 @@ tsup@8.3.5: tinyglobby "^0.2.9" tree-kill "^1.2.2" -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -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-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"