From a7d68eb7ab8fc5d758d3010127c4de654ca7db12 Mon Sep 17 00:00:00 2001 From: Victoria Zhizhonkova Date: Wed, 23 Aug 2023 01:39:54 +0700 Subject: [PATCH 1/2] chore: fix eslint errors/warns --- .eslintrc.js | 4 ++++ .../compilers/cssVars/helpers/getVarString.ts | 4 ++-- src/build/compilers/index.ts | 3 +++ src/build/compilers/styles/compileStyles.ts | 2 +- .../styles/helpers/tokenRecognition.ts | 19 ++++++++++++------- .../helpers/getGradientPointsFromColor.ts | 2 +- .../expandColors/expandColors.ts | 2 +- .../expandColors/mixColors.test.ts | 2 +- .../themeProcessors/expandColors/mixColors.ts | 2 +- src/interfaces/general/animations/index.ts | 2 +- src/interfaces/general/colors/index.ts | 2 +- src/interfaces/general/elevation/index.ts | 2 +- src/interfaces/general/index.ts | 8 ++++---- src/interfaces/general/typography/index.ts | 2 +- src/interfaces/namespaces/paradigm/index.ts | 2 +- src/interfaces/themes/calendar/index.ts | 2 +- src/interfaces/themes/media/index.ts | 2 +- src/interfaces/themes/mycom/index.ts | 2 +- src/interfaces/themes/octavius/index.ts | 2 +- src/interfaces/themes/portalUI/index.ts | 2 +- src/interfaces/themes/promo/index.ts | 2 +- src/interfaces/themes/pulse/index.ts | 2 +- src/interfaces/themes/search/index.ts | 2 +- src/themeDescriptions/base/paradigm.ts | 2 +- src/themeDescriptions/base/vk.ts | 2 +- .../common/colors/projectColors.ts | 2 +- .../common/colors/socialColors.ts | 2 +- .../themes/calendar/index.ts | 2 +- src/themeDescriptions/themes/calls/index.ts | 2 +- src/themeDescriptions/themes/cloud/index.ts | 2 +- src/themeDescriptions/themes/pulse/index.ts | 2 +- 31 files changed, 51 insertions(+), 39 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 4d60f672..35027939 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -98,6 +98,10 @@ module.exports = { format: ['PascalCase'], custom: { regex: '^I[A-Z]', match: false }, }, + { + selector: ['classProperty', 'objectLiteralProperty', 'typeProperty'], // могут быть какими угодно + format: null, + }, ], '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/no-empty-interface': 'off', diff --git a/src/build/compilers/cssVars/helpers/getVarString.ts b/src/build/compilers/cssVars/helpers/getVarString.ts index 3ab163c9..8b629733 100644 --- a/src/build/compilers/cssVars/helpers/getVarString.ts +++ b/src/build/compilers/cssVars/helpers/getVarString.ts @@ -10,11 +10,11 @@ export const getVarString = ({ valuesObject, prefix, delimeter = '\n', - callback, + callback: callbackFn, }: GetVarStringParams): string => { return Object.entries(valuesObject) .map(([name, value]) => { - callback?.(name, value); + callbackFn?.(name, value); return `${prefix}${name}: ${value};`; }) .join(delimeter); diff --git a/src/build/compilers/index.ts b/src/build/compilers/index.ts index 3a041c74..3c61a980 100644 --- a/src/build/compilers/index.ts +++ b/src/build/compilers/index.ts @@ -58,6 +58,7 @@ function writeJsonFile(themePath: string, theme: T, _?: ThemeBuildTyp console.log(`успешно записали файл ${fileName}`); } +// eslint-disable-next-line max-params function writeTsFile( themePath: string, theme: T, @@ -123,9 +124,11 @@ function writeStyleFiles( }); } +// eslint-disable-next-line max-params function writeCssVarsSourceFile( themePath: string, theme: PT, + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types cssVarsTheme: any, themeBase?: PT, ): void { diff --git a/src/build/compilers/styles/compileStyles.ts b/src/build/compilers/styles/compileStyles.ts index 8b2783a9..40978b95 100644 --- a/src/build/compilers/styles/compileStyles.ts +++ b/src/build/compilers/styles/compileStyles.ts @@ -100,7 +100,7 @@ export const compileStyles = ( theme: PT, mode: CompileStylesMode = 'default', themeBase?: PT, - // eslint-disable-next-line sonarjs/cognitive-complexity + // eslint-disable-next-line sonarjs/cognitive-complexity, max-params ): string => { const classicCssType = isClassicCssType(format); const prefix = getPrefix(format, theme); diff --git a/src/build/compilers/styles/helpers/tokenRecognition.ts b/src/build/compilers/styles/helpers/tokenRecognition.ts index 95f4cd79..3eeeecbb 100644 --- a/src/build/compilers/styles/helpers/tokenRecognition.ts +++ b/src/build/compilers/styles/helpers/tokenRecognition.ts @@ -6,19 +6,19 @@ import { ViewportsOrdered, ViewportsTuple } from '@/interfaces/general/tools/vie const stringKeys = ['themeName', 'themeNameBase', 'themeInheritsFrom']; -export function isString(token: any, key: string): token is string { +export function isString(token: unknown, key: string): token is string { return typeof token === 'string' && stringKeys.includes(key); } -export function isColor(token: any): token is ColorWithStates { +export function isColor(token: unknown): token is ColorWithStates { if (typeof token !== 'object') { return false; } - return token.normal !== undefined; + return (token as ColorWithStates).normal !== undefined; } -export function isGroupToken(token: any): token is Record { +export function isGroupToken(token: unknown): token is Record { if (typeof token !== 'object') { return false; } @@ -30,12 +30,15 @@ export function isGroupToken(token: any): token is Record { return !isColor(token); } -export function isAdaptiveFlatToken(token: any): token is Adaptive { +export function isAdaptiveFlatToken(token: unknown): token is Adaptive { if (typeof token !== 'object') { return false; } - return token.regular !== undefined && typeof token.regular !== 'object'; + return ( + (token as Adaptive).regular !== undefined && + typeof (token as Adaptive).regular !== 'object' + ); } const allCustomMediaKeys = Object.keys( @@ -69,6 +72,8 @@ const allCustomMediaKeys = Object.keys( }), ); -export function isCustomMediaToken(key: any): key is CustomMediaByViewportUnion { +export function isCustomMediaToken( + key: unknown, +): key is CustomMediaByViewportUnion { return typeof key === 'string' && allCustomMediaKeys.includes(key); } diff --git a/src/build/helpers/getGradientPointsFromColor.ts b/src/build/helpers/getGradientPointsFromColor.ts index d800bc3e..604cd795 100644 --- a/src/build/helpers/getGradientPointsFromColor.ts +++ b/src/build/helpers/getGradientPointsFromColor.ts @@ -1,5 +1,5 @@ import color from 'color'; -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { GradientPoints } from '@/interfaces/general/gradients'; diff --git a/src/build/themeProcessors/expandColors/expandColors.ts b/src/build/themeProcessors/expandColors/expandColors.ts index 9890e3ce..eecc6b22 100644 --- a/src/build/themeProcessors/expandColors/expandColors.ts +++ b/src/build/themeProcessors/expandColors/expandColors.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { isColorDescriptionCallable, isColorWithStates } from '@/build/helpers/cssHelpers'; import { ColorsDescription, ColorsFinal } from '@/interfaces/general'; diff --git a/src/build/themeProcessors/expandColors/mixColors.test.ts b/src/build/themeProcessors/expandColors/mixColors.test.ts index 983c19cf..f3f8c549 100644 --- a/src/build/themeProcessors/expandColors/mixColors.test.ts +++ b/src/build/themeProcessors/expandColors/mixColors.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { mixColors } from './mixColors'; diff --git a/src/build/themeProcessors/expandColors/mixColors.ts b/src/build/themeProcessors/expandColors/mixColors.ts index cac2bbf7..2c6dd318 100644 --- a/src/build/themeProcessors/expandColors/mixColors.ts +++ b/src/build/themeProcessors/expandColors/mixColors.ts @@ -1,5 +1,5 @@ import color from 'color'; -import { Property } from 'csstype'; +import type { Property } from 'csstype'; export const mixColors = ( colorArg: Property.Color, diff --git a/src/interfaces/general/animations/index.ts b/src/interfaces/general/animations/index.ts index 0c7b0dc1..ce89da31 100644 --- a/src/interfaces/general/animations/index.ts +++ b/src/interfaces/general/animations/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; /** * Переменные отвечающие за параметры анимаций diff --git a/src/interfaces/general/colors/index.ts b/src/interfaces/general/colors/index.ts index f3a41b18..c623dddd 100644 --- a/src/interfaces/general/colors/index.ts +++ b/src/interfaces/general/colors/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorsDescription, ColorsScheme } from '@/interfaces/general'; diff --git a/src/interfaces/general/elevation/index.ts b/src/interfaces/general/elevation/index.ts index b1ccb4f6..e12720e6 100644 --- a/src/interfaces/general/elevation/index.ts +++ b/src/interfaces/general/elevation/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; export interface Elevation { /** diff --git a/src/interfaces/general/index.ts b/src/interfaces/general/index.ts index 3d2f9ad0..f73f6735 100644 --- a/src/interfaces/general/index.ts +++ b/src/interfaces/general/index.ts @@ -1,4 +1,6 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; + +import { StaticTokens, Tokens } from '@/interfaces/general/tools/tokenValue'; import { Animations } from './animations'; import { ColorDescription, Colors, ColorsDescriptionStruct } from './colors'; @@ -11,8 +13,6 @@ import { NamifyObject } from './tools/cssVars'; import { StringifyObject } from './tools/utils'; import { Fonts, TypographyBaseProps } from './typography'; import { ZIndex } from './zIndex'; -import ColorScheme = Property.ColorScheme; -import { StaticTokens, Tokens } from '@/interfaces/general/tools/tokenValue'; interface AdaptiveInterfaceValues extends Sizes, Fonts {} @@ -106,7 +106,7 @@ export type PixelifyTheme> = StaticTokens Pick> & { themeType: 'pixelify'; themeName: string; - colorScheme: ColorScheme; + colorScheme: Property.ColorScheme; }; /** diff --git a/src/interfaces/general/typography/index.ts b/src/interfaces/general/typography/index.ts index b48cda5b..8ebe333e 100644 --- a/src/interfaces/general/typography/index.ts +++ b/src/interfaces/general/typography/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; type TLength = string | 0; diff --git a/src/interfaces/namespaces/paradigm/index.ts b/src/interfaces/namespaces/paradigm/index.ts index 5d4deac4..3537426e 100644 --- a/src/interfaces/namespaces/paradigm/index.ts +++ b/src/interfaces/namespaces/paradigm/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { Theme, ThemeCssVars, ThemeCssVarsWide, ThemeDescription } from '@/interfaces/general'; import { diff --git a/src/interfaces/themes/calendar/index.ts b/src/interfaces/themes/calendar/index.ts index fd90927f..91feb34a 100644 --- a/src/interfaces/themes/calendar/index.ts +++ b/src/interfaces/themes/calendar/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ThemeCssVars } from '@/interfaces/general'; import { diff --git a/src/interfaces/themes/media/index.ts b/src/interfaces/themes/media/index.ts index a5a4eea0..bcfd8580 100644 --- a/src/interfaces/themes/media/index.ts +++ b/src/interfaces/themes/media/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorDescription, ColorWithStates } from '@/interfaces/general/colors'; import { Adaptive } from '@/interfaces/general/tools'; diff --git a/src/interfaces/themes/mycom/index.ts b/src/interfaces/themes/mycom/index.ts index 6eb95a7a..7348be17 100644 --- a/src/interfaces/themes/mycom/index.ts +++ b/src/interfaces/themes/mycom/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorWithStates } from '@/interfaces/general/colors'; import { ParadigmThemeCssVars } from '@/interfaces/namespaces/paradigm'; diff --git a/src/interfaces/themes/octavius/index.ts b/src/interfaces/themes/octavius/index.ts index 7dedfe99..f9c8fd40 100644 --- a/src/interfaces/themes/octavius/index.ts +++ b/src/interfaces/themes/octavius/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ThemeCssVars } from '@/interfaces/general'; import { diff --git a/src/interfaces/themes/portalUI/index.ts b/src/interfaces/themes/portalUI/index.ts index 1301c71e..871cedfc 100644 --- a/src/interfaces/themes/portalUI/index.ts +++ b/src/interfaces/themes/portalUI/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorDescription, ColorWithStates } from '@/interfaces/general/colors'; import { GradientPoints } from '@/interfaces/general/gradients'; diff --git a/src/interfaces/themes/promo/index.ts b/src/interfaces/themes/promo/index.ts index 899f741d..8a676777 100644 --- a/src/interfaces/themes/promo/index.ts +++ b/src/interfaces/themes/promo/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { Adaptive } from '@/interfaces/general/tools'; import { ViewportsOrdered } from '@/interfaces/general/tools/viewports'; diff --git a/src/interfaces/themes/pulse/index.ts b/src/interfaces/themes/pulse/index.ts index 975f1604..e4522364 100644 --- a/src/interfaces/themes/pulse/index.ts +++ b/src/interfaces/themes/pulse/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorsDescription, ThemeCssVars, ThemeDescription } from '@/interfaces/general'; import { ColorDescription, ColorWithStates } from '@/interfaces/general/colors'; diff --git a/src/interfaces/themes/search/index.ts b/src/interfaces/themes/search/index.ts index ae8c5b64..1e86697e 100644 --- a/src/interfaces/themes/search/index.ts +++ b/src/interfaces/themes/search/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ColorDescription, diff --git a/src/themeDescriptions/base/paradigm.ts b/src/themeDescriptions/base/paradigm.ts index 2fdea0a8..4ac5f805 100644 --- a/src/themeDescriptions/base/paradigm.ts +++ b/src/themeDescriptions/base/paradigm.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { getGradientPointsFromColor } from '@/build/helpers/getGradientPointsFromColor'; import { alias, staticRef } from '@/build/helpers/tokenHelpers'; diff --git a/src/themeDescriptions/base/vk.ts b/src/themeDescriptions/base/vk.ts index c95e546e..ccc0b93c 100644 --- a/src/themeDescriptions/base/vk.ts +++ b/src/themeDescriptions/base/vk.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { getGradientPointsFromColor } from '@/build/helpers/getGradientPointsFromColor'; import { alias } from '@/build/helpers/tokenHelpers'; diff --git a/src/themeDescriptions/common/colors/projectColors.ts b/src/themeDescriptions/common/colors/projectColors.ts index a6b5e470..a03604d8 100644 --- a/src/themeDescriptions/common/colors/projectColors.ts +++ b/src/themeDescriptions/common/colors/projectColors.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; export type ProjectColors = { colorPrimaryAuto: Property.Color; diff --git a/src/themeDescriptions/common/colors/socialColors.ts b/src/themeDescriptions/common/colors/socialColors.ts index 2d18c926..bf081d18 100644 --- a/src/themeDescriptions/common/colors/socialColors.ts +++ b/src/themeDescriptions/common/colors/socialColors.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; export type SocialColors = { colorSocialVk: Property.Color; diff --git a/src/themeDescriptions/themes/calendar/index.ts b/src/themeDescriptions/themes/calendar/index.ts index 5cd86050..2437a2de 100644 --- a/src/themeDescriptions/themes/calendar/index.ts +++ b/src/themeDescriptions/themes/calendar/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ThemeCalendarDescription } from '@/interfaces/themes/calendar'; import { ThemeCalendarDarkDescription } from '@/interfaces/themes/calendarDark'; diff --git a/src/themeDescriptions/themes/calls/index.ts b/src/themeDescriptions/themes/calls/index.ts index ca7c4761..b534a760 100644 --- a/src/themeDescriptions/themes/calls/index.ts +++ b/src/themeDescriptions/themes/calls/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { ThemeCallsDescription } from '@/interfaces/themes/calls'; diff --git a/src/themeDescriptions/themes/cloud/index.ts b/src/themeDescriptions/themes/cloud/index.ts index 2e65b3e4..6e6e575e 100644 --- a/src/themeDescriptions/themes/cloud/index.ts +++ b/src/themeDescriptions/themes/cloud/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { staticRef } from '@/build/helpers/tokenHelpers'; import { Font } from '@/interfaces/general/typography'; diff --git a/src/themeDescriptions/themes/pulse/index.ts b/src/themeDescriptions/themes/pulse/index.ts index 8ac1266d..d7740a3b 100644 --- a/src/themeDescriptions/themes/pulse/index.ts +++ b/src/themeDescriptions/themes/pulse/index.ts @@ -1,4 +1,4 @@ -import { Property } from 'csstype'; +import type { Property } from 'csstype'; import { AllowedParadigmColorDescriptions, From 1773deadfaa8527f5d826f30db4f58c4f743a2cb Mon Sep 17 00:00:00 2001 From: Victoria Zhizhonkova Date: Wed, 23 Aug 2023 19:57:01 +0700 Subject: [PATCH 2/2] chore: add pre-commit hook for linting --- .github/workflows/publish_dev.yml | 2 +- .github/workflows/publish_docs.yml | 2 +- .github/workflows/publish_from_git.yml | 2 +- .github/workflows/publish_release.yml | 2 +- .github/workflows/test.yml | 6 +- .gitignore | 1 + .husky/pre-commit | 4 + package.json | 17 +- yarn.lock | 270 +++++++++++++++++++++++-- 9 files changed, 277 insertions(+), 29 deletions(-) create mode 100755 .husky/pre-commit diff --git a/.github/workflows/publish_dev.yml b/.github/workflows/publish_dev.yml index 18ab8ef0..bd93a276 100644 --- a/.github/workflows/publish_dev.yml +++ b/.github/workflows/publish_dev.yml @@ -13,7 +13,7 @@ jobs: with: node-version: 18 registry-url: 'https://registry.npmjs.org' - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - name: Assigning new version run: npm version prerelease --commit-hooks=false --git-tag-version=false --preid=dev-${GITHUB_SHA:0:6} - name: Publishing release diff --git a/.github/workflows/publish_docs.yml b/.github/workflows/publish_docs.yml index 3fbe5589..4750f55e 100644 --- a/.github/workflows/publish_docs.yml +++ b/.github/workflows/publish_docs.yml @@ -25,7 +25,7 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18 - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - run: npm run build - name: Prepare tokens data diff --git a/.github/workflows/publish_from_git.yml b/.github/workflows/publish_from_git.yml index 41cb427c..3b262549 100644 --- a/.github/workflows/publish_from_git.yml +++ b/.github/workflows/publish_from_git.yml @@ -13,7 +13,7 @@ jobs: with: node-version: 18 registry-url: 'https://registry.npmjs.org' - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - name: Publishing release run: npm run publish:dist env: diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index d4855812..5e9f36b8 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -19,7 +19,7 @@ jobs: node-version: 18 cache: 'npm' registry-url: https://registry.npmjs.org/ - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - run: npm run publish:latest if: '!github.event.release.prerelease' env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9a08e306..cada05ab 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: '18' - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - run: npm run lint test: runs-on: ubuntu-latest @@ -23,7 +23,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: '18' - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - run: npm run test:ci build: runs-on: ubuntu-latest @@ -32,7 +32,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: '18' - - run: yarn + - run: yarn install --frozen-lockfile --ignore-scripts - run: npm run build - run: npm run docs:prepare-data - run: npm run docs:build diff --git a/.gitignore b/.gitignore index 094ea066..910aa814 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ junit.xml docs/src/**/*.d.ts docs/public/**/*.json docs/dist/ +!.husky \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..765baae3 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn pre-commit diff --git a/package.json b/package.json index 357af22a..a542fd7e 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,18 @@ "styleguide": "sh ./tasks/styleguide.sh", "docs:dev": "cd docs/webpack && webpack-dev-server --config webpack.client.js --mode development", "docs:build": "cd docs/webpack && webpack --config webpack.client.js --mode production", - "docs:prepare-data": "ts-node tasks/docs/prepareTokensData.ts" + "docs:prepare-data": "ts-node tasks/docs/prepareTokensData.ts", + "prepare": "husky install", + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.{ts,tsx,js,jsx}": [ + "prettier --write", + "eslint" + ], + "*.{json,md}": [ + "prettier --write" + ] }, "repository": "https://github.com/VKCOM/vkui-tokens.git", "dependencies": { @@ -39,8 +50,8 @@ "@types/common-tags": "1.8.1", "@types/fs-extra": "11.0.1", "@types/node": "18.11.10", - "@types/react-dom": "18.2.1", "@types/react": "18.2.0", + "@types/react-dom": "18.2.1", "@typescript-eslint/eslint-plugin": "4.33.0", "@typescript-eslint/parser": "4.33.0", "@vkontakte/appearance": "https://github.com/VKCOM/Appearance#v10.1.4", @@ -70,8 +81,10 @@ "eslint-plugin-sonarjs": "0.19.0", "fs-extra": "11.1.1", "html-webpack-plugin": "5.5.1", + "husky": "8.0.3", "jest": "29.5.0", "jest-junit": "16.0.0", + "lint-staged": "14.0.1", "lodash": "4.17.21", "prettier": "2.8.8", "react": "18.2.0", diff --git a/yarn.lock b/yarn.lock index 9021739d..c88a02e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2162,7 +2162,6 @@ "@vkontakte/appearance@https://github.com/VKCOM/Appearance#v10.1.4": version "1.0.0" - uid bad206f39cf09b2e937a838d9dfd2f563ab27f48 resolved "https://github.com/VKCOM/Appearance#bad206f39cf09b2e937a838d9dfd2f563ab27f48" "@vkontakte/icons-sprite@1.1.1": @@ -2447,6 +2446,13 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -2457,6 +2463,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2476,6 +2487,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -2935,6 +2951,11 @@ caniuse-lite@^1.0.30001517: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== +chalk@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -3018,6 +3039,21 @@ clean-webpack-plugin@4.0.0: dependencies: del "^4.1.1" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cliui@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -3118,6 +3154,16 @@ colorette@^2.0.10, colorette@^2.0.14: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== + commander@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -3371,6 +3417,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" +debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + 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" @@ -3378,13 +3431,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - 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" - decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -3617,6 +3663,11 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3642,7 +3693,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.0.0: +emoji-regex@^9.0.0, emoji-regex@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== @@ -4165,11 +4216,31 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -4564,7 +4635,7 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -4928,6 +4999,16 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +husky@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -5172,6 +5253,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -5264,6 +5350,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -5958,11 +6049,44 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +lint-staged@14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-14.0.1.tgz#57dfa3013a3d60762d9af5d9c83bdb51291a6232" + integrity sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw== + dependencies: + chalk "5.3.0" + commander "11.0.0" + debug "4.3.4" + execa "7.2.0" + lilconfig "2.1.0" + listr2 "6.6.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.1" + +listr2@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" + integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^5.0.1" + rfdc "^1.3.0" + wrap-ansi "^8.1.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -6025,6 +6149,17 @@ lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== + dependencies: + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" + loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -6131,6 +6266,14 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +micromatch@4.0.5, micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + micromatch@^3.1.10: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -6150,14 +6293,6 @@ micromatch@^3.1.10: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -6180,6 +6315,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -6371,6 +6511,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -6477,13 +6624,20 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^8.0.9: version "8.4.0" resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" @@ -6656,6 +6810,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -6701,6 +6860,11 @@ picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -7200,6 +7364,14 @@ resolve@^2.0.0-next.3: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -7215,6 +7387,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" @@ -7450,7 +7627,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -7496,6 +7673,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + snake-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" @@ -7676,6 +7861,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -7702,6 +7892,15 @@ string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.0, string-width@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.5: version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" @@ -7773,6 +7972,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -7788,6 +7994,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -8081,6 +8292,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -8456,6 +8672,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -8494,6 +8719,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"