diff --git a/.eslintignore b/.eslintignore index b75cc6839f..d2e4c6f6cc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -61,3 +61,6 @@ package.json # temp folders - remove in future after fix all issues redisinsight/ui/src/packages/redisgraph redisinsight/ui/src/packages/redistimeseries-app + +/report +__mocks__ diff --git a/.eslintrc.js b/.eslintrc.js index cd7a32c406..66b5a64d7a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,13 +4,21 @@ module.exports = { node: true, browser: true, }, - extends: ['airbnb-typescript'], + extends: ['airbnb-typescript', 'prettier'], plugins: ['@typescript-eslint'], parser: '@typescript-eslint/parser', rules: { - semi: ['error', 'never'], + semi: ['error', 'always'], quotes: [2, 'single', { avoidEscape: true }], - 'max-len': ['error', { ignoreComments: true, ignoreStrings: true, ignoreRegExpLiterals: true, code: 120 }], + 'max-len': [ + 'error', + { + ignoreComments: true, + ignoreStrings: true, + ignoreRegExpLiterals: true, + code: 120, + }, + ], 'class-methods-use-this': 'off', 'import/no-extraneous-dependencies': 'off', // temporary disabled '@typescript-eslint/semi': ['error', 'never'], @@ -33,32 +41,45 @@ module.exports = { { pattern: 'desktopSrc/**', group: 'internal', - position: 'after' + position: 'after', }, { pattern: 'uiSrc/**', group: 'internal', - position: 'after' + position: 'after', }, { pattern: 'apiSrc/**', group: 'internal', - position: 'after' + position: 'after', }, ], warnOnUnassignedImports: true, - pathGroupsExcludedImportTypes: ['builtin'] + pathGroupsExcludedImportTypes: ['builtin'], }, ], }, + overrides: [ + { + files: ['*.ts', '*.tsx'], + rules: { + '@typescript-eslint/semi': ['error', 'never'], + semi: 'off', + }, + }, + { + files: ['*.js', '*.jsx', '*.cjs'], + rules: { + semi: ['error', 'always'], + '@typescript-eslint/semi': 'off', + }, + }, + ], parserOptions: { project: './tsconfig.json', ecmaVersion: 2020, sourceType: 'module', createDefaultProgram: true, }, - ignorePatterns: [ - 'redisinsight/ui', - 'redisinsight/api', - ], + ignorePatterns: ['redisinsight/ui', 'redisinsight/api'], } diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..2650dadd5b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +tests/e2e +**/*.scss diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..cfa7bce43a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "semi": true, + "overrides": [ + { + "files": ["**/*.ts", "**/*.tsx"], + "options": { + "semi": false + } + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..09d669826c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/package.json b/package.json index cf5e0a4a0c..5ab59851be 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "lint:api": "yarn --cwd redisinsight/api lint", "lint:desktop": "eslint ./redisinsight/desktop", "lint:e2e": "yarn --cwd tests/e2e lint", + "prettier": "prettier --check .", + "prettier:update": "prettier --write .", "package": "yarn package:dev", "package:prod": "ts-node ./scripts/prebuild.js dist && yarn build:prod && electron-builder build -p never", "package:stage": "ts-node ./scripts/prebuild.js dist && yarn build:stage && electron-builder build -p never -c.mac.bundleVersion=$GITHUB_RUN_ID", @@ -135,8 +137,8 @@ "@types/text-encoding": "^0.0.37", "@types/uuid": "^8.3.4", "@types/webpack-env": "^1.18.4", - "@typescript-eslint/eslint-plugin": "^4.8.1", - "@typescript-eslint/parser": "^4.8.1", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react": "^4.2.1", "@vitejs/plugin-react-swc": "^3.6.0", "assert": "^2.1.0", @@ -160,6 +162,7 @@ "eslint": "^7.5.0", "eslint-config-airbnb": "^18.2.1", "eslint-config-airbnb-typescript": "^12.0.0", + "eslint-config-prettier": "10.0.2", "eslint-import-resolver-webpack": "0.13.8", "eslint-plugin-compat": "^3.8.0", "eslint-plugin-import": "^2.22.0", @@ -187,6 +190,7 @@ "msw": "^1.3.4", "patch-package": "^8.0.0", "postinstall-postinstall": "^2.1.0", + "prettier": "3.5.2", "react-refresh": "^0.9.0", "redux-mock-store": "^1.5.4", "regenerator-runtime": "^0.13.5", diff --git a/redisinsight/api/.eslintrc.js b/redisinsight/api/.eslintrc.js index c03cb5149b..9fea61cf42 100644 --- a/redisinsight/api/.eslintrc.js +++ b/redisinsight/api/.eslintrc.js @@ -3,13 +3,13 @@ module.exports = { env: { node: true, }, - extends: ['airbnb-typescript/base', 'plugin:sonarjs/recommended'], + extends: ['airbnb-typescript/base', 'plugin:sonarjs/recommended', 'prettier'], plugins: ['@typescript-eslint', 'sonarjs'], parser: '@typescript-eslint/parser', rules: { 'max-len': ['warn', 120], '@typescript-eslint/return-await': 'off', - "@typescript-eslint/dot-notation": "off", + '@typescript-eslint/dot-notation': 'off', 'import/prefer-default-export': 'off', // ignore "export default" requirement 'max-classes-per-file': 'off', 'class-methods-use-this': 'off', // should be ignored since NestJS allow inheritance without using "this" inside class methods @@ -21,12 +21,12 @@ module.exports = { }, overrides: [ { - files: [ '**/*.spec.ts', '**/__mocks__/**/*' ], + files: ['**/*.spec.ts', '**/__mocks__/**/*'], rules: { 'sonarjs/no-duplicate-string': 0, 'sonarjs/no-identical-functions': 0, 'import/first': 0, - } - } - ] + }, + }, + ], }; diff --git a/redisinsight/ui/.eslintrc.js b/redisinsight/ui/.eslintrc.js index 47e02b524f..aac8b29001 100644 --- a/redisinsight/ui/.eslintrc.js +++ b/redisinsight/ui/.eslintrc.js @@ -1,11 +1,16 @@ -const path = require('path') +const path = require('path'); module.exports = { root: true, env: { browser: true, }, - extends: ['airbnb-typescript', 'airbnb/hooks', 'plugin:sonarjs/recommended'], + extends: [ + 'airbnb-typescript', + 'airbnb/hooks', + 'plugin:sonarjs/recommended', + 'prettier', + ], // extends: ['airbnb', 'airbnb/hooks'], plugins: ['@typescript-eslint'], parser: '@typescript-eslint/parser', @@ -18,23 +23,44 @@ module.exports = { overrides: [ { - files: [ - '**/*.spec.ts', - '**/*.spec.tsx', - '**/*.spec.ts', - ], + files: ['**/*.spec.ts', '**/*.spec.tsx', '**/*.spec.ts'], env: { jest: true, }, }, + { + files: ['*.ts', '*.tsx'], + rules: { + '@typescript-eslint/semi': ['error', 'never'], + semi: 'off', + }, + }, + { + files: ['*.js', '*.jsx'], + rules: { + semi: ['error', 'always'], + '@typescript-eslint/semi': 'off', + }, + }, + ], + ignorePatterns: [ + 'dist', + 'src/packages/redisearch/src/icons/*.js', + 'src/packages/common/src/icons/*.js', ], - ignorePatterns: ['dist', 'src/packages/redisearch/src/icons/*.js', 'src/packages/common/src/icons/*.js'], - rules: { radix: 'off', - semi: ['error', 'never'], + semi: ['error', 'always'], 'no-bitwise': ['error', { allow: ['|'] }], - 'max-len': ['error', { ignoreComments: true, ignoreStrings: true, ignoreRegExpLiterals: true, code: 120 }], + 'max-len': [ + 'error', + { + ignoreComments: true, + ignoreStrings: true, + ignoreRegExpLiterals: true, + code: 120, + }, + ], 'class-methods-use-this': 'off', // A temporary hack related to IDE not resolving correct package.json 'import/no-extraneous-dependencies': 'off', @@ -82,23 +108,23 @@ module.exports = { { pattern: 'uiSrc/**', group: 'internal', - position: 'after' + position: 'after', }, { pattern: 'apiSrc/**', group: 'internal', - position: 'after' + position: 'after', }, { pattern: '{.,..}/*.scss', // same directory only // pattern: '{.,..}/**/*\.scss' // same & outside directories (e.g. import '../foo/foo.scss') group: 'object', - position: 'after' - } + position: 'after', + }, ], warnOnUnassignedImports: true, - pathGroupsExcludedImportTypes: ['builtin'] + pathGroupsExcludedImportTypes: ['builtin'], }, ], }, -} +}; diff --git a/yarn.lock b/yarn.lock index f57965c087..5eaf9407a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1381,6 +1381,11 @@ dependencies: eslint-visitor-keys "^3.3.0" +"@eslint-community/regexpp@^4.4.0": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -2793,7 +2798,7 @@ resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.1.tgz#201062a6990119a8cc18023cfe1fed12fc2fc8a7" integrity sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw== -"@types/json-schema@^7.0.0", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.0", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -3163,32 +3168,22 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^4.8.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@typescript-eslint/eslint-plugin@^5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - "@typescript-eslint/experimental-utils@^5.0.0": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.1.tgz#e185c9db6fe0c02ff2e542622db375ae012a0fe2" @@ -3196,7 +3191,7 @@ dependencies: "@typescript-eslint/utils" "5.59.1" -"@typescript-eslint/parser@^4.4.1", "@typescript-eslint/parser@^4.8.1": +"@typescript-eslint/parser@^4.4.1": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== @@ -3206,6 +3201,16 @@ "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" +"@typescript-eslint/parser@^5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -3222,6 +3227,24 @@ "@typescript-eslint/types" "5.59.1" "@typescript-eslint/visitor-keys" "5.59.1" +"@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/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== + dependencies: + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" + "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" @@ -3232,6 +3255,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.1.tgz#03f3fedd1c044cb336ebc34cc7855f121991f41d" integrity sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg== +"@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/typescript-estree@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" @@ -3258,6 +3286,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@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/utils@5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.1.tgz#d89fc758ad23d2157cfae53f0b429bdf15db9473" @@ -3272,6 +3313,20 @@ eslint-scope "^5.1.1" semver "^7.3.7" +"@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/visitor-keys@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" @@ -3288,6 +3343,14 @@ "@typescript-eslint/types" "5.59.1" eslint-visitor-keys "^3.3.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" + "@vitejs/plugin-react-swc@^3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz#dc9cd1363baf3780f3ad3e0a12a46a3ffe0c7526" @@ -6238,6 +6301,11 @@ eslint-config-airbnb@^18.2.0, eslint-config-airbnb@^18.2.1: object.assign "^4.1.2" object.entries "^1.1.2" +eslint-config-prettier@10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz#47444de8aa104ce82c2f91ad2a5e96b62c01e20d" + integrity sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg== + eslint-import-resolver-node@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" @@ -6381,13 +6449,6 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" @@ -7156,6 +7217,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, 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== + graphql@^16.8.1: version "16.8.1" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" @@ -7657,7 +7723,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.8, ignore@^5.2.0: +ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -10023,6 +10089,11 @@ nanoid@^3.3.7: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -10872,10 +10943,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier@*, prettier@^3.2.5: - version "3.4.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" - integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== +prettier@*, prettier@3.5.2, prettier@^3.2.5: + version "3.5.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.2.tgz#d066c6053200da0234bf8fa1ef45168abed8b914" + integrity sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg== prettier@^2.0.0: version "2.8.8"