From 1e2cd1220d807742dc3fe073b8a94cdb46af76d1 Mon Sep 17 00:00:00 2001 From: pnodet Date: Tue, 3 Sep 2024 11:48:59 +0200 Subject: [PATCH] refactor: cleanup --- .npmrc | 4 - eslint.config.ts | 7 +- package.json | 74 +- pnpm-lock.yaml | 2668 +++++++++++++++------------- scripts/typegen.ts | 60 - src/configs/comments.ts | 9 +- src/configs/ignores.ts | 6 +- src/configs/imports.ts | 110 +- src/configs/javascript.ts | 80 +- src/configs/jsdoc.ts | 4 +- src/configs/jsonc.ts | 216 ++- src/configs/jsx.ts | 18 - src/configs/nextjs.ts | 26 +- src/configs/node.ts | 86 +- src/configs/prettier.ts | 170 +- src/configs/promise.ts | 6 +- src/configs/react.ts | 354 ++-- src/configs/regexp.ts | 4 +- src/configs/sort-json.ts | 221 --- src/configs/stylistic.ts | 214 ++- src/configs/tailwindcss.ts | 29 +- src/configs/typescript.ts | 418 +++-- src/configs/unicorn.ts | 6 +- src/constants.ts | 6 - src/environment.ts | 14 - src/factory.ts | 113 +- src/globs.ts | 2 + src/options.ts | 35 + src/{vender => }/prettier-types.ts | 47 +- src/stub.d.ts | 6 - src/types.ts | 55 - src/utils.ts | 105 -- tsconfig.json | 3 +- tsup.config.ts | 6 - 34 files changed, 2654 insertions(+), 2528 deletions(-) delete mode 100644 .npmrc delete mode 100644 scripts/typegen.ts delete mode 100644 src/configs/jsx.ts delete mode 100644 src/configs/sort-json.ts create mode 100644 src/options.ts rename src/{vender => }/prettier-types.ts (70%) delete mode 100644 src/utils.ts delete mode 100644 tsup.config.ts diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 8dc950f66f..0000000000 --- a/.npmrc +++ /dev/null @@ -1,4 +0,0 @@ -strict-peer-dependencies=false -shamefully-hoist=true -ignore-workspace-root-check=true -shell-emulator=true diff --git a/eslint.config.ts b/eslint.config.ts index 1fa262c493..f6862f2cb1 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -1,6 +1,3 @@ -import { nivalis } from './src'; +import { nivalis } from './src/factory'; -export default nivalis( - { typescript: { configPath: './tsconfig.json' } }, - { ignores: ['src/typegen.d.ts'] }, -); +export default nivalis({}); diff --git a/package.json b/package.json index 63fe517e6c..41333345ac 100644 --- a/package.json +++ b/package.json @@ -20,71 +20,83 @@ "flat config" ], "exports": { + "./package.json": "./package.json", ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } } }, - "main": "./dist/index.js", + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", "types": "./dist/index.d.ts", "files": [ + "LICENSE", + "README.md", "dist" ], "publishConfig": { "access": "public" }, "scripts": { - "build": "pnpm run typegen && pnpm tsup --format esm,cjs --clean --dts", "dev": "pnpm dlx @eslint/config-inspector --config eslint.config.ts", "lint": "eslint . --flag unstable_ts_config", "lint:fix": "eslint . --fix --flag unstable_ts_config", - "prepublishOnly": "pnpm run build", - "typegen": "pnpm dlx tsx@latest ./scripts/typegen.ts", - "prepack": "pnpm run build", + "build": "unbuild", + "prepublishOnly": "unbuild", + "prepack": "unbuild", "ts": "tsc --noEmit" }, "peerDependencies": { - "eslint": ">=9.7.0", - "prettier": "3.3.3" + "eslint": ">=9.7.0" }, "prettier": "@nivalis/prettier-config", "dependencies": { - "@eslint-community/eslint-plugin-eslint-comments": "^4.4.0", + "@eslint-community/eslint-plugin-eslint-comments": "4.4.0", "@next/eslint-plugin-next": "15.0.0-canary.130", - "@stylistic/eslint-plugin": "^2.6.4", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import-x": "4.0.0", + "@stylistic/eslint-plugin": "2.7.2", + "@typescript-eslint/parser": "8.4.0", + "@typescript-eslint/utils": "8.4.0", + "eslint-config-prettier": "9.1.0", + "eslint-flat-config-utils": "0.3.1", + "eslint-plugin-import-x": "4.1.1", "eslint-plugin-jsdoc": "^50.2.2", - "eslint-plugin-jsonc": "^2.16.0", - "eslint-plugin-n": "^17.10.2", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-promise": "^7.1.0", + "eslint-plugin-jsonc": "2.16.0", + "eslint-plugin-n": "17.10.2", + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-promise": "7.1.0", "eslint-plugin-react": "git://github.com/jsx-eslint/eslint-plugin-react.git#a2306e7a88762ced2c15cefa3df5a865e9976617", "eslint-plugin-react-compiler": "0.0.0-experimental-9ed098e-20240725", "eslint-plugin-react-hooks": "5.1.0-rc-b57d2823-20240822", - "eslint-plugin-regexp": "^2.6.0", - "eslint-plugin-tailwindcss": "^3.17.4", + "eslint-plugin-regexp": "2.6.0", + "eslint-plugin-tailwindcss": "3.17.4", "eslint-plugin-unicorn": "git://github.com/sindresorhus/eslint-plugin-unicorn.git#891842d539d0d002119e9c476a050a12d3936a75", "globals": "^15.9.0", - "local-pkg": "^0.5.0", - "typescript-eslint": "8.2.0" + "local-pkg": "0.5.0", + "typescript-eslint": "8.4.0" }, "devDependencies": { "@commitlint/cli": "19.4.1", "@commitlint/config-conventional": "19.4.1", - "@eslint/js": "^9.9.1", - "@nivalis/prettier-config": "^3.3.3", - "@swc/core": "^1.7.18", - "@types/eslint__js": "^8.42.3", - "@types/node": "^20.16.1", + "@nivalis/prettier-config": "3.3.3", + "@types/node": "22.5.2", "eslint": "9.9.1", - "eslint-flat-config-utils": "^0.3.1", - "eslint-typegen": "^0.3.1", "lefthook": "1.7.14", "lint-staged": "^15.2.9", - "prettier": "^3.3.3", - "tsup": "^8.2.4", - "typescript": "^5.5.4" + "typescript": "5.5.4", + "unbuild": "2.0.0" + }, + "unbuild": { + "declaration": true, + "failOnWarn": false, + "exports": "named", + "preserveModules": true, + "sourcemap": true }, "lint-staged": { "*": "eslint --fix --no-warn-ignored --flag unstable_ts_config" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0c82d7699..d872fd664d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,34 +9,43 @@ importers: .: dependencies: '@eslint-community/eslint-plugin-eslint-comments': - specifier: ^4.4.0 + specifier: 4.4.0 version: 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@next/eslint-plugin-next': specifier: 15.0.0-canary.130 version: 15.0.0-canary.130 '@stylistic/eslint-plugin': - specifier: ^2.6.4 - version: 2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + specifier: 2.7.2 + version: 2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': + specifier: 8.4.0 + version: 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': + specifier: 8.4.0 + version: 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint-config-prettier: - specifier: ^9.1.0 + specifier: 9.1.0 version: 9.1.0(eslint@9.9.1(jiti@1.21.6)) + eslint-flat-config-utils: + specifier: 0.3.1 + version: 0.3.1 eslint-plugin-import-x: - specifier: 4.0.0 - version: 4.0.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + specifier: 4.1.1 + version: 4.1.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint-plugin-jsdoc: specifier: ^50.2.2 version: 50.2.2(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-jsonc: - specifier: ^2.16.0 + specifier: 2.16.0 version: 2.16.0(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-n: - specifier: ^17.10.2 + specifier: 17.10.2 version: 17.10.2(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-prettier: - specifier: ^5.2.1 - version: 5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(prettier@3.3.3) + specifier: 5.2.1 + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(prettier@3.3.3) eslint-plugin-promise: - specifier: ^7.1.0 + specifier: 7.1.0 version: 7.1.0(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-react: specifier: git://github.com/jsx-eslint/eslint-plugin-react.git#a2306e7a88762ced2c15cefa3df5a865e9976617 @@ -48,11 +57,11 @@ importers: specifier: 5.1.0-rc-b57d2823-20240822 version: 5.1.0-rc-b57d2823-20240822(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-regexp: - specifier: ^2.6.0 + specifier: 2.6.0 version: 2.6.0(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-tailwindcss: - specifier: ^3.17.4 - version: 3.17.4(tailwindcss@3.4.6) + specifier: 3.17.4 + version: 3.17.4(tailwindcss@3.4.10) eslint-plugin-unicorn: specifier: git://github.com/sindresorhus/eslint-plugin-unicorn.git#891842d539d0d002119e9c476a050a12d3936a75 version: https://codeload.github.com/sindresorhus/eslint-plugin-unicorn/tar.gz/891842d539d0d002119e9c476a050a12d3936a75(eslint@9.9.1(jiti@1.21.6)) @@ -60,57 +69,39 @@ importers: specifier: ^15.9.0 version: 15.9.0 local-pkg: - specifier: ^0.5.0 + specifier: 0.5.0 version: 0.5.0 typescript-eslint: - specifier: 8.2.0 - version: 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + specifier: 8.4.0 + version: 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) devDependencies: '@commitlint/cli': specifier: 19.4.1 - version: 19.4.1(@types/node@20.16.1)(typescript@5.5.4) + version: 19.4.1(@types/node@22.5.2)(typescript@5.5.4) '@commitlint/config-conventional': specifier: 19.4.1 version: 19.4.1 - '@eslint/js': - specifier: ^9.9.1 - version: 9.9.1 '@nivalis/prettier-config': - specifier: ^3.3.3 + specifier: 3.3.3 version: 3.3.3 - '@swc/core': - specifier: ^1.7.18 - version: 1.7.18 - '@types/eslint__js': - specifier: ^8.42.3 - version: 8.42.3 '@types/node': - specifier: ^20.16.1 - version: 20.16.1 + specifier: 22.5.2 + version: 22.5.2 eslint: specifier: 9.9.1 version: 9.9.1(jiti@1.21.6) - eslint-flat-config-utils: - specifier: ^0.3.1 - version: 0.3.1 - eslint-typegen: - specifier: ^0.3.1 - version: 0.3.1(eslint@9.9.1(jiti@1.21.6)) lefthook: specifier: 1.7.14 version: 1.7.14 lint-staged: specifier: ^15.2.9 - version: 15.2.9 - prettier: - specifier: ^3.3.3 - version: 3.3.3 - tsup: - specifier: ^8.2.4 - version: 8.2.4(@swc/core@1.7.18)(jiti@1.21.6)(postcss@8.4.39)(tsx@4.16.2)(typescript@5.5.4)(yaml@2.5.0) + version: 15.2.10 typescript: - specifier: ^5.5.4 + specifier: 5.5.4 version: 5.5.4 + unbuild: + specifier: 2.0.0 + version: 2.0.0(typescript@5.5.4) packages: @@ -122,52 +113,36 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apidevtools/json-schema-ref-parser@11.7.0': - resolution: {integrity: sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==} - engines: {node: '>= 16'} - '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.10': - resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.8': - resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.8': resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} engines: {node: '>=6.9.0'} @@ -176,8 +151,8 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -190,8 +165,8 @@ packages: resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} - '@babel/helper-replace-supers@7.24.7': - resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -204,10 +179,6 @@ packages: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -220,16 +191,16 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.8': - resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -240,16 +211,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/standalone@7.25.6': + resolution: {integrity: sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} '@commitlint/cli@19.4.1': @@ -325,284 +300,284 @@ packages: resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.23.0': - resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.23.0': - resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.23.0': - resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.23.0': - resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.0': - resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.23.0': - resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.23.0': - resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.0': - resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.23.0': - resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.0': - resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.0': - resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.23.0': - resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.23.0': - resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.23.0': - resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.0': - resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.0': - resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.23.0': - resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.0': - resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.0': - resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.0': - resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.23.0': - resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.23.0': - resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.23.0': - resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.23.0': - resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -669,9 +644,6 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jsdevtools/ono@7.1.3': - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@next/eslint-plugin-next@15.0.0-canary.130': resolution: {integrity: sha512-L9IX9AStC1zGS1h2N2TWH28OJ+R5ihYRzxg1X9ZS5sJlvFE2+otTJghNF8lHqpd6kLSEgziAl6S+rcGA8v0YzQ==} @@ -698,201 +670,75 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@rollup/rollup-android-arm-eabi@4.19.0': - resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.19.0': - resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.19.0': - resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.19.0': - resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.19.0': - resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.19.0': - resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.19.0': - resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.19.0': - resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': - resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.19.0': - resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.19.0': - resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.19.0': - resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.19.0': - resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.19.0': - resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.19.0': - resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.19.0': - resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} - cpu: [x64] - os: [win32] - - '@stylistic/eslint-plugin-js@2.6.4': - resolution: {integrity: sha512-kx1hS3xTvzxZLdr/DCU/dLBE++vcP97sHeEFX2QXhk1Ipa4K1rzPOLw1HCbf4mU3s+7kHP5eYpDe+QteEOFLug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@rollup/plugin-alias@5.1.0': + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} peerDependencies: - eslint: '>=8.40.0' + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@stylistic/eslint-plugin-jsx@2.6.4': - resolution: {integrity: sha512-bIvVhdtjmyu3S10V7QRIuawtCZSq9gRmzAX23ucjCOdSFzEwlq+di0IM0riBAvvQerrJL4SM6G3xgyPs8BSXIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@rollup/plugin-commonjs@25.0.8': + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} + engines: {node: '>=14.0.0'} peerDependencies: - eslint: '>=8.40.0' + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@stylistic/eslint-plugin-plus@2.6.4': - resolution: {integrity: sha512-EuRvtxhf7Hv8OoMIePulP/6rBJIgPTu1l5GAm1780WcF1Cl8bOZXIn84Pdac5pNv6lVlzCOFm8MD3VE+2YROuA==} + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} peerDependencies: - eslint: '*' + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@stylistic/eslint-plugin-ts@2.6.4': - resolution: {integrity: sha512-yxL8Hj6WkObw1jfiLpBzKy5yfxY6vwlwO4miq34ySErUjUecPV5jxfVbOe4q1QDPKemQGPq93v7sAQS5PzM8lA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} peerDependencies: - eslint: '>=8.40.0' + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@stylistic/eslint-plugin@2.6.4': - resolution: {integrity: sha512-euUGnjzH8EOqEYTGk9dB2OBINp0FX1nuO7/k4fO82zNRBIKZgJoDwTLM4Ce+Om6W1Qmh1PrZjCr4jh4tMEXGPQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} peerDependencies: - eslint: '>=8.40.0' - - '@swc/core-darwin-arm64@1.7.18': - resolution: {integrity: sha512-MwLc5U+VGPMZm8MjlFBjEB2wyT1EK0NNJ3tn+ps9fmxdFP+PL8EpMiY1O1F2t1ydy2OzBtZz81sycjM9RieFBg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.7.18': - resolution: {integrity: sha512-IkukOQUw7/14VkHp446OkYGCZEHqZg9pTmTdBawlUyz2JwZMSn2VodCl7aFSdGCsU4Cwni8zKA8CCgkCCAELhw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.7.18': - resolution: {integrity: sha512-ATnb6jJaBeXCqrTUawWdoOy7eP9SCI7UMcfXlYIMxX4otKKspLPAEuGA5RaNxlCcj9ObyO0J3YGbtZ6hhD2pjg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.7.18': - resolution: {integrity: sha512-poHtH7zL7lEp9K2inY90lGHJABWxURAOgWNeZqrcR5+jwIe7q5KBisysH09Zf/JNF9+6iNns+U0xgWTNJzBuGA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.7.18': - resolution: {integrity: sha512-qnNI1WmcOV7Wz1ZDyK6WrOlzLvJ01rnni8ec950mMHWkLRMP53QvCvhF3S+7gFplWBwWJTOOPPUqJp/PlSxWyQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.7.18': - resolution: {integrity: sha512-x9SCqCLzwtlqtD5At3I1a7Gco+EuXnzrJGoucmkpeQohshHuwa+cskqsXO6u1Dz0jXJEuHbBZB9va1wYYfjgFg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.7.18': - resolution: {integrity: sha512-qtj8iOpMMgKjzxTv+islmEY0JBsbd93nka0gzcTTmGZxKtL5jSUsYQvkxwNPZr5M9NU1fgaR3n1vE6lFmtY0IQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.7.18': - resolution: {integrity: sha512-ltX/Ol9+Qu4SXmISCeuwVgAjSa8nzHTymknpozzVMgjXUoZMoz6lcynfKL1nCh5XLgqh0XNHUKLti5YFF8LrrA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.7.18': - resolution: {integrity: sha512-RgTcFP3wgyxnQbTCJrlgBJmgpeTXo8t807GU9GxApAXfpLZJ3swJ2GgFUmIJVdLWyffSHF5BEkF3FmF6mtH5AQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.7.18': - resolution: {integrity: sha512-XbZ0wAgzR757+DhQcnv60Y/bK9yuWPhDNRQVFFQVRsowvK3+c6EblyfUSytIidpXgyYFzlprq/9A9ZlO/wvDWw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@swc/core@1.7.18': - resolution: {integrity: sha512-qL9v5N5S38ijmqiQRvCFUUx2vmxWT/JJ2rswElnyaHkOHuVoAFhBB90Ywj4RKjh3R0zOjhEcemENTyF3q3G6WQ==} - engines: {node: '>=10'} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} peerDependencies: - '@swc/helpers': '*' + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - '@swc/helpers': + rollup: optional: true - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@stylistic/eslint-plugin@2.7.2': + resolution: {integrity: sha512-3DVLU5HEuk2pQoBmXJlzvrxbKNpu2mJ0SRqz5O/CJjyNCr12ZiPcYMEtuArTyPOk5i7bsAU44nywh1rGfe3gKQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' - '@swc/types@0.1.12': - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - - '@types/eslint__js@8.42.3': - resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -900,14 +746,17 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@20.16.1': - resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} + '@types/node@22.5.2': + resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@typescript-eslint/eslint-plugin@8.2.0': - resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@typescript-eslint/eslint-plugin@8.4.0': + resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -917,8 +766,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.2.0': - resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} + '@typescript-eslint/parser@8.4.0': + resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -927,16 +776,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.1.0': - resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} + '@typescript-eslint/scope-manager@8.4.0': + resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.2.0': - resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.2.0': - resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} + '@typescript-eslint/type-utils@8.4.0': + resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -944,25 +789,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.1.0': - resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.2.0': - resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} + '@typescript-eslint/types@8.4.0': + resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.1.0': - resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.2.0': - resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} + '@typescript-eslint/typescript-estree@8.4.0': + resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -970,24 +802,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.1.0': - resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} + '@typescript-eslint/utils@8.4.0': + resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.2.0': - resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/visitor-keys@8.1.0': - resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.2.0': - resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} + '@typescript-eslint/visitor-keys@8.4.0': + resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} JSONStream@1.3.5: @@ -1062,10 +884,6 @@ packages: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -1086,6 +904,13 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -1097,6 +922,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1107,8 +935,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1116,16 +944,6 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bundle-require@5.0.0: - resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -1138,8 +956,11 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001642: - resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001655: + resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1161,6 +982,9 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -1190,6 +1014,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -1201,10 +1028,17 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -1234,8 +1068,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} @@ -1258,11 +1092,54 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true + cssnano-preset-default@7.0.5: + resolution: {integrity: sha512-Jbzja0xaKwc5JzxPQoc+fotKpYtWEu4wQLMQe29CM0FjjdRjA4omvbGHl2DTGgARKxSTpPssBsok+ixv8uTBqw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.5: + resolution: {integrity: sha512-Aq0vqBLtpTT5Yxj+hLlLfNPFuRQCDIjx5JQAhhaedQKLNDvDGeVziF24PS+S1f0Z5KCxWvw0QVI3VNHNBITxVQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} @@ -1299,6 +1176,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1307,6 +1188,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -1325,6 +1209,19 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -1332,11 +1229,11 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.829: - resolution: {integrity: sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==} + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1344,10 +1241,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -1393,18 +1294,18 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true - esbuild@0.23.0: - resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -1439,8 +1340,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.0.0: - resolution: {integrity: sha512-5bWZ+2p3DKlpLSP830cAUmRUoYEnnvuBmSOSlURffEUuXL68uQUX0v2JpoXxyoDRIQWApzbqhnFeHA0XoQWosA==} + eslint-plugin-import-x@4.1.1: + resolution: {integrity: sha512-dBEM8fACIFNt4H7GoOaRmnH6evJW6JSTJTYYgmRd3vI4geBTjgDM/JyUDKUwIw0HDSyI+u7Vs3vFRXUo/BOAtA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1525,11 +1426,6 @@ packages: resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-typegen@0.3.1: - resolution: {integrity: sha512-D1hMMOuQw+WmN1uMk5lDfc9XCgOZMRlvOWwQfME6dyAgJqxGJ/STEyN7YBmt3zMqKkN7XJJ+4mjB82JcR4s/UA==} - peerDependencies: - eslint: ^8.45.0 || ^9.0.0 - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1568,6 +1464,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1575,10 +1474,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -1639,10 +1534,16 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1674,10 +1575,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -1686,8 +1583,8 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.8.0: + resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} @@ -1702,10 +1599,16 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} @@ -1726,9 +1629,9 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -1775,19 +1678,18 @@ packages: hermes-parser@0.20.1: resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -1805,6 +1707,13 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1843,8 +1752,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-data-view@1.0.1: @@ -1886,6 +1795,9 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -1906,6 +1818,9 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -1918,10 +1833,6 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1962,17 +1873,14 @@ packages: iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1980,10 +1888,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} - jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -2008,9 +1912,6 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-to-typescript-lite@14.1.0: - resolution: {integrity: sha512-b8K6P3aiLgiYKYcHacgZKrwPXPyjekqRPV5vkNfBt0EoohcOSXEbcuGzgi6KQmsAhuy5Mh2KMxofXodRhMxURA==} - json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -2109,8 +2010,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.9: - resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} engines: {node: '>=18.12.0'} hasBin: true @@ -2118,10 +2019,6 @@ packages: resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} engines: {node: '>=18.0.0'} - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} @@ -2147,6 +2044,9 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -2156,9 +2056,6 @@ packages: lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -2182,6 +2079,15 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -2193,14 +2099,10 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -2216,6 +2118,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -2227,9 +2133,28 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mkdist@1.5.5: + resolution: {integrity: sha512-Kbj0Tt4uk6AN/XEV1W7EgBpJUmEXZgTWxbMKYIpO0hRXoTstFIJrJVqDgPjBz9AXXN3ZpxQBk2Q0n28Ze0Gh1w==} + hasBin: true + peerDependencies: + sass: ^1.77.8 + typescript: '>=5.5.4' + vue-tsc: ^1.8.27 || ^2.0.21 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -2247,8 +2172,8 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - node-releases@2.0.17: - resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -2257,14 +2182,17 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -2297,12 +2225,8 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -2344,9 +2268,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -2413,8 +2334,8 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -2424,6 +2345,48 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} + postcss-calc@10.0.2: + resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.3: + resolution: {integrity: sha512-yJhocjCs2SQer0uZ9lXTMOwDowbxvhwFVrZeS6NPEij/XXthl73ggUmfwVvJM+Vaj5gtCKJV1jiUu4IhAUkX/Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.2: + resolution: {integrity: sha512-/Hje9Ls1IYcB9duELO/AyDUJI6aQVY3h5Rj1ziXgaLYCTi1iVBLnjg/TS0D6NszR/kDG6I86OwLmAYe+bvJjiQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -2448,39 +2411,141 @@ packages: ts-node: optional: true - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} + postcss-merge-longhand@7.0.3: + resolution: {integrity: sha512-8waYomFxshdv6M9Em3QRM9MettRLDRcH2JQi2l0Z1KlYD/vhal3gbkeSES0NuACXOlZBB0V/B0AseHZaklzWOA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true + postcss: ^8.4.31 + + postcss-merge-rules@7.0.3: + resolution: {integrity: sha512-2eSas2p3voPxNfdI5sQrvIkMaeUHpVc3EezgVs18hz/wRTQAC9U99tp9j3W5Jx9/L3qHkEDvizEx/LdnmumIvQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.3: + resolution: {integrity: sha512-SxTgUQSgBk6wEqzQZKEv1xQYIp9UBju6no9q+npohzSdhuSICQdkqmD1UMKkZWItS3olJSJMDDEY9WOJ5oGJew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.1: - resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.2: + resolution: {integrity: sha512-CjSam+7Vf8cflJQsHrMS0P2hmy9u0+n/P001kb5eAszLmhjMqrt/i5AqQuNFihhViwDvEAezqTmXqaYXL2ugMw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + postcss@8.4.44: + resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2496,6 +2561,10 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2586,9 +2655,16 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.19.0: - resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + rollup-plugin-dts@6.1.1: + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + + rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true run-parallel@1.2.0: @@ -2606,6 +2682,9 @@ packages: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -2639,16 +2718,13 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} slashes@3.0.12: resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} @@ -2665,10 +2741,6 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -2681,8 +2753,8 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} @@ -2733,10 +2805,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -2749,6 +2817,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + stylehacks@7.0.3: + resolution: {integrity: sha512-4DqtecvI/Nd+2BCvW9YEF6lhBN5UM50IJ1R3rnEAhBwbCKf4VehRf+uqvnVArnBayjYD/WtT3g0G/HSRxWfTRg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -2766,6 +2840,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + synckit@0.6.2: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} engines: {node: '>=12.20'} @@ -2774,8 +2853,8 @@ packages: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} - tailwindcss@3.4.6: - resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} + tailwindcss@3.4.10: + resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} engines: {node: '>=14.0.0'} hasBin: true @@ -2808,13 +2887,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -2824,32 +2896,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tsup@8.2.4: - resolution: {integrity: sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - tsx@4.16.2: - resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==} - engines: {node: '>=18.0.0'} - hasBin: true + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -2879,8 +2927,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@8.2.0: - resolution: {integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==} + typescript-eslint@8.4.0: + resolution: {integrity: sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2899,6 +2947,15 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbuild@2.0.0: + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -2906,6 +2963,10 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -2921,17 +2982,11 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -2963,6 +3018,9 @@ packages: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -2991,8 +3049,8 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - zod-validation-error@3.3.0: - resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} + zod-validation-error@3.3.1: + resolution: {integrity: sha512-uFzCZz7FQis256dqw4AhPQgD6f3pzNca/Zh62RNELavlumQB3nDIUFbF5JQfFLcMbO1s02Q7Xg/gpcOBlEnYZA==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 @@ -3009,31 +3067,25 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/json-schema-ref-parser@11.7.0': - dependencies: - '@jsdevtools/ono': 7.1.3 - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 - '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.24.9': {} + '@babel/compat-data@7.25.4': {} - '@babel/core@7.24.9': + '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.3.6 gensync: 1.0.0-beta.2 @@ -3042,121 +3094,101 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.10': + '@babel/generator@7.25.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 - '@babel/helper-compilation-targets@7.24.8': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.24.9 + '@babel/compat-data': 7.25.4 '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 + browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9)': + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/traverse': 7.25.6 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.8': + '@babel/helpers@7.25.6': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 '@babel/highlight@7.24.7': dependencies: @@ -3165,50 +3197,49 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.24.8': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.9)': + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/template@7.24.7': + '@babel/standalone@7.25.6': {} + + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - '@babel/traverse@7.24.8': + '@babel/traverse@7.25.6': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.9': + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@commitlint/cli@19.4.1(@types/node@20.16.1)(typescript@5.5.4)': + '@commitlint/cli@19.4.1(@types/node@22.5.2)(typescript@5.5.4)': dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.4.1 - '@commitlint/load': 19.4.0(@types/node@20.16.1)(typescript@5.5.4) + '@commitlint/load': 19.4.0(@types/node@22.5.2)(typescript@5.5.4) '@commitlint/read': 19.4.0 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -3255,7 +3286,7 @@ snapshots: '@commitlint/rules': 19.4.1 '@commitlint/types': 19.0.3 - '@commitlint/load@19.4.0(@types/node@20.16.1)(typescript@5.5.4)': + '@commitlint/load@19.4.0(@types/node@22.5.2)(typescript@5.5.4)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -3263,7 +3294,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.5.4) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.16.1)(cosmiconfig@9.0.0(typescript@5.5.4))(typescript@5.5.4) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.5.2)(cosmiconfig@9.0.0(typescript@5.5.4))(typescript@5.5.4) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -3321,152 +3352,152 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/aix-ppc64@0.23.0': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/android-arm64@0.23.0': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/android-arm@0.23.0': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/android-x64@0.23.0': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/darwin-arm64@0.23.0': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/darwin-x64@0.23.0': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.23.0': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/freebsd-x64@0.23.0': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-arm64@0.23.0': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-arm@0.23.0': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-ia32@0.23.0': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-loong64@0.23.0': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-mips64el@0.23.0': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-ppc64@0.23.0': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.23.0': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-s390x@0.23.0': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/linux-x64@0.23.0': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.19.12': optional: true - '@esbuild/netbsd-x64@0.23.0': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.23.0': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/openbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-x64@0.23.0': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/sunos-x64@0.19.12': optional: true - '@esbuild/sunos-x64@0.23.0': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/win32-arm64@0.19.12': optional: true - '@esbuild/win32-arm64@0.23.0': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-ia32@0.19.12': optional: true - '@esbuild/win32-ia32@0.23.0': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-x64@0.19.12': optional: true - '@esbuild/win32-x64@0.23.0': + '@esbuild/win32-x64@0.23.1': optional: true '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.6))': dependencies: escape-string-regexp: 4.0.0 eslint: 9.9.1(jiti@1.21.6) - ignore: 5.3.1 + ignore: 5.3.2 '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.6))': dependencies: @@ -3489,7 +3520,7 @@ snapshots: debug: 4.3.6 espree: 10.1.0 globals: 14.0.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3531,8 +3562,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jsdevtools/ono@7.1.3': {} - '@next/eslint-plugin-next@15.0.0-canary.130': dependencies: fast-glob: 3.3.1 @@ -3558,257 +3587,147 @@ snapshots: '@pkgr/core@0.1.1': {} - '@rollup/rollup-android-arm-eabi@4.19.0': - optional: true - - '@rollup/rollup-android-arm64@4.19.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.19.0': - optional: true - - '@rollup/rollup-darwin-x64@4.19.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.19.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.19.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.19.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.19.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.19.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.19.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.19.0': - optional: true + '@rollup/plugin-alias@5.1.0(rollup@3.29.4)': + dependencies: + slash: 4.0.0 + optionalDependencies: + rollup: 3.29.4 - '@rollup/rollup-linux-x64-musl@4.19.0': - optional: true + '@rollup/plugin-commonjs@25.0.8(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 3.29.4 - '@rollup/rollup-win32-arm64-msvc@4.19.0': - optional: true + '@rollup/plugin-json@6.1.0(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + optionalDependencies: + rollup: 3.29.4 - '@rollup/rollup-win32-ia32-msvc@4.19.0': - optional: true + '@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 3.29.4 - '@rollup/rollup-win32-x64-msvc@4.19.0': - optional: true + '@rollup/plugin-replace@5.0.7(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + magic-string: 0.30.11 + optionalDependencies: + rollup: 3.29.4 - '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1(jiti@1.21.6))': + '@rollup/pluginutils@5.1.0(rollup@3.29.4)': dependencies: - '@types/eslint': 9.6.0 - acorn: 8.12.1 - eslint: 9.9.1(jiti@1.21.6) - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.4 - '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.9.1(jiti@1.21.6))': + '@stylistic/eslint-plugin@2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 estraverse: 5.3.0 picomatch: 4.0.2 - - '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1(jiti@1.21.6))': - dependencies: - '@types/eslint': 9.6.0 - eslint: 9.9.1(jiti@1.21.6) - - '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.1.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.9.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@types/eslint': 9.6.0 - eslint: 9.9.1(jiti@1.21.6) - transitivePeerDependencies: - - supports-color - - typescript - - '@swc/core-darwin-arm64@1.7.18': - optional: true - - '@swc/core-darwin-x64@1.7.18': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.7.18': - optional: true - - '@swc/core-linux-arm64-gnu@1.7.18': - optional: true - - '@swc/core-linux-arm64-musl@1.7.18': - optional: true - - '@swc/core-linux-x64-gnu@1.7.18': - optional: true - - '@swc/core-linux-x64-musl@1.7.18': - optional: true - - '@swc/core-win32-arm64-msvc@1.7.18': - optional: true - - '@swc/core-win32-ia32-msvc@1.7.18': - optional: true - - '@swc/core-win32-x64-msvc@1.7.18': - optional: true - - '@swc/core@1.7.18': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.18 - '@swc/core-darwin-x64': 1.7.18 - '@swc/core-linux-arm-gnueabihf': 1.7.18 - '@swc/core-linux-arm64-gnu': 1.7.18 - '@swc/core-linux-arm64-musl': 1.7.18 - '@swc/core-linux-x64-gnu': 1.7.18 - '@swc/core-linux-x64-musl': 1.7.18 - '@swc/core-win32-arm64-msvc': 1.7.18 - '@swc/core-win32-ia32-msvc': 1.7.18 - '@swc/core-win32-x64-msvc': 1.7.18 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.12': - dependencies: - '@swc/counter': 0.1.3 + '@trysound/sax@0.2.0': {} '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 20.16.1 + '@types/node': 22.5.2 - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - - '@types/eslint__js@8.42.3': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree@1.0.5': {} '@types/json-schema@7.0.15': {} - '@types/node@20.16.1': + '@types/node@22.5.2': dependencies: undici-types: 6.19.8 '@types/normalize-package-data@2.4.4': {} - '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@types/resolve@1.20.2': {} + + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 eslint: 9.9.1(jiti@1.21.6) graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 - debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.6) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.1.0': - dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 - - '@typescript-eslint/scope-manager@8.2.0': - dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 + - supports-color - '@typescript-eslint/type-utils@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6 - ts-api-utils: 1.3.0(typescript@5.5.4) + eslint: 9.9.1(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - - eslint - supports-color - '@typescript-eslint/types@8.1.0': {} - - '@typescript-eslint/types@8.2.0': {} + '@typescript-eslint/scope-manager@8.4.0': + dependencies: + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/typescript-estree@8.1.0(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)': + '@typescript-eslint/types@8.4.0': {} + + '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -3818,36 +3737,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.1.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.1.0': - dependencies: - '@typescript-eslint/types': 8.1.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.2.0': + '@typescript-eslint/visitor-keys@8.4.0': dependencies: - '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 JSONStream@1.3.5: @@ -3922,8 +3825,6 @@ snapshots: get-intrinsic: 1.2.4 is-string: 1.0.7 - array-union@2.1.0: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 @@ -3966,6 +3867,16 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + autoprefixer@10.4.20(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001655 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.1 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -3974,6 +3885,8 @@ snapshots: binary-extensions@2.3.0: {} + boolbase@1.0.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -3987,22 +3900,15 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001642 - electron-to-chromium: 1.4.829 - node-releases: 2.0.17 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + caniuse-lite: 1.0.30001655 + electron-to-chromium: 1.5.13 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) builtin-modules@3.3.0: {} - bundle-require@5.0.0(esbuild@0.23.0): - dependencies: - esbuild: 0.23.0 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -4015,7 +3921,14 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001642: {} + caniuse-api@3.0.0: + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001655 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001655: {} chalk@2.4.2: dependencies: @@ -4044,6 +3957,10 @@ snapshots: ci-info@4.0.0: {} + citty@0.1.6: + dependencies: + consola: 3.2.3 + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -4075,14 +3992,20 @@ snapshots: color-name@1.1.4: {} + colord@2.9.3: {} + colorette@2.0.20: {} commander@12.1.0: {} commander@4.1.1: {} + commander@7.2.0: {} + comment-parser@1.4.1: {} + commondir@1.0.1: {} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -4111,13 +4034,13 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.37.1: + core-js-compat@3.38.1: dependencies: - browserslist: 4.23.2 + browserslist: 4.23.3 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.16.1)(cosmiconfig@9.0.0(typescript@5.5.4))(typescript@5.5.4): + cosmiconfig-typescript-loader@5.0.0(@types/node@22.5.2)(cosmiconfig@9.0.0(typescript@5.5.4))(typescript@5.5.4): dependencies: - '@types/node': 20.16.1 + '@types/node': 22.5.2 cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 typescript: 5.5.4 @@ -4137,8 +4060,80 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-declaration-sorter@7.2.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.0 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + + css-what@6.1.0: {} + cssesc@3.0.0: {} + cssnano-preset-default@7.0.5(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + css-declaration-sorter: 7.2.0(postcss@8.4.44) + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-calc: 10.0.2(postcss@8.4.44) + postcss-colormin: 7.0.2(postcss@8.4.44) + postcss-convert-values: 7.0.3(postcss@8.4.44) + postcss-discard-comments: 7.0.2(postcss@8.4.44) + postcss-discard-duplicates: 7.0.1(postcss@8.4.44) + postcss-discard-empty: 7.0.0(postcss@8.4.44) + postcss-discard-overridden: 7.0.0(postcss@8.4.44) + postcss-merge-longhand: 7.0.3(postcss@8.4.44) + postcss-merge-rules: 7.0.3(postcss@8.4.44) + postcss-minify-font-values: 7.0.0(postcss@8.4.44) + postcss-minify-gradients: 7.0.0(postcss@8.4.44) + postcss-minify-params: 7.0.2(postcss@8.4.44) + postcss-minify-selectors: 7.0.3(postcss@8.4.44) + postcss-normalize-charset: 7.0.0(postcss@8.4.44) + postcss-normalize-display-values: 7.0.0(postcss@8.4.44) + postcss-normalize-positions: 7.0.0(postcss@8.4.44) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.44) + postcss-normalize-string: 7.0.0(postcss@8.4.44) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.44) + postcss-normalize-unicode: 7.0.2(postcss@8.4.44) + postcss-normalize-url: 7.0.0(postcss@8.4.44) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.44) + postcss-ordered-values: 7.0.1(postcss@8.4.44) + postcss-reduce-initial: 7.0.2(postcss@8.4.44) + postcss-reduce-transforms: 7.0.0(postcss@8.4.44) + postcss-svgo: 7.0.1(postcss@8.4.44) + postcss-unique-selectors: 7.0.2(postcss@8.4.44) + + cssnano-utils@5.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + cssnano@7.0.5(postcss@8.4.44): + dependencies: + cssnano-preset-default: 7.0.5(postcss@8.4.44) + lilconfig: 3.1.2 + postcss: 8.4.44 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + dargs@8.1.0: {} data-view-buffer@1.0.1: @@ -4169,6 +4164,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -4181,6 +4178,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + didyoumean@1.2.2: {} dir-glob@3.0.1: @@ -4197,25 +4196,45 @@ snapshots: dependencies: esutils: 2.0.3 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.829: {} + electron-to-chromium@1.5.13: {} - emoji-regex@10.3.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - enhanced-resolve@5.17.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + entities@4.5.0: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -4318,61 +4337,60 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.21.5: + esbuild@0.19.12: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - optional: true - - esbuild@0.23.0: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.0 - '@esbuild/android-arm': 0.23.0 - '@esbuild/android-arm64': 0.23.0 - '@esbuild/android-x64': 0.23.0 - '@esbuild/darwin-arm64': 0.23.0 - '@esbuild/darwin-x64': 0.23.0 - '@esbuild/freebsd-arm64': 0.23.0 - '@esbuild/freebsd-x64': 0.23.0 - '@esbuild/linux-arm': 0.23.0 - '@esbuild/linux-arm64': 0.23.0 - '@esbuild/linux-ia32': 0.23.0 - '@esbuild/linux-loong64': 0.23.0 - '@esbuild/linux-mips64el': 0.23.0 - '@esbuild/linux-ppc64': 0.23.0 - '@esbuild/linux-riscv64': 0.23.0 - '@esbuild/linux-s390x': 0.23.0 - '@esbuild/linux-x64': 0.23.0 - '@esbuild/netbsd-x64': 0.23.0 - '@esbuild/openbsd-arm64': 0.23.0 - '@esbuild/openbsd-x64': 0.23.0 - '@esbuild/sunos-x64': 0.23.0 - '@esbuild/win32-arm64': 0.23.0 - '@esbuild/win32-ia32': 0.23.0 - '@esbuild/win32-x64': 0.23.0 - - escalade@3.1.2: {} + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -4389,13 +4407,13 @@ snapshots: eslint-flat-config-utils@0.3.1: dependencies: - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 pathe: 1.1.2 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.14.0 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -4407,20 +4425,20 @@ snapshots: eslint: 9.9.1(jiti@1.21.6) eslint-compat-utils: 0.5.1(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-import-x@4.0.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + eslint-plugin-import-x@4.1.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 eslint: 9.9.1(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.7.5 + get-tsconfig: 4.8.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 stable-hash: 0.0.4 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color - typescript @@ -4456,23 +4474,23 @@ snapshots: eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.6)): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - enhanced-resolve: 5.17.0 + enhanced-resolve: 5.17.1 eslint: 9.9.1(jiti@1.21.6) eslint-plugin-es-x: 7.8.0(eslint@9.9.1(jiti@1.21.6)) - get-tsconfig: 4.7.5 + get-tsconfig: 4.8.0 globals: 15.9.0 - ignore: 5.3.1 + ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(prettier@3.3.3): dependencies: eslint: 9.9.1(jiti@1.21.6) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.1 optionalDependencies: - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 eslint-config-prettier: 9.1.0(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-promise@7.1.0(eslint@9.9.1(jiti@1.21.6)): @@ -4481,13 +4499,13 @@ snapshots: eslint-plugin-react-compiler@0.0.0-experimental-9ed098e-20240725(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@babel/core': 7.24.9 - '@babel/parser': 7.24.8 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/parser': 7.25.6 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.25.2) eslint: 9.9.1(jiti@1.21.6) hermes-parser: 0.20.1 zod: 3.23.8 - zod-validation-error: 3.3.0(zod@3.23.8) + zod-validation-error: 3.3.1(zod@3.23.8) transitivePeerDependencies: - supports-color @@ -4523,16 +4541,16 @@ snapshots: '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 eslint: 9.9.1(jiti@1.21.6) - jsdoc-type-pratt-parser: 4.0.0 + jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-tailwindcss@3.17.4(tailwindcss@3.4.6): + eslint-plugin-tailwindcss@3.17.4(tailwindcss@3.4.10): dependencies: fast-glob: 3.3.2 - postcss: 8.4.39 - tailwindcss: 3.4.6 + postcss: 8.4.44 + tailwindcss: 3.4.10 eslint-plugin-unicorn@https://codeload.github.com/sindresorhus/eslint-plugin-unicorn/tar.gz/891842d539d0d002119e9c476a050a12d3936a75(eslint@9.9.1(jiti@1.21.6)): dependencies: @@ -4540,7 +4558,7 @@ snapshots: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.1 + core-js-compat: 3.38.1 eslint: 9.9.1(jiti@1.21.6) esquery: 1.6.0 globals: 15.9.0 @@ -4559,13 +4577,6 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-typegen@0.3.1(eslint@9.9.1(jiti@1.21.6)): - dependencies: - '@types/eslint': 9.6.0 - eslint: 9.9.1(jiti@1.21.6) - json-schema-to-typescript-lite: 14.1.0 - ohash: 1.1.3 - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.0.0: {} @@ -4594,7 +4605,7 @@ snapshots: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4633,22 +4644,12 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} eventemitter3@5.0.1: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -4671,7 +4672,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-glob@3.3.2: dependencies: @@ -4679,7 +4680,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -4726,11 +4727,15 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + fraction.js@4.3.7: {} + + fs.realpath@1.0.0: {} + fsevents@2.3.3: optional: true @@ -4759,8 +4764,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-stream@6.0.1: {} - get-stream@8.0.1: {} get-symbol-description@1.0.2: @@ -4769,7 +4772,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: + get-tsconfig@4.8.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -4787,15 +4790,22 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: + glob@10.3.10: dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.3 + foreground-child: 3.3.0 + jackspeak: 2.3.6 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 path-scurry: 1.11.1 + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + global-directory@4.0.1: dependencies: ini: 4.1.1 @@ -4811,14 +4821,13 @@ snapshots: define-properties: 1.2.1 gopd: 1.0.1 - globby@11.1.0: + globby@13.2.2: dependencies: - array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 - slash: 3.0.0 + slash: 4.0.0 gopd@1.0.1: dependencies: @@ -4856,13 +4865,13 @@ snapshots: dependencies: hermes-estree: 0.20.1 - hosted-git-info@2.8.9: {} + hookable@5.5.3: {} - human-signals@2.1.0: {} + hosted-git-info@2.8.9: {} human-signals@5.0.0: {} - ignore@5.3.1: {} + ignore@5.3.2: {} import-fresh@3.3.0: dependencies: @@ -4875,6 +4884,13 @@ snapshots: indent-string@4.0.0: {} + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + ini@4.1.1: {} internal-slot@1.0.7: @@ -4913,7 +4929,7 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.14.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -4949,6 +4965,8 @@ snapshots: is-map@2.0.3: {} + is-module@1.0.0: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -4961,6 +4979,10 @@ snapshots: is-path-inside@3.0.3: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -4972,8 +4994,6 @@ snapshots: dependencies: call-bind: 1.0.7 - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-string@1.0.7: @@ -5015,7 +5035,7 @@ snapshots: reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - jackspeak@3.4.3: + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -5023,16 +5043,12 @@ snapshots: jiti@1.21.6: {} - joycon@3.1.1: {} - js-tokens@4.0.0: {} js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.0.0: {} - jsdoc-type-pratt-parser@4.1.0: {} jsesc@0.5.0: {} @@ -5045,11 +5061,6 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-to-typescript-lite@14.1.0: - dependencies: - '@apidevtools/json-schema-ref-parser': 11.7.0 - '@types/json-schema': 7.0.15 - json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -5132,7 +5143,7 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.2.9: + lint-staged@15.2.10: dependencies: chalk: 5.3.0 commander: 12.1.0 @@ -5140,7 +5151,7 @@ snapshots: execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.4 - micromatch: 4.0.7 + micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.5.0 @@ -5156,12 +5167,10 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 - load-tsconfig@0.2.5: {} - local-pkg@0.5.0: dependencies: mlly: 1.7.1 - pkg-types: 1.1.3 + pkg-types: 1.2.0 locate-path@5.0.0: dependencies: @@ -5181,14 +5190,14 @@ snapshots: lodash.kebabcase@4.1.1: {} + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} lodash.snakecase@4.1.1: {} - lodash.sortby@4.7.0: {} - lodash.startcase@4.4.0: {} lodash.uniq@4.5.0: {} @@ -5213,19 +5222,25 @@ snapshots: dependencies: yallist: 3.1.1 + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + meow@12.1.1: {} merge-stream@2.0.0: {} merge2@1.4.1: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} mimic-function@5.0.1: {} @@ -5236,6 +5251,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -5244,13 +5263,33 @@ snapshots: minipass@7.1.2: {} + mkdist@1.5.5(typescript@5.5.4): + dependencies: + autoprefixer: 10.4.20(postcss@8.4.44) + citty: 0.1.6 + cssnano: 7.0.5(postcss@8.4.44) + defu: 6.1.4 + esbuild: 0.23.1 + fast-glob: 3.3.2 + jiti: 1.21.6 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + postcss: 8.4.44 + postcss-nested: 6.2.0(postcss@8.4.44) + semver: 7.6.3 + optionalDependencies: + typescript: 5.5.4 + mlly@1.7.1: dependencies: acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.3 + pkg-types: 1.2.0 ufo: 1.5.4 + mri@1.2.0: {} + ms@2.1.2: {} ms@2.1.3: {} @@ -5265,7 +5304,7 @@ snapshots: natural-compare@1.4.0: {} - node-releases@2.0.17: {} + node-releases@2.0.18: {} normalize-package-data@2.5.0: dependencies: @@ -5276,14 +5315,16 @@ snapshots: normalize-path@3.0.0: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 + normalize-range@0.1.2: {} npm-run-path@5.3.0: dependencies: path-key: 4.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -5318,11 +5359,9 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - ohash@1.1.3: {} - - onetime@5.1.2: + once@1.4.0: dependencies: - mimic-fn: 2.1.0 + wrappy: 1.0.2 onetime@6.0.0: dependencies: @@ -5367,8 +5406,6 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -5416,7 +5453,7 @@ snapshots: pirates@4.0.6: {} - pkg-types@1.1.3: + pkg-types@1.2.0: dependencies: confbox: 0.1.7 mlly: 1.7.1 @@ -5426,47 +5463,187 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.39): + postcss-calc@10.0.2(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.2(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.3(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.2(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + + postcss-discard-duplicates@7.0.1(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-discard-empty@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-discard-overridden@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-import@15.1.0(postcss@8.4.44): dependencies: - postcss: 8.4.39 + postcss: 8.4.44 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.39): + postcss-js@4.0.1(postcss@8.4.44): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.39 + postcss: 8.4.44 - postcss-load-config@4.0.2(postcss@8.4.39): + postcss-load-config@4.0.2(postcss@8.4.44): dependencies: lilconfig: 3.1.2 yaml: 2.5.0 optionalDependencies: - postcss: 8.4.39 + postcss: 8.4.44 - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.39)(tsx@4.16.2)(yaml@2.5.0): + postcss-merge-longhand@7.0.3(postcss@8.4.44): dependencies: - lilconfig: 3.1.2 - optionalDependencies: - jiti: 1.21.6 - postcss: 8.4.39 - tsx: 4.16.2 - yaml: 2.5.0 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.3(postcss@8.4.44) + + postcss-merge-rules@7.0.3(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.4.44): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.2(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.3(postcss@8.4.44): + dependencies: + cssesc: 3.0.0 + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + + postcss-nested@6.2.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + + postcss-normalize-charset@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-normalize-display-values@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.2(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.1(postcss@8.4.44): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.2(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + postcss: 8.4.44 - postcss-nested@6.0.1(postcss@8.4.39): + postcss-reduce-transforms@7.0.0(postcss@8.4.44): dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.1 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-svgo@7.0.1(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.2(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + postcss-value-parser@4.2.0: {} - postcss@8.4.39: + postcss@8.4.44: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -5480,6 +5657,8 @@ snapshots: prettier@3.3.3: {} + pretty-bytes@6.1.1: {} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -5525,7 +5704,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 regexp-ast-analysis@0.7.1: dependencies: @@ -5557,13 +5736,13 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5576,26 +5755,16 @@ snapshots: rfdc@1.4.1: {} - rollup@4.19.0: + rollup-plugin-dts@6.1.1(rollup@3.29.4)(typescript@5.5.4): dependencies: - '@types/estree': 1.0.5 + magic-string: 0.30.11 + rollup: 3.29.4 + typescript: 5.5.4 + optionalDependencies: + '@babel/code-frame': 7.24.7 + + rollup@3.29.4: optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.19.0 - '@rollup/rollup-android-arm64': 4.19.0 - '@rollup/rollup-darwin-arm64': 4.19.0 - '@rollup/rollup-darwin-x64': 4.19.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.19.0 - '@rollup/rollup-linux-arm-musleabihf': 4.19.0 - '@rollup/rollup-linux-arm64-gnu': 4.19.0 - '@rollup/rollup-linux-arm64-musl': 4.19.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.19.0 - '@rollup/rollup-linux-riscv64-gnu': 4.19.0 - '@rollup/rollup-linux-s390x-gnu': 4.19.0 - '@rollup/rollup-linux-x64-gnu': 4.19.0 - '@rollup/rollup-linux-x64-musl': 4.19.0 - '@rollup/rollup-win32-arm64-msvc': 4.19.0 - '@rollup/rollup-win32-ia32-msvc': 4.19.0 - '@rollup/rollup-win32-x64-msvc': 4.19.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5621,6 +5790,8 @@ snapshots: refa: 0.12.1 regexp-ast-analysis: 0.7.1 + scule@1.3.0: {} + semver@5.7.2: {} semver@6.3.1: {} @@ -5656,11 +5827,9 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} - slash@3.0.0: {} + slash@4.0.0: {} slashes@3.0.12: {} @@ -5676,28 +5845,24 @@ snapshots: source-map-js@1.2.0: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.20: {} split2@4.2.0: {} @@ -5719,7 +5884,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.3.0 + emoji-regex: 10.4.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 @@ -5770,8 +5935,6 @@ snapshots: dependencies: ansi-regex: 6.0.1 - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} strip-indent@3.0.0: @@ -5780,11 +5943,17 @@ snapshots: strip-json-comments@3.1.1: {} + stylehacks@7.0.3(postcss@8.4.44): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.44 + postcss-selector-parser: 6.1.2 + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.5 + glob: 10.3.10 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -5800,16 +5969,26 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.1 + synckit@0.6.2: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tslib: 2.7.0 - tailwindcss@3.4.6: + tailwindcss@3.4.10: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -5821,16 +6000,16 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.7 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.39 - postcss-import: 15.1.0(postcss@8.4.39) - postcss-js: 4.0.1(postcss@8.4.39) - postcss-load-config: 4.0.2(postcss@8.4.39) - postcss-nested: 6.0.1(postcss@8.4.39) - postcss-selector-parser: 6.1.1 + postcss: 8.4.44 + postcss-import: 15.1.0(postcss@8.4.44) + postcss-js: 4.0.1(postcss@8.4.44) + postcss-load-config: 4.0.2(postcss@8.4.44) + postcss-nested: 6.2.0(postcss@8.4.44) + postcss-selector-parser: 6.1.2 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -5858,55 +6037,13 @@ snapshots: dependencies: is-number: 7.0.0 - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - tree-kill@1.2.2: {} - ts-api-utils@1.3.0(typescript@5.5.4): dependencies: typescript: 5.5.4 ts-interface-checker@0.1.13: {} - tslib@2.6.3: {} - - tsup@8.2.4(@swc/core@1.7.18)(jiti@1.21.6)(postcss@8.4.39)(tsx@4.16.2)(typescript@5.5.4)(yaml@2.5.0): - dependencies: - bundle-require: 5.0.0(esbuild@0.23.0) - cac: 6.7.14 - chokidar: 3.6.0 - consola: 3.2.3 - debug: 4.3.6 - esbuild: 0.23.0 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - picocolors: 1.0.1 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.39)(tsx@4.16.2)(yaml@2.5.0) - resolve-from: 5.0.0 - rollup: 4.19.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tree-kill: 1.2.2 - optionalDependencies: - '@swc/core': 1.7.18 - postcss: 8.4.39 - typescript: 5.5.4 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - - tsx@4.16.2: - dependencies: - esbuild: 0.21.5 - get-tsconfig: 4.7.5 - optionalDependencies: - fsevents: 2.3.3 - optional: true + tslib@2.7.0: {} type-check@0.4.0: dependencies: @@ -5948,11 +6085,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -5970,14 +6107,59 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbuild@2.0.0(typescript@5.5.4): + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.8(rollup@3.29.4) + '@rollup/plugin-json': 6.1.0(rollup@3.29.4) + '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.7(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.12 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.6 + magic-string: 0.30.11 + mkdist: 1.5.5(typescript@5.5.4) + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + pretty-bytes: 6.1.1 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.1(rollup@3.29.4)(typescript@5.5.4) + scule: 1.3.0 + untyped: 1.4.2 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - sass + - supports-color + - vue-tsc + undici-types@6.19.8: {} unicorn-magic@0.1.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): + untyped@1.4.2: + dependencies: + '@babel/core': 7.25.2 + '@babel/standalone': 7.25.6 + '@babel/types': 7.25.6 + defu: 6.1.4 + jiti: 1.21.6 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 + browserslist: 4.23.3 + escalade: 3.2.0 picocolors: 1.0.1 uri-js@4.4.1: @@ -5991,14 +6173,6 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - webidl-conversions@4.0.2: {} - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 @@ -6007,7 +6181,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -6061,6 +6235,8 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + wrappy@1.0.2: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -6072,7 +6248,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -6083,7 +6259,7 @@ snapshots: yocto-queue@1.1.1: {} - zod-validation-error@3.3.0(zod@3.23.8): + zod-validation-error@3.3.1(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/scripts/typegen.ts b/scripts/typegen.ts deleted file mode 100644 index e2b340187d..0000000000 --- a/scripts/typegen.ts +++ /dev/null @@ -1,60 +0,0 @@ -import fs from 'node:fs/promises'; -import { flatConfigsToRulesDTS } from 'eslint-typegen/core'; -import { prettier } from '../src/configs/prettier'; -import { ignores } from '../src/configs/ignores'; -import { javascript } from '../src/configs/javascript'; -import { imports } from '../src/configs/imports'; -import { comments } from '../src/configs/comments'; -import { node } from '../src/configs/node'; -import { promise } from '../src/configs/promise'; -import { sortPackageJson, sortTsconfig } from '../src/configs/sort-json'; -import { jsdoc } from '../src/configs/jsdoc'; -import { jsonc } from '../src/configs/jsonc'; -import { nextjs } from '../src/configs/nextjs'; -import { tailwindcss } from '../src/configs/tailwindcss'; -import { typescript } from '../src/configs/typescript'; -import { unicorn } from '../src/configs/unicorn'; -import { combine } from '../src/utils'; -import { react } from '../src/configs/react'; -import { jsx } from '../src/configs/jsx'; -import { regexp } from '../src/configs/regexp'; -import { prettierStylistic, stylistic } from '../src/configs/stylistic'; -import type { Linter } from 'eslint'; - -const configs = await combine( - ignores(), - imports(), - javascript(), - jsx(), - stylistic(), - jsdoc(), - jsonc(), - regexp(), - sortPackageJson(), - sortTsconfig(), - node(), - promise(), - comments(), - unicorn(), - typescript({}), - react(), - nextjs(), - tailwindcss({}), - prettierStylistic(), - prettier({}), -); - -const configNames = (configs as Linter.Config[]) - .map(index => index.name) - .filter(Boolean) as string[]; - -let dts = await flatConfigsToRulesDTS(configs as Linter.Config[], { - includeAugmentation: false, -}); - -dts += ` -// Names of all the configs -export type ConfigNames = ${configNames.map(index => `'${index}'`).join(' | ')} -`; - -await fs.writeFile('src/typegen.d.ts', dts); diff --git a/src/configs/comments.ts b/src/configs/comments.ts index bc86046e60..c18c3bd776 100644 --- a/src/configs/comments.ts +++ b/src/configs/comments.ts @@ -1,18 +1,17 @@ import pluginComments from '@eslint-community/eslint-plugin-eslint-comments'; -import type { TypedFlatConfigItem } from '../types'; -import type { ESLint } from 'eslint'; +import type { Linter } from 'eslint'; -export const comments = (): TypedFlatConfigItem[] => { +export const comments = (): Linter.Config[] => { return [ { name: 'nivalis/eslint-comments/rules', plugins: { - 'eslint-comments': pluginComments as unknown as ESLint.Plugin, + 'eslint-comments': pluginComments, }, rules: { 'eslint-comments/disable-enable-pair': [ 'error', - { 'allowWholeFile': true }, + { allowWholeFile: true }, ], 'eslint-comments/no-aggregating-enable': 'error', 'eslint-comments/no-duplicate-disable': 'error', diff --git a/src/configs/ignores.ts b/src/configs/ignores.ts index b84385cc1e..0d84a52247 100644 --- a/src/configs/ignores.ts +++ b/src/configs/ignores.ts @@ -1,11 +1,11 @@ import { GLOB_EXCLUDE } from '../globs'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const ignores = (): TypedFlatConfigItem[] => { +export const ignores = (userIgnores: string[] = []): Linter.Config[] => { return [ { name: 'nivalis/ignores', - ignores: GLOB_EXCLUDE, + ignores: [...GLOB_EXCLUDE, ...userIgnores], }, ]; }; diff --git a/src/configs/imports.ts b/src/configs/imports.ts index 1bef2c6b09..e878e9f8af 100644 --- a/src/configs/imports.ts +++ b/src/configs/imports.ts @@ -1,16 +1,102 @@ -import pluginImport from 'eslint-plugin-import-x'; +import eslintPluginImportX from 'eslint-plugin-import-x'; import { GLOB_MARKDOWN, GLOB_SRC, GLOB_SRC_EXT } from '../globs'; -import type { ESLint } from 'eslint'; -import type { TypedFlatConfigItem } from '../types'; +import type { ESLint, Linter } from 'eslint'; -export const imports = (): TypedFlatConfigItem[] => { - return [ +export const imports = async ( + withTypescript = true, +): Promise => { + const importsConfig: Linter.Config[] = [ { - name: 'nivalis/import', - files: [GLOB_SRC], - plugins: { - import: pluginImport as unknown as ESLint.Plugin, + name: 'import/flat/recommended', + plugins: { import: eslintPluginImportX as unknown as ESLint.Plugin }, + rules: { + // Analysis/correctness + 'import/no-unresolved': 'error', + 'import/named': 'error', + 'import/namespace': 'error', + 'import/default': 'error', + 'import/export': 'error', + + // Red flags (thus, warnings) + 'import/no-named-as-default': 'warn', + 'import/no-named-as-default-member': 'warn', + 'import/no-duplicates': 'warn', }, + // Need all these for parsing dependencies (even if _your_ code doesn't need + // All of them) + languageOptions: { + ecmaVersion: 2018, + sourceType: 'module', + }, + }, + ]; + + if (withTypescript) { + const tsParser = await import('@typescript-eslint/parser'); + + /** + * This config: + * 1) adds `.jsx`, `.ts`, `.cts`, `.mts`, and `.tsx` as an extension + * 2) enables JSX/TSX parsing + */ + + // Omit `.d.ts` because 1) TypeScript compilation already confirms that + // Types are resolved, and 2) it would mask an unresolved + // `.ts`/`.tsx`/`.js`/`.jsx` implementation. + const typeScriptExtensions = ['.ts', '.tsx', '.cts', '.mts'] as const; + + const allExtensions = [ + ...typeScriptExtensions, + '.js', + '.jsx', + '.cjs', + '.mjs', + ] as const; + + importsConfig.push( + { + name: 'import/flat/settings', + settings: { + 'import/extensions': allExtensions, + 'import/external-module-folders': [ + 'node_modules', + 'node_modules/@types', + ], + 'import/parsers': { + '@typescript-eslint/parser': [...typeScriptExtensions], + }, + 'import/resolver': { + typescript: true, + }, + }, + rules: { + // Analysis/correctness + + // TypeScript compilation already ensures that named imports exist in the referenced module + 'import/named': 'off', + }, + }, + { + name: 'import/flat/options', + files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'], + ignores: ['eslint.config.js'], + languageOptions: { + parser: tsParser, + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: { + 'no-unused-vars': 'off', + 'import/no-dynamic-require': 'warn', + }, + }, + ); + } + + importsConfig.push( + { + name: 'import/nivalis-rules', + rules: { // https://typescript-eslint.io/troubleshooting/typed-linting/performance#eslint-plugin-import 'import/named': 'off', @@ -66,7 +152,7 @@ export const imports = (): TypedFlatConfigItem[] => { }, }, { - name: 'nivalis/import/disabled', + name: 'import/nivalis-disabled-rules', files: [ `**/*config*.${GLOB_SRC_EXT}`, `**/views/${GLOB_SRC}`, @@ -80,5 +166,7 @@ export const imports = (): TypedFlatConfigItem[] => { 'import/no-default-export': 'off', }, }, - ]; + ); + + return importsConfig; }; diff --git a/src/configs/javascript.ts b/src/configs/javascript.ts index 5ac2cf94e6..01fad05931 100644 --- a/src/configs/javascript.ts +++ b/src/configs/javascript.ts @@ -1,46 +1,27 @@ import globals from 'globals'; import { GLOB_SRC } from '../globs'; -import { - MAX_COMPLEXITY, - MAX_LINES, - MAX_LINES_PER_FUNCTION, - MAX_NESTED_CALLBACKS, - MAX_PARAMS, - MAX_STATEMENTS, -} from '../constants'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -// eslint-disable-next-line max-lines-per-function -export const javascript = (): TypedFlatConfigItem[] => { +const MAX_COMPLEXITY = 25; +const MAX_LINES = 500; +const MAX_LINES_PER_FUNCTION = 250; +const MAX_NESTED_CALLBACKS = 4; +const MAX_PARAMS = 5; +const MAX_STATEMENTS = 35; + +export const javascript = (): Linter.Config[] => { return [ { name: 'nivalis/javascript/setup', languageOptions: { - ecmaVersion: 2022, - globals: { - ...globals.browser, - ...globals.es2021, - ...globals.node, - ...globals.commonjs, - document: 'readonly', - navigator: 'readonly', - window: 'readonly', - }, - parserOptions: { - ecmaVersion: 2022, - sourceType: 'module', - }, - sourceType: 'module', - }, - linterOptions: { - reportUnusedDisableDirectives: true, + globals: { ...globals.browser, ...globals.node }, }, }, - { - files: [GLOB_SRC], name: 'nivalis/javascript/rules', + files: [GLOB_SRC], rules: { + 'valid-typeof': 'error', 'accessor-pairs': [ 'error', { @@ -149,7 +130,7 @@ export const javascript = (): TypedFlatConfigItem[] => { 'no-dupe-keys': 'error', 'no-duplicate-case': ['error'], 'no-else-return': ['error', { allowElseIf: false }], - 'no-empty': ['error', { allowEmptyCatch: true }], + 'no-empty': ['error'], 'no-empty-character-class': 'error', 'no-empty-function': [ 'error', @@ -475,7 +456,7 @@ export const javascript = (): TypedFlatConfigItem[] => { 'error', { enforceForIndexOf: true, enforceForSwitchCase: true }, ], - 'valid-typeof': ['error', { requireStringLiterals: true }], + // 'valid-typeof': ['error', { requireStringLiterals: true }], 'vars-on-top': 'error', yoda: [ 'error', @@ -485,6 +466,39 @@ export const javascript = (): TypedFlatConfigItem[] => { onlyEquality: false, }, ], + + 'arrow-body-style': 'error', + 'capitalized-comments': 'off', + 'consistent-return': 'off', + 'consistent-this': 'error', + curly: 'error', + 'guard-for-in': 'error', + 'id-match': 'error', + 'init-declarations': 'error', + 'logical-assignment-operators': 'error', + 'max-classes-per-file': 'error', + 'max-depth': 'error', + 'no-bitwise': 'error', + 'no-continue': 'error', + 'no-duplicate-imports': 'error', + 'no-eq-null': 'error', + 'no-inline-comments': 'off', + 'no-multi-assign': 'error', + 'no-nested-ternary': 'error', + 'no-object-constructor': 'error', + 'no-restricted-exports': 'error', + 'no-restricted-imports': 'error', + 'no-undefined': 'error', + 'no-underscore-dangle': 'off', + 'no-useless-assignment': 'error', + 'operator-assignment': 'error', + 'prefer-destructuring': 'off', + 'prefer-named-capture-group': 'off', + 'prefer-numeric-literals': 'error', + 'prefer-object-has-own': 'error', + 'prefer-object-spread': 'error', + 'require-unicode-regexp': 'off', + 'sort-vars': 'error', }, }, ]; diff --git a/src/configs/jsdoc.ts b/src/configs/jsdoc.ts index 9ea45a7d06..35ed6a4b97 100644 --- a/src/configs/jsdoc.ts +++ b/src/configs/jsdoc.ts @@ -1,7 +1,7 @@ import pluginJsdoc from 'eslint-plugin-jsdoc'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const jsdoc = (): TypedFlatConfigItem[] => { +export const jsdoc = (): Linter.Config[] => { return [ pluginJsdoc.configs['flat/recommended'], { diff --git a/src/configs/jsonc.ts b/src/configs/jsonc.ts index b5ac104da3..1327768820 100644 --- a/src/configs/jsonc.ts +++ b/src/configs/jsonc.ts @@ -1,9 +1,211 @@ import eslintPluginJsonc from 'eslint-plugin-jsonc'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const jsonc = (): TypedFlatConfigItem[] => { - return [ - ...eslintPluginJsonc.configs['flat/recommended-with-json'], - ...eslintPluginJsonc.configs['flat/prettier'], - ]; -}; +export const jsonc = (): Linter.Config[] => [ + ...eslintPluginJsonc.configs['flat/recommended-with-json'], +]; + +export const sortPackageJson = (): Linter.Config[] => [ + { + files: ['**/package.json'], + name: 'nivalis/sort/package-json', + rules: { + 'jsonc/sort-array-values': [ + 'error', + { + order: { type: 'asc' }, + pathPattern: '^files$', + }, + ], + 'jsonc/sort-keys': [ + 'error', + { + order: [ + 'publisher', + 'name', + 'displayName', + 'type', + 'version', + 'private', + 'packageManager', + 'description', + 'author', + 'contributors', + 'license', + 'funding', + 'homepage', + 'repository', + 'bugs', + 'keywords', + 'categories', + 'sideEffects', + 'exports', + 'main', + 'module', + 'unpkg', + 'jsdelivr', + 'types', + 'typesVersions', + 'bin', + 'icon', + 'files', + 'engines', + 'activationEvents', + 'contributes', + 'scripts', + 'peerDependencies', + 'peerDependenciesMeta', + 'dependencies', + 'optionalDependencies', + 'devDependencies', + 'pnpm', + 'overrides', + 'resolutions', + 'husky', + 'simple-git-hooks', + 'lint-staged', + 'eslintConfig', + ], + pathPattern: '^$', + }, + { + order: { type: 'asc' }, + pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$', + }, + { + order: { type: 'asc' }, + pathPattern: '^(?:resolutions|overrides|pnpm.overrides)$', + }, + { + order: ['types', 'import', 'require', 'default'], + pathPattern: '^exports.*$', + }, + ], + }, + }, +]; + +export const sortTsconfig = (): Linter.Config[] => [ + { + files: ['**/tsconfig.json', '**/tsconfig.*.json'], + name: 'nivalis/sort/tsconfig-json', + rules: { + 'jsonc/sort-keys': [ + 'error', + { + order: [ + 'extends', + 'compilerOptions', + 'references', + 'files', + 'include', + 'exclude', + ], + pathPattern: '^$', + }, + { + order: [ + /* Projects */ + 'incremental', + 'composite', + 'tsBuildInfoFile', + 'disableSourceOfProjectReferenceRedirect', + 'disableSolutionSearching', + 'disableReferencedProjectLoad', + /* Language and Environment */ + 'target', + 'jsx', + 'jsxFactory', + 'jsxFragmentFactory', + 'jsxImportSource', + 'lib', + 'moduleDetection', + 'noLib', + 'reactNamespace', + 'useDefineForClassFields', + 'emitDecoratorMetadata', + 'experimentalDecorators', + /* Modules */ + 'baseUrl', + 'rootDir', + 'rootDirs', + 'customConditions', + 'module', + 'moduleResolution', + 'moduleSuffixes', + 'noResolve', + 'paths', + 'resolveJsonModule', + 'resolvePackageJsonExports', + 'resolvePackageJsonImports', + 'typeRoots', + 'types', + 'allowArbitraryExtensions', + 'allowImportingTsExtensions', + 'allowUmdGlobalAccess', + /* JavaScript Support */ + 'allowJs', + 'checkJs', + 'maxNodeModuleJsDepth', + /* Type Checking */ + 'strict', + 'strictBindCallApply', + 'strictFunctionTypes', + 'strictNullChecks', + 'strictPropertyInitialization', + 'allowUnreachableCode', + 'allowUnusedLabels', + 'alwaysStrict', + 'exactOptionalPropertyTypes', + 'noFallthroughCasesInSwitch', + 'noImplicitAny', + 'noImplicitOverride', + 'noImplicitReturns', + 'noImplicitThis', + 'noPropertyAccessFromIndexSignature', + 'noUncheckedIndexedAccess', + 'noUnusedLocals', + 'noUnusedParameters', + 'useUnknownInCatchVariables', + /* Emit */ + 'declaration', + 'declarationDir', + 'declarationMap', + 'downlevelIteration', + 'emitBOM', + 'emitDeclarationOnly', + 'importHelpers', + 'importsNotUsedAsValues', + 'inlineSourceMap', + 'inlineSources', + 'mapRoot', + 'newLine', + 'noEmit', + 'noEmitHelpers', + 'noEmitOnError', + 'outDir', + 'outFile', + 'preserveConstEnums', + 'preserveValueImports', + 'removeComments', + 'sourceMap', + 'sourceRoot', + 'stripInternal', + /* Interop Constraints */ + 'allowSyntheticDefaultImports', + 'esModuleInterop', + 'forceConsistentCasingInFileNames', + 'isolatedDeclarations', + 'isolatedModules', + 'preserveSymlinks', + 'verbatimModuleSyntax', + /* Completeness */ + 'skipDefaultLibCheck', + 'skipLibCheck', + ], + pathPattern: '^compilerOptions$', + }, + ], + }, + }, +]; diff --git a/src/configs/jsx.ts b/src/configs/jsx.ts deleted file mode 100644 index 414f89261e..0000000000 --- a/src/configs/jsx.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { GLOB_REACT } from '../globs'; -import type { TypedFlatConfigItem } from '../types'; - -export const jsx = (): TypedFlatConfigItem[] => { - return [ - { - name: 'nivalis/jsx/setup', - files: [GLOB_REACT], - languageOptions: { - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - }, - ]; -}; diff --git a/src/configs/nextjs.ts b/src/configs/nextjs.ts index 49dfbb5c17..069d78453b 100644 --- a/src/configs/nextjs.ts +++ b/src/configs/nextjs.ts @@ -1,32 +1,27 @@ -import globals from 'globals'; -import { interopDefault } from '../utils'; +import pluginNextjs from '@next/eslint-plugin-next'; import { GLOB_REACT } from '../globs'; -import type { ESLint } from 'eslint'; -import type { TypedFlatConfigItem } from '../types'; - -export const nextjs = async (): Promise => { - const pluginNextjs = await interopDefault( - import('@next/eslint-plugin-next') as unknown as ESLint.Plugin, - ); +import type { Linter } from 'eslint'; +export const nextjs = (): Linter.Config[] => { return [ { files: [GLOB_REACT], name: 'nivalis/nextjs', - languageOptions: { - globals: { - ...globals.serviceworker, - ...globals.browser, - ...globals.node, + settings: { + react: { + version: 'detect', }, + }, + languageOptions: { parserOptions: { ecmaFeatures: { jsx: true, }, }, }, - plugins: { 'nextjs': pluginNextjs }, + plugins: { nextjs: pluginNextjs }, rules: { + 'nextjs/no-html-link-for-pages': 'off', 'nextjs/google-font-display': 'warn', 'nextjs/google-font-preconnect': 'warn', 'nextjs/next-script-for-ga': 'warn', @@ -34,7 +29,6 @@ export const nextjs = async (): Promise => { 'nextjs/no-before-interactive-script-outside-document': 'warn', 'nextjs/no-css-tags': 'warn', 'nextjs/no-head-element': 'warn', - 'nextjs/no-html-link-for-pages': 'warn', 'nextjs/no-img-element': 'warn', 'nextjs/no-page-custom-font': 'warn', 'nextjs/no-styled-jsx-in-document': 'warn', diff --git a/src/configs/node.ts b/src/configs/node.ts index b0275a84f6..6dd9f7220e 100644 --- a/src/configs/node.ts +++ b/src/configs/node.ts @@ -1,56 +1,42 @@ import nodePlugin from 'eslint-plugin-n'; -import globals from 'globals'; import { GLOB_SRC } from '../globs'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const node = (): TypedFlatConfigItem[] => { - return [ - { - name: 'nivalis/node/config', - plugins: { - node: nodePlugin, - }, - languageOptions: { - globals: { - ...globals.node, - ...globals.es2021, - __dirname: 'off', - __filename: 'off', - exports: 'off', - module: 'off', - require: 'off', - }, - }, +export const node = (): Linter.Config[] => [ + { + name: 'nivalis/node/config', + plugins: { + node: nodePlugin, }, - { - files: [GLOB_SRC], - name: 'nivalis/node/rules', - rules: { - 'node/no-deprecated-api': 'error', - 'node/no-extraneous-import': 'error', - 'node/no-extraneous-require': 'error', - 'node/no-exports-assign': 'error', - 'node/no-missing-require': 'error', - 'node/no-process-exit': 'error', - 'node/no-unpublished-bin': 'error', - 'node/no-unpublished-import': 'error', - 'node/no-unpublished-require': 'error', - 'node/no-unsupported-features/es-builtins': 'error', - 'node/no-unsupported-features/node-builtins': [ - 'error', - { - ignores: ['fetch', 'navigator'], - }, - ], - 'node/process-exit-as-throw': 'error', - 'node/hashbang': 'error', - 'node/no-unsupported-features/es-syntax': [ - 'error', - { ignores: ['modules'] }, - ], + }, + { + files: [GLOB_SRC], + name: 'nivalis/node/rules', + rules: { + 'node/no-deprecated-api': 'error', + 'node/no-extraneous-import': 'error', + 'node/no-extraneous-require': 'error', + 'node/no-exports-assign': 'error', + 'node/no-missing-require': 'error', + 'node/no-process-exit': 'error', + 'node/no-unpublished-bin': 'error', + 'node/no-unpublished-import': 'error', + 'node/no-unpublished-require': 'error', + 'node/no-unsupported-features/es-builtins': 'error', + 'node/no-unsupported-features/node-builtins': [ + 'error', + { + ignores: ['fetch', 'navigator'], + }, + ], + 'node/process-exit-as-throw': 'error', + 'node/hashbang': 'error', + 'node/no-unsupported-features/es-syntax': [ + 'error', + { ignores: ['modules'] }, + ], - 'node/no-missing-import': 'off', - }, + 'node/no-missing-import': 'off', }, - ]; -}; + }, +]; diff --git a/src/configs/prettier.ts b/src/configs/prettier.ts index fcaea5836e..34582a3e24 100644 --- a/src/configs/prettier.ts +++ b/src/configs/prettier.ts @@ -1,24 +1,182 @@ import eslintPluginPrettier from 'eslint-plugin-prettier/recommended'; import { DEFAULT_INDENT } from '../constants'; -import type { OptionsPrettier, TypedFlatConfigItem } from '../types'; +import { GLOB_SRC } from '../globs'; +import type { PrettierOptions } from '../options'; +import type { Linter } from 'eslint'; -export const prettier = (options: OptionsPrettier): TypedFlatConfigItem[] => { - const bracketSpacing = options.bracketSpacing ?? true; - const semi = options.semi ?? true; +export const prettier = (options: PrettierOptions): Linter.Config[] => { + if (options === false) { + return []; + } + + const bracketSpacing = options?.bracketSpacing ?? true; + const semi = options?.semi ?? true; const quotes = - options.singleQuote === undefined + options?.singleQuote === undefined ? 'single' : options.singleQuote ? 'single' : 'double'; - const indent = options.tabWidth ?? DEFAULT_INDENT; + const indent = options?.tabWidth ?? DEFAULT_INDENT; return [ { ...eslintPluginPrettier, + files: [GLOB_SRC], name: 'nivalis/prettier/plugin', }, { + files: [GLOB_SRC], + name: 'nivalis/prettier/disable', + rules: { + 'arrow-body-style': 'off', + 'prefer-arrow-callback': 'off', + curly: 'off', + 'no-unexpected-multiline': 'off', + + 'space-unary-word-ops': 'off', + + // Removed in version 1.0.0. + // https://github.com/eslint/eslint/issues/1898 + 'generator-star': 'off', + 'no-comma-dangle': 'off', + 'no-reserved-keys': 'off', + 'no-space-before-semi': 'off', + 'no-wrap-func': 'off', + 'space-after-function-name': 'off', + 'space-before-function-parentheses': 'off', + 'space-in-brackets': 'off', + + // Removed in version 2.0.0. + // https://github.com/eslint/eslint/issues/5032 + 'no-arrow-condition': 'off', + 'space-after-keywords': 'off', + 'space-before-keywords': 'off', + 'space-return-throw-case': 'off', + + // Deprecated since version 3.3.0. + // https://eslint.org/docs/rules/no-spaced-func + 'no-spaced-func': 'off', + + // Deprecated since version 4.0.0. + // https://github.com/eslint/eslint/pull/8286 + 'indent-legacy': 'off', + + // Deprecated since version 8.53.0. + // https://eslint.org/blog/2023/10/deprecating-formatting-rules/ + 'array-bracket-newline': 'off', + 'array-bracket-spacing': 'off', + 'array-element-newline': 'off', + 'arrow-parens': 'off', + 'arrow-spacing': 'off', + 'block-spacing': 'off', + 'brace-style': 'off', + 'comma-dangle': 'off', + 'comma-spacing': 'off', + 'comma-style': 'off', + 'computed-property-spacing': 'off', + 'dot-location': 'off', + 'eol-last': 'off', + 'func-call-spacing': 'off', + 'function-call-argument-newline': 'off', + 'function-paren-newline': 'off', + 'generator-star-spacing': 'off', + 'implicit-arrow-linebreak': 'off', + indent: 'off', + 'jsx-quotes': 'off', + 'key-spacing': 'off', + 'keyword-spacing': 'off', + 'linebreak-style': 'off', + 'lines-around-comment': 'off', + 'max-len': 'off', + 'max-statements-per-line': 'off', + 'multiline-ternary': 'off', + 'new-parens': 'off', + 'newline-per-chained-call': 'off', + 'no-confusing-arrow': 'off', + 'no-extra-parens': 'off', + 'no-extra-semi': 'off', + 'no-floating-decimal': 'off', + 'no-mixed-operators': 'off', + 'no-mixed-spaces-and-tabs': 'off', + 'no-multi-spaces': 'off', + 'no-multiple-empty-lines': 'off', + 'no-tabs': 'off', + 'no-trailing-spaces': 'off', + 'no-whitespace-before-property': 'off', + 'nonblock-statement-body-position': 'off', + 'object-curly-newline': 'off', + 'object-curly-spacing': 'off', + 'object-property-newline': 'off', + 'one-var-declaration-per-line': 'off', + 'operator-linebreak': 'off', + 'padded-blocks': 'off', + 'quote-props': 'off', + quotes: 'off', + 'rest-spread-spacing': 'off', + semi: 'off', + 'semi-spacing': 'off', + 'semi-style': 'off', + 'space-before-blocks': 'off', + 'space-before-function-paren': 'off', + 'space-in-parens': 'off', + 'space-infix-ops': 'off', + 'space-unary-ops': 'off', + 'switch-colon-spacing': 'off', + 'template-curly-spacing': 'off', + 'template-tag-spacing': 'off', + 'wrap-iife': 'off', + 'wrap-regex': 'off', + 'yield-star-spacing': 'off', + + // Deprecated since version 7.0.0. + // https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06 + 'react/jsx-space-before-closing': 'off', + + '@typescript-eslint/lines-around-comment': 'off', + '@typescript-eslint/quotes': 'off', + '@typescript-eslint/block-spacing': 'off', + '@typescript-eslint/brace-style': 'off', + '@typescript-eslint/comma-dangle': 'off', + '@typescript-eslint/comma-spacing': 'off', + '@typescript-eslint/func-call-spacing': 'off', + '@typescript-eslint/indent': 'off', + '@typescript-eslint/key-spacing': 'off', + '@typescript-eslint/keyword-spacing': 'off', + '@typescript-eslint/member-delimiter-style': 'off', + '@typescript-eslint/no-extra-parens': 'off', + '@typescript-eslint/no-extra-semi': 'off', + '@typescript-eslint/object-curly-spacing': 'off', + '@typescript-eslint/semi': 'off', + '@typescript-eslint/space-before-blocks': 'off', + '@typescript-eslint/space-before-function-paren': 'off', + '@typescript-eslint/space-infix-ops': 'off', + '@typescript-eslint/type-annotation-spacing': 'off', + + 'unicorn/template-indent': 'off', + 'unicorn/empty-brace-spaces': 'off', + 'unicorn/no-nested-ternary': 'off', + 'unicorn/number-literal-case': 'off', + + 'react/jsx-child-element-spacing': 'off', + 'react/jsx-closing-bracket-location': 'off', + 'react/jsx-closing-tag-location': 'off', + 'react/jsx-curly-newline': 'off', + 'react/jsx-curly-spacing': 'off', + 'react/jsx-equals-spacing': 'off', + 'react/jsx-first-prop-new-line': 'off', + 'react/jsx-indent': 'off', + 'react/jsx-indent-props': 'off', + 'react/jsx-max-props-per-line': 'off', + 'react/jsx-newline': 'off', + 'react/jsx-one-expression-per-line': 'off', + 'react/jsx-props-no-multi-spaces': 'off', + 'react/jsx-tag-spacing': 'off', + 'react/jsx-wrap-multilines': 'off', + }, + }, + { + files: [GLOB_SRC], name: 'nivalis/prettier/config', rules: { 'prettier/prettier': [ diff --git a/src/configs/promise.ts b/src/configs/promise.ts index 0a9f5e578c..d4223c6991 100644 --- a/src/configs/promise.ts +++ b/src/configs/promise.ts @@ -1,10 +1,10 @@ import pluginPromise from 'eslint-plugin-promise'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const promise = (): TypedFlatConfigItem[] => { +export const promise = (): Linter.Config[] => { return [ { - ...(pluginPromise.configs['flat/recommended'] as TypedFlatConfigItem), + ...(pluginPromise.configs['flat/recommended'] as Linter.Config), name: 'nivalis/promise/setup', }, { diff --git a/src/configs/react.ts b/src/configs/react.ts index a592e2ba39..be81c5040d 100644 --- a/src/configs/react.ts +++ b/src/configs/react.ts @@ -1,12 +1,10 @@ import eslintPluginReactHooks from 'eslint-plugin-react-hooks'; import eslintPluginReact from 'eslint-plugin-react'; import eslintPluginReactCompiler from 'eslint-plugin-react-compiler'; -import globals from 'globals'; -import { HAS_TYPESCRIPT } from '../environment'; import { GLOB_REACT } from '../globs'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const react = (): TypedFlatConfigItem[] => { +export const react = (): Linter.Config[] => { return [ { name: 'nivalis/react/setup', @@ -21,10 +19,6 @@ export const react = (): TypedFlatConfigItem[] => { }, }, languageOptions: { - globals: { - ...globals.serviceworker, - ...globals.browser, - }, parserOptions: { ecmaFeatures: { jsx: true, @@ -36,14 +30,14 @@ export const react = (): TypedFlatConfigItem[] => { name: 'nivalis/react/rules', files: [GLOB_REACT], rules: { - // react-compiler + // React-compiler 'react-compiler/react-compiler': 'error', - // react-hooks + // React-hooks 'react-hooks/exhaustive-deps': 'warn', 'react-hooks/rules-of-hooks': 'error', - // recommended rules react + // Recommended rules react 'react/boolean-prop-naming': [ 'warn', { @@ -133,7 +127,6 @@ export const react = (): TypedFlatConfigItem[] => { warnOnSpreadAttributes: true, }, ], - 'react/jsx-no-undef': 'error', 'react/jsx-no-useless-fragment': 'error', 'react/jsx-uses-react': 'error', 'react/jsx-uses-vars': 'error', @@ -211,177 +204,174 @@ export const react = (): TypedFlatConfigItem[] => { ], 'react/void-dom-elements-no-children': ['error'], - ...(HAS_TYPESCRIPT - ? { - 'react/jsx-no-undef': 'off', - 'react/prop-type': 'off', - } - : {}), + 'react/jsx-no-undef': 'off', + 'react/prop-type': 'off', - // a11y rules - // 'jsx-a11y/accessible-emoji': ['warn'], - // 'jsx-a11y/alt-text': [ - // 'warn', - // { - // area: [], - // elements: ['img', 'object', 'area', 'input[type="image"]'], - // img: [], - // 'input[type="image"]': [], - // object: [], - // }, - // ], - // 'jsx-a11y/anchor-has-content': ['warn', { components: [] }], - // 'jsx-a11y/anchor-is-valid': [ - // 'warn', - // { - // aspects: ['noHref', 'invalidHref', 'preferButton'], - // components: ['Link'], - // specialLink: ['to'], - // }, - // ], - // 'jsx-a11y/aria-activedescendant-has-tabindex': ['warn'], - // 'jsx-a11y/aria-props': ['warn'], - // 'jsx-a11y/aria-proptypes': ['warn'], - // 'jsx-a11y/aria-role': ['warn', { ignoreNonDOM: false }], - // 'jsx-a11y/aria-unsupported-elements': ['warn'], - // 'jsx-a11y/autocomplete-valid': ['off', { inputComponents: [] }], - // 'jsx-a11y/click-events-have-key-events': ['warn'], - // 'jsx-a11y/control-has-associated-label': [ - // 'warn', - // { - // controlComponents: [], - // depth: 5, - // ignoreElements: [ - // 'audio', - // 'canvas', - // 'embed', - // 'input', - // 'textarea', - // 'tr', - // 'video', - // ], - // ignoreRoles: [ - // 'grid', - // 'listbox', - // 'menu', - // 'menubar', - // 'radiogroup', - // 'row', - // 'tablist', - // 'toolbar', - // 'tree', - // 'treegrid', - // ], - // labelAttributes: ['label'], - // }, - // ], - // 'jsx-a11y/heading-has-content': ['warn', { components: [''] }], - // 'jsx-a11y/html-has-lang': ['warn'], - // 'jsx-a11y/iframe-has-title': ['warn'], - // 'jsx-a11y/img-redundant-alt': ['warn'], - // 'jsx-a11y/interactive-supports-focus': ['warn'], - // 'jsx-a11y/label-has-associated-control': [ - // 'warn', - // { - // assert: 'both', - // controlComponents: [], - // depth: 25, - // labelAttributes: [], - // labelComponents: [], - // }, - // ], - // 'jsx-a11y/label-has-for': [ - // 'off', - // { - // allowChildren: false, - // components: [], - // required: { - // every: ['nesting', 'id'], - // }, - // }, - // ], - // 'jsx-a11y/lang': ['warn'], - // 'jsx-a11y/media-has-caption': [ - // 'warn', - // { - // audio: [], - // track: [], - // video: [], - // }, - // ], - // 'jsx-a11y/mouse-events-have-key-events': ['warn'], - // 'jsx-a11y/no-access-key': ['warn'], - // 'jsx-a11y/no-autofocus': ['warn', { ignoreNonDOM: true }], - // 'jsx-a11y/no-distracting-elements': [ - // 'warn', - // { elements: ['marquee', 'blink'] }, - // ], - // 'jsx-a11y/no-interactive-element-to-noninteractive-role': [ - // 'warn', - // { tr: ['none', 'presentation'] }, - // ], - // 'jsx-a11y/no-noninteractive-element-interactions': [ - // 'warn', - // { - // handlers: [ - // 'onClick', - // 'onMouseDown', - // 'onMouseUp', - // 'onKeyPress', - // 'onKeyDown', - // 'onKeyUp', - // ], - // }, - // ], - // 'jsx-a11y/no-noninteractive-element-to-interactive-role': [ - // 'warn', - // { - // li: ['menuitem', 'option', 'row', 'tab', 'treeitem'], - // ol: [ - // 'listbox', - // 'menu', - // 'menubar', - // 'radiogroup', - // 'tablist', - // 'tree', - // 'treegrid', - // ], - // table: ['grid'], - // td: ['gridcell'], - // ul: [ - // 'listbox', - // 'menu', - // 'menubar', - // 'radiogroup', - // 'tablist', - // 'tree', - // 'treegrid', - // ], - // }, - // ], - // 'jsx-a11y/no-noninteractive-tabindex': [ - // 'warn', - // { roles: ['tabpanel'], tags: [] }, - // ], - // 'jsx-a11y/no-onchange': ['off'], - // 'jsx-a11y/no-redundant-roles': ['warn'], - // 'jsx-a11y/no-static-element-interactions': [ - // 'off', - // { - // handlers: [ - // 'onClick', - // 'onMouseDown', - // 'onMouseUp', - // 'onKeyPress', - // 'onKeyDown', - // 'onKeyUp', - // ], - // }, - // ], - // 'jsx-a11y/role-has-required-aria-props': ['warn'], - // 'jsx-a11y/role-supports-aria-props': ['warn'], - // 'jsx-a11y/scope': ['warn'], - // 'jsx-a11y/tabindex-no-positive': ['warn'], + /** a11y rules + 'jsx-a11y/accessible-emoji': ['warn'], + 'jsx-a11y/alt-text': [ + 'warn', + { + area: [], + elements: ['img', 'object', 'area', 'input[type="image"]'], + img: [], + 'input[type="image"]': [], + object: [], + }, + ], + 'jsx-a11y/anchor-has-content': ['warn', { components: [] }], + 'jsx-a11y/anchor-is-valid': [ + 'warn', + { + aspects: ['noHref', 'invalidHref', 'preferButton'], + components: ['Link'], + specialLink: ['to'], + }, + ], + 'jsx-a11y/aria-activedescendant-has-tabindex': ['warn'], + 'jsx-a11y/aria-props': ['warn'], + 'jsx-a11y/aria-proptypes': ['warn'], + 'jsx-a11y/aria-role': ['warn', { ignoreNonDOM: false }], + 'jsx-a11y/aria-unsupported-elements': ['warn'], + 'jsx-a11y/autocomplete-valid': ['off', { inputComponents: [] }], + 'jsx-a11y/click-events-have-key-events': ['warn'], + 'jsx-a11y/control-has-associated-label': [ + 'warn', + { + controlComponents: [], + depth: 5, + ignoreElements: [ + 'audio', + 'canvas', + 'embed', + 'input', + 'textarea', + 'tr', + 'video', + ], + ignoreRoles: [ + 'grid', + 'listbox', + 'menu', + 'menubar', + 'radiogroup', + 'row', + 'tablist', + 'toolbar', + 'tree', + 'treegrid', + ], + labelAttributes: ['label'], + }, + ], + 'jsx-a11y/heading-has-content': ['warn', { components: [''] }], + 'jsx-a11y/html-has-lang': ['warn'], + 'jsx-a11y/iframe-has-title': ['warn'], + 'jsx-a11y/img-redundant-alt': ['warn'], + 'jsx-a11y/interactive-supports-focus': ['warn'], + 'jsx-a11y/label-has-associated-control': [ + 'warn', + { + assert: 'both', + controlComponents: [], + depth: 25, + labelAttributes: [], + labelComponents: [], + }, + ], + 'jsx-a11y/label-has-for': [ + 'off', + { + allowChildren: false, + components: [], + required: { + every: ['nesting', 'id'], + }, + }, + ], + 'jsx-a11y/lang': ['warn'], + 'jsx-a11y/media-has-caption': [ + 'warn', + { + audio: [], + track: [], + video: [], + }, + ], + 'jsx-a11y/mouse-events-have-key-events': ['warn'], + 'jsx-a11y/no-access-key': ['warn'], + 'jsx-a11y/no-autofocus': ['warn', { ignoreNonDOM: true }], + 'jsx-a11y/no-distracting-elements': [ + 'warn', + { elements: ['marquee', 'blink'] }, + ], + 'jsx-a11y/no-interactive-element-to-noninteractive-role': [ + 'warn', + { tr: ['none', 'presentation'] }, + ], + 'jsx-a11y/no-noninteractive-element-interactions': [ + 'warn', + { + handlers: [ + 'onClick', + 'onMouseDown', + 'onMouseUp', + 'onKeyPress', + 'onKeyDown', + 'onKeyUp', + ], + }, + ], + 'jsx-a11y/no-noninteractive-element-to-interactive-role': [ + 'warn', + { + li: ['menuitem', 'option', 'row', 'tab', 'treeitem'], + ol: [ + 'listbox', + 'menu', + 'menubar', + 'radiogroup', + 'tablist', + 'tree', + 'treegrid', + ], + table: ['grid'], + td: ['gridcell'], + ul: [ + 'listbox', + 'menu', + 'menubar', + 'radiogroup', + 'tablist', + 'tree', + 'treegrid', + ], + }, + ], + 'jsx-a11y/no-noninteractive-tabindex': [ + 'warn', + { roles: ['tabpanel'], tags: [] }, + ], + 'jsx-a11y/no-onchange': ['off'], + 'jsx-a11y/no-redundant-roles': ['warn'], + 'jsx-a11y/no-static-element-interactions': [ + 'off', + { + handlers: [ + 'onClick', + 'onMouseDown', + 'onMouseUp', + 'onKeyPress', + 'onKeyDown', + 'onKeyUp', + ], + }, + ], + 'jsx-a11y/role-has-required-aria-props': ['warn'], + 'jsx-a11y/role-supports-aria-props': ['warn'], + 'jsx-a11y/scope': ['warn'], + 'jsx-a11y/tabindex-no-positive': ['warn'], + */ }, }, ]; diff --git a/src/configs/regexp.ts b/src/configs/regexp.ts index 8daaa8d030..8a8498fd57 100644 --- a/src/configs/regexp.ts +++ b/src/configs/regexp.ts @@ -1,7 +1,7 @@ import { configs } from 'eslint-plugin-regexp'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const regexp = (): TypedFlatConfigItem[] => { +export const regexp = (): Linter.Config[] => { return [ { ...configs['flat/recommended'], diff --git a/src/configs/sort-json.ts b/src/configs/sort-json.ts deleted file mode 100644 index 49af1e5a36..0000000000 --- a/src/configs/sort-json.ts +++ /dev/null @@ -1,221 +0,0 @@ -import type { TypedFlatConfigItem } from '../types'; - -/** - * Sort package.json - * Requires `jsonc` config - * @returns {TypedFlatConfigItem[]} - Array of config items - */ -export const sortPackageJson = (): TypedFlatConfigItem[] => { - return [ - { - files: ['**/package.json'], - name: 'nivalis/sort/package-json', - rules: { - 'jsonc/sort-array-values': [ - 'error', - { - order: { type: 'asc' }, - pathPattern: '^files$', - }, - ], - 'jsonc/sort-keys': [ - 'error', - { - order: [ - 'publisher', - 'name', - 'displayName', - 'type', - 'version', - 'private', - 'packageManager', - 'description', - 'author', - 'contributors', - 'license', - 'funding', - 'homepage', - 'repository', - 'bugs', - 'keywords', - 'categories', - 'sideEffects', - 'exports', - 'main', - 'module', - 'unpkg', - 'jsdelivr', - 'types', - 'typesVersions', - 'bin', - 'icon', - 'files', - 'engines', - 'activationEvents', - 'contributes', - 'scripts', - 'peerDependencies', - 'peerDependenciesMeta', - 'dependencies', - 'optionalDependencies', - 'devDependencies', - 'pnpm', - 'overrides', - 'resolutions', - 'husky', - 'simple-git-hooks', - 'lint-staged', - 'eslintConfig', - ], - pathPattern: '^$', - }, - { - order: { type: 'asc' }, - pathPattern: - '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$', - }, - { - order: { type: 'asc' }, - pathPattern: '^(?:resolutions|overrides|pnpm.overrides)$', - }, - { - order: ['types', 'import', 'require', 'default'], - pathPattern: '^exports.*$', - }, - ], - }, - }, - ]; -}; - -/** - * Sort tsconfig.json - * Requires `jsonc` config - * @returns {TypedFlatConfigItem[]} - Array of config items - */ -export const sortTsconfig = (): TypedFlatConfigItem[] => { - return [ - { - files: ['**/tsconfig.json', '**/tsconfig.*.json'], - name: 'nivalis/sort/tsconfig-json', - rules: { - 'jsonc/sort-keys': [ - 'error', - { - order: [ - 'extends', - 'compilerOptions', - 'references', - 'files', - 'include', - 'exclude', - ], - pathPattern: '^$', - }, - { - order: [ - /* Projects */ - 'incremental', - 'composite', - 'tsBuildInfoFile', - 'disableSourceOfProjectReferenceRedirect', - 'disableSolutionSearching', - 'disableReferencedProjectLoad', - /* Language and Environment */ - 'target', - 'jsx', - 'jsxFactory', - 'jsxFragmentFactory', - 'jsxImportSource', - 'lib', - 'moduleDetection', - 'noLib', - 'reactNamespace', - 'useDefineForClassFields', - 'emitDecoratorMetadata', - 'experimentalDecorators', - /* Modules */ - 'baseUrl', - 'rootDir', - 'rootDirs', - 'customConditions', - 'module', - 'moduleResolution', - 'moduleSuffixes', - 'noResolve', - 'paths', - 'resolveJsonModule', - 'resolvePackageJsonExports', - 'resolvePackageJsonImports', - 'typeRoots', - 'types', - 'allowArbitraryExtensions', - 'allowImportingTsExtensions', - 'allowUmdGlobalAccess', - /* JavaScript Support */ - 'allowJs', - 'checkJs', - 'maxNodeModuleJsDepth', - /* Type Checking */ - 'strict', - 'strictBindCallApply', - 'strictFunctionTypes', - 'strictNullChecks', - 'strictPropertyInitialization', - 'allowUnreachableCode', - 'allowUnusedLabels', - 'alwaysStrict', - 'exactOptionalPropertyTypes', - 'noFallthroughCasesInSwitch', - 'noImplicitAny', - 'noImplicitOverride', - 'noImplicitReturns', - 'noImplicitThis', - 'noPropertyAccessFromIndexSignature', - 'noUncheckedIndexedAccess', - 'noUnusedLocals', - 'noUnusedParameters', - 'useUnknownInCatchVariables', - /* Emit */ - 'declaration', - 'declarationDir', - 'declarationMap', - 'downlevelIteration', - 'emitBOM', - 'emitDeclarationOnly', - 'importHelpers', - 'importsNotUsedAsValues', - 'inlineSourceMap', - 'inlineSources', - 'mapRoot', - 'newLine', - 'noEmit', - 'noEmitHelpers', - 'noEmitOnError', - 'outDir', - 'outFile', - 'preserveConstEnums', - 'preserveValueImports', - 'removeComments', - 'sourceMap', - 'sourceRoot', - 'stripInternal', - /* Interop Constraints */ - 'allowSyntheticDefaultImports', - 'esModuleInterop', - 'forceConsistentCasingInFileNames', - 'isolatedDeclarations', - 'isolatedModules', - 'preserveSymlinks', - 'verbatimModuleSyntax', - /* Completeness */ - 'skipDefaultLibCheck', - 'skipLibCheck', - ], - pathPattern: '^compilerOptions$', - }, - ], - }, - }, - ]; -}; diff --git a/src/configs/stylistic.ts b/src/configs/stylistic.ts index bac5e626ec..7cd1d0f76e 100644 --- a/src/configs/stylistic.ts +++ b/src/configs/stylistic.ts @@ -1,8 +1,7 @@ import pluginStylistic from '@stylistic/eslint-plugin'; import { DEFAULT_INDENT, PADDING_LINES } from '../constants'; import { GLOB_SRC } from '../globs'; -import type { TypedFlatConfigItem } from '../types'; -import type { ESLint } from 'eslint'; +import type { ESLint, Linter } from 'eslint'; const options = { indent: DEFAULT_INDENT, @@ -11,7 +10,7 @@ const options = { semi: true, } as const; -export const stylistic = (): TypedFlatConfigItem[] => { +export const stylistic = (): Linter.Config[] => { const { indent, jsx, quotes, semi } = options; const config = pluginStylistic.configs.customize({ @@ -29,10 +28,14 @@ export const stylistic = (): TypedFlatConfigItem[] => { return [ { - name: 'nivalis/stylistic/rules', + name: 'nivalis/stylistic/plugin', plugins: { style: pluginStylistic as unknown as ESLint.Plugin, }, + }, + { + files: [GLOB_SRC], + name: 'nivalis/stylistic/rules', rules: { ...config.rules, curly: ['error', 'multi-line', 'consistent'], @@ -87,112 +90,101 @@ export const stylistic = (): TypedFlatConfigItem[] => { 'style/indent-binary-ops': ['off'], }, }, - // { - // name: 'nivalis/stylistic/yaml', - // files: [GLOB_YAML], - // rules: { - // 'style/spaced-comment': 'off', - // }, - // }, + { + files: [GLOB_SRC], + name: 'nivalis/stylistic/disable', + rules: { + 'style/array-bracket-newline': 'off', + 'style/array-bracket-spacing': 'off', + 'style/array-element-newline': 'off', + 'style/arrow-parens': 'off', + 'style/arrow-spacing': 'off', + 'style/babel/object-curly-spacing': 'off', + 'style/babel/quotes': 'off', + 'style/babel/semi': 'off', + 'style/block-spacing': 'off', + 'style/brace-style': 'off', + 'style/comma-dangle': 'off', + 'style/comma-spacing': 'off', + 'style/comma-style': 'off', + 'style/computed-property-spacing': 'off', + 'style/curly': 'off', + 'style/dot-location': 'off', + 'style/eol-last': 'off', + 'style/func-call-spacing': 'off', + 'style/function-call-argument-newline': 'off', + 'style/function-paren-newline': 'off', + 'style/generator-star-spacing': 'off', + 'style/implicit-arrow-linebreak': 'off', + 'style/indent': 'off', + 'style/jsx-child-element-spacing': 'off', + 'style/jsx-closing-bracket-location': 'off', + 'style/jsx-closing-tag-location': 'off', + 'style/jsx-curly-newline': 'off', + 'style/jsx-curly-spacing': 'off', + 'style/jsx-equals-spacing': 'off', + 'style/jsx-first-prop-new-line': 'off', + 'style/jsx-indent': 'off', + 'style/jsx-indent-props': 'off', + 'style/jsx-max-props-per-line': 'off', + 'style/jsx-newline': 'off', + 'style/jsx-one-expression-per-line': 'off', + 'style/jsx-props-no-multi-spaces': 'off', + 'style/jsx-quotes': 'off', + 'style/jsx-tag-spacing': 'off', + 'style/jsx-wrap-multilines': 'off', + 'style/key-spacing': 'off', + 'style/keyword-spacing': 'off', + 'style/linebreak-style': 'off', + 'style/lines-around-comment': 'off', + 'style/max-len': 'off', + 'style/max-statements-per-line': 'off', + 'style/member-delimiter-style': 'off', + 'style/multiline-comment-style': 'off', + 'style/multiline-ternary': 'off', + 'style/new-parens': 'off', + 'style/newline-per-chained-call': 'off', + 'style/no-confusing-arrow': 'off', + 'style/no-extra-parens': 'off', + 'style/no-extra-semi': 'off', + 'style/no-floating-decimal': 'off', + 'style/no-mixed-operators': 'off', + 'style/no-mixed-spaces-and-tabs': 'off', + 'style/no-multi-spaces': 'off', + 'style/no-multiple-empty-lines': 'off', + 'style/no-tabs': 'off', + 'style/no-trailing-spaces': 'off', + 'style/no-unexpected-multiline': 'off', + 'style/no-whitespace-before-property': 'off', + 'style/nonblock-statement-body-position': 'off', + 'style/object-curly-newline': 'off', + 'style/object-curly-spacing': 'off', + 'style/object-property-newline': 'off', + 'style/one-var-declaration-per-line': 'off', + 'style/operator-linebreak': 'off', + 'style/padded-blocks': 'off', + 'style/quote-props': 'off', + 'style/quotes': 'off', + 'style/rest-spread-spacing': 'off', + 'style/semi': 'off', + 'style/semi-spacing': 'off', + 'style/semi-style': 'off', + 'style/space-before-blocks': 'off', + 'style/space-before-function-paren': 'off', + 'style/space-in-parens': 'off', + 'style/space-infix-ops': 'off', + 'style/space-unary-ops': 'off', + 'style/standard/array-bracket-even-spacing': 'off', + 'style/standard/computed-property-even-spacing': 'off', + 'style/standard/object-curly-even-spacing': 'off', + 'style/switch-colon-spacing': 'off', + 'style/template-curly-spacing': 'off', + 'style/template-tag-spacing': 'off', + 'style/type-annotation-spacing': 'off', + 'style/wrap-iife': 'off', + 'style/wrap-regex': 'off', + 'style/yield-star-spacing': 'off', + }, + }, ]; }; - -export const prettierStylistic = (): TypedFlatConfigItem[] => [ - { - name: 'nivalis/prettier/disables', - files: [GLOB_SRC], - // Rules disabled by Prettier normally - rules: { - 'style/array-bracket-newline': 'off', - 'style/array-bracket-spacing': 'off', - 'style/array-element-newline': 'off', - 'style/arrow-parens': 'off', - 'style/arrow-spacing': 'off', - 'style/babel/object-curly-spacing': 'off', - 'style/babel/quotes': 'off', - 'style/babel/semi': 'off', - 'style/block-spacing': 'off', - 'style/brace-style': 'off', - 'style/comma-dangle': 'off', - 'style/comma-spacing': 'off', - 'style/comma-style': 'off', - 'style/computed-property-spacing': 'off', - 'style/curly': 'off', - 'style/dot-location': 'off', - 'style/eol-last': 'off', - 'style/func-call-spacing': 'off', - 'style/function-call-argument-newline': 'off', - 'style/function-paren-newline': 'off', - 'style/generator-star-spacing': 'off', - 'style/implicit-arrow-linebreak': 'off', - 'style/indent': 'off', - 'style/jsx-child-element-spacing': 'off', - 'style/jsx-closing-bracket-location': 'off', - 'style/jsx-closing-tag-location': 'off', - 'style/jsx-curly-newline': 'off', - 'style/jsx-curly-spacing': 'off', - 'style/jsx-equals-spacing': 'off', - 'style/jsx-first-prop-new-line': 'off', - 'style/jsx-indent': 'off', - 'style/jsx-indent-props': 'off', - 'style/jsx-max-props-per-line': 'off', - 'style/jsx-newline': 'off', - 'style/jsx-one-expression-per-line': 'off', - 'style/jsx-props-no-multi-spaces': 'off', - 'style/jsx-quotes': 'off', - 'style/jsx-tag-spacing': 'off', - 'style/jsx-wrap-multilines': 'off', - 'style/key-spacing': 'off', - 'style/keyword-spacing': 'off', - 'style/linebreak-style': 'off', - 'style/lines-around-comment': 'off', - 'style/max-len': 'off', - 'style/max-statements-per-line': 'off', - 'style/member-delimiter-style': 'off', - 'style/multiline-comment-style': 'off', - 'style/multiline-ternary': 'off', - 'style/new-parens': 'off', - 'style/newline-per-chained-call': 'off', - 'style/no-confusing-arrow': 'off', - 'style/no-extra-parens': 'off', - 'style/no-extra-semi': 'off', - 'style/no-floating-decimal': 'off', - 'style/no-mixed-operators': 'off', - 'style/no-mixed-spaces-and-tabs': 'off', - 'style/no-multi-spaces': 'off', - 'style/no-multiple-empty-lines': 'off', - 'style/no-tabs': 'off', - 'style/no-trailing-spaces': 'off', - 'style/no-unexpected-multiline': 'off', - 'style/no-whitespace-before-property': 'off', - 'style/nonblock-statement-body-position': 'off', - 'style/object-curly-newline': 'off', - 'style/object-curly-spacing': 'off', - 'style/object-property-newline': 'off', - 'style/one-var-declaration-per-line': 'off', - 'style/operator-linebreak': 'off', - 'style/padded-blocks': 'off', - 'style/quote-props': 'off', - 'style/quotes': 'off', - 'style/rest-spread-spacing': 'off', - 'style/semi': 'off', - 'style/semi-spacing': 'off', - 'style/semi-style': 'off', - 'style/space-before-blocks': 'off', - 'style/space-before-function-paren': 'off', - 'style/space-in-parens': 'off', - 'style/space-infix-ops': 'off', - 'style/space-unary-ops': 'off', - 'style/standard/array-bracket-even-spacing': 'off', - 'style/standard/computed-property-even-spacing': 'off', - 'style/standard/object-curly-even-spacing': 'off', - 'style/switch-colon-spacing': 'off', - 'style/template-curly-spacing': 'off', - 'style/template-tag-spacing': 'off', - 'style/type-annotation-spacing': 'off', - 'style/wrap-iife': 'off', - 'style/wrap-regex': 'off', - 'style/yield-star-spacing': 'off', - }, - }, -]; diff --git a/src/configs/tailwindcss.ts b/src/configs/tailwindcss.ts index 8e39643362..21fc899638 100644 --- a/src/configs/tailwindcss.ts +++ b/src/configs/tailwindcss.ts @@ -1,15 +1,26 @@ +import path from 'node:path'; +import { existsSync } from 'node:fs'; +import tailwind from 'eslint-plugin-tailwindcss'; import { GLOB_REACT } from '../globs'; -import { interopDefault } from '../utils'; -import type { OptionsTailwindCSS, TypedFlatConfigItem } from '../types'; -import type { ESLint } from 'eslint'; +import type { ESLint, Linter } from 'eslint'; +import type { TailwindOptions } from '../options'; -export const tailwindcss = async ( - options: OptionsTailwindCSS, -): Promise => { - const tailwind = await interopDefault( - import('eslint-plugin-tailwindcss') as unknown as ESLint.Plugin, +export const tailwindcss = (options: TailwindOptions): Linter.Config[] => { + if (options === false) { + return []; + } + + const configPath = path.join( + process.cwd(), + options?.configPath ?? './tailwind.config.ts', ); + if (!existsSync(configPath)) { + throw new Error( + `Tailwind config not found. The file ${configPath} does not exist. Please check your configuration.`, + ); + } + return [ { name: 'nivalis/tailwindcss', @@ -20,7 +31,7 @@ export const tailwindcss = async ( settings: { tailwindcss: { callees: ['cn', 'classnames', 'clsx', 'cva'], - config: options.configPath || 'tailwind.config.ts', + config: configPath, /** * Performance issue with the plugin, somewhat mitigated setting cssFiles to an empty array. * @see https://github.com/francoismassart/eslint-plugin-tailwindcss/issues/276 diff --git a/src/configs/typescript.ts b/src/configs/typescript.ts index feb102fd8b..20911b6a22 100644 --- a/src/configs/typescript.ts +++ b/src/configs/typescript.ts @@ -1,186 +1,82 @@ import tseslint from 'typescript-eslint'; -import { GLOB_JS, GLOB_TS, GLOB_TSX } from '../globs'; -import type { OptionsTypescript, TypedFlatConfigItem } from '../types'; +import { GLOB_SRC_TS } from '../globs'; +import type { TSConfigOptions } from '../options'; +import type { Linter } from 'eslint'; -// eslint-disable-next-line max-lines-per-function -export const typescript = ( - options: OptionsTypescript, -): TypedFlatConfigItem[] => { - const tsconfigPath = options?.configPath ?? undefined; +export const typescript = (options?: TSConfigOptions): Linter.Config[] => { + if (options === false) { + return []; + } - return [ + const configs: Linter.Config[] = [ { - name: 'nivalis/typescript/plugin', - files: [GLOB_TS, GLOB_TSX], - plugins: { - '@typescript-eslint': tseslint.plugin, - }, - languageOptions: { - parser: tseslint.parser, - }, + files: [GLOB_SRC_TS], + ...(tseslint.configs.base as unknown as Linter.Config[]), }, - - ...(tsconfigPath - ? [ - ...tseslint.configs.strictTypeChecked.map(config => ({ - ...config, - files: [GLOB_TS, GLOB_TSX], - })), - ...tseslint.configs.stylisticTypeChecked.map(config => ({ - ...config, - files: [GLOB_TS, GLOB_TSX], - })), - { - files: [GLOB_TS, GLOB_TSX], - name: 'nivalis/typescript/languageOptions', - languageOptions: { - parserOptions: { - projectService: { - allowDefaultProject: ['./*.js'], - defaultProject: tsconfigPath, - }, - tsconfigRootDir: process.cwd(), - }, - }, - }, - { - files: [GLOB_TS, GLOB_TSX], - name: 'nivalis/typescript/typed-rules', - rules: { - 'dot-notation': 'off', - 'no-implied-eval': 'off', - 'no-throw-literal': 'off', - 'prefer-promise-reject-errors': 'off', - 'require-await': 'off', - 'return-await': 'off', - - '@typescript-eslint/return-await': ['error', 'always'], - '@typescript-eslint/strict-boolean-expressions': [ - 'off', - { allowNullableBoolean: true, allowNullableObject: true }, - ], - '@typescript-eslint/no-unnecessary-condition': 'off', - '@typescript-eslint/use-unknown-in-catch-callback-variable': - 'warn', - '@typescript-eslint/await-thenable': 'error', - '@typescript-eslint/consistent-type-exports': [ - 'error', - { fixMixedExportsWithInlineTypeSpecifier: true }, - ], - '@typescript-eslint/dot-notation': [ - 'error', - { allowKeywords: true }, - ], - '@typescript-eslint/naming-convention': [ - 'warn', - { format: ['PascalCase', 'camelCase'], selector: 'function' }, - ], - '@typescript-eslint/no-array-delete': 'error', - '@typescript-eslint/no-base-to-string': 'error', - '@typescript-eslint/no-confusing-void-expression': 'error', - '@typescript-eslint/no-duplicate-type-constituents': 'error', - '@typescript-eslint/no-explicit-any': 'warn', - '@typescript-eslint/no-floating-promises': [ - 'error', - { ignoreIIFE: true, ignoreVoid: true }, - ], - '@typescript-eslint/no-for-in-array': 'error', - '@typescript-eslint/no-implied-eval': 'error', - '@typescript-eslint/no-meaningless-void-operator': 'error', - '@typescript-eslint/no-misused-promises': [ - 'error', - { - checksVoidReturn: { - arguments: false, - attributes: false, - }, - }, - ], - '@typescript-eslint/no-mixed-enums': 'error', - '@typescript-eslint/no-non-null-assertion': 'error', - '@typescript-eslint/no-redundant-type-constituents': ['error'], - '@typescript-eslint/no-unnecessary-boolean-literal-compare': - 'error', - '@typescript-eslint/no-unnecessary-template-expression': 'error', - '@typescript-eslint/no-unnecessary-type-arguments': 'error', - '@typescript-eslint/no-unnecessary-type-assertion': ['error'], - '@typescript-eslint/no-unsafe-argument': ['error'], - '@typescript-eslint/no-unsafe-assignment': ['warn'], - '@typescript-eslint/no-unsafe-call': ['warn'], - '@typescript-eslint/no-unsafe-enum-comparison': 'error', - '@typescript-eslint/no-unsafe-member-access': ['warn'], - '@typescript-eslint/no-unsafe-return': ['warn'], - '@typescript-eslint/non-nullable-type-assertion-style': 'error', - '@typescript-eslint/only-throw-error': 'error', - '@typescript-eslint/prefer-includes': 'error', - '@typescript-eslint/prefer-nullish-coalescing': [ - 'error', - { - ignoreConditionalTests: true, - ignoreMixedLogicalExpressions: true, - ignorePrimitives: { number: true, string: true }, - }, - ], - '@typescript-eslint/prefer-optional-chain': ['error'], - '@typescript-eslint/prefer-promise-reject-errors': 'error', - '@typescript-eslint/prefer-reduce-type-parameter': 'error', - '@typescript-eslint/prefer-return-this-type': 'error', - '@typescript-eslint/prefer-string-starts-ends-with': 'error', - '@typescript-eslint/promise-function-async': 'error', - '@typescript-eslint/require-await': ['error'], - '@typescript-eslint/restrict-plus-operands': 'error', - '@typescript-eslint/restrict-template-expressions': [ - 'warn', - { allowNumber: true }, - ], - '@typescript-eslint/switch-exhaustiveness-check': 'error', - '@typescript-eslint/unbound-method': 'error', - '@typescript-eslint/consistent-type-assertions': [ - 'error', - { - assertionStyle: 'as', - objectLiteralTypeAssertions: 'allow-as-parameter', - }, - ], - }, - }, - { - files: [GLOB_JS], - ...tseslint.configs.disableTypeChecked, - }, - ] - : [ - ...tseslint.configs.strict.map(config => ({ - ...config, - files: [GLOB_TS, GLOB_TSX], - })), - - ...tseslint.configs.stylistic.map(config => ({ - ...config, - files: [GLOB_TS, GLOB_TSX], - })), - ]), - { - files: [GLOB_TS, GLOB_TSX], - name: 'nivalis/typescript/rules', + files: [GLOB_SRC_TS], + name: 'nivalis/typescript/base', rules: { - 'default-param-last': 'off', - 'no-array-constructor': 'off', + 'constructor-super': 'off', + 'getter-return': 'off', + 'no-const-assign': 'off', + 'no-dupe-args': 'off', + 'no-duplicate-imports': 'off', 'no-dupe-class-members': 'off', + 'no-dupe-keys': 'off', + 'no-func-assign': 'off', + 'no-import-assign': 'off', + 'no-new-symbol': 'off', + 'no-new-native-nonconstructor': 'off', + 'no-obj-calls': 'off', + 'no-redeclare': 'off', + 'no-setter-return': 'off', + 'no-this-before-super': 'off', + 'no-undef': 'off', + 'no-undefined': 'off', + 'no-unreachable': 'off', + 'no-unsafe-negation': 'off', + 'no-array-constructor': 'off', + '@typescript-eslint/no-array-constructor': 'error', + '@typescript-eslint/no-dynamic-delete': 'error', + '@typescript-eslint/no-empty-object-type': 'error', + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', + '@typescript-eslint/no-non-null-asserted-optional-chain': 'error', + '@typescript-eslint/no-require-imports': 'error', + '@typescript-eslint/no-unnecessary-type-constraint': 'error', + '@typescript-eslint/no-unsafe-declaration-merging': 'error', + '@typescript-eslint/no-unsafe-function-type': 'error', + 'no-unused-expressions': 'off', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + vars: 'all', + args: 'after-used', + ignoreRestSiblings: true, + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'no-useless-constructor': 'off', + '@typescript-eslint/no-useless-constructor': 'error', + '@typescript-eslint/prefer-as-const': 'error', + '@typescript-eslint/prefer-literal-enum-member': 'error', + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@typescript-eslint/consistent-type-assertions': 'error', + '@typescript-eslint/no-confusing-non-null-assertion': 'error', 'no-empty-function': 'off', + '@typescript-eslint/prefer-for-of': 'error', + '@typescript-eslint/prefer-function-type': 'error', + 'default-param-last': 'off', 'no-invalid-this': 'off', 'no-loop-func': 'off', 'no-loss-of-precision': 'off', 'no-magic-numbers': 'off', - 'no-redeclare': 'off', 'no-restricted-imports': 'off', 'no-shadow': 'off', - 'no-undef': 'off', - 'no-unused-expressions': 'off', - 'no-unused-vars': 'off', 'no-use-before-define': 'off', - 'no-useless-constructor': 'off', // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful '@typescript-eslint/method-signature-style': ['error', 'property'], @@ -189,21 +85,10 @@ export const typescript = ( '@typescript-eslint/ban-ts-comment': [ 'error', { - minimumDescriptionLength: 4, + minimumDescriptionLength: 10, 'ts-expect-error': 'allow-with-description', }, ], - '@typescript-eslint/ban-tslint-comment': ['error'], - '@typescript-eslint/no-unused-vars': [ - 'error', - { - vars: 'all', - args: 'after-used', - ignoreRestSiblings: true, - argsIgnorePattern: '^_', - varsIgnorePattern: '^_', - }, - ], '@typescript-eslint/no-shadow': [ 'warn', { @@ -235,8 +120,6 @@ export const typescript = ( ], '@typescript-eslint/default-param-last': ['error'], '@typescript-eslint/member-ordering': ['error'], - '@typescript-eslint/no-array-constructor': ['error'], - '@typescript-eslint/no-confusing-non-null-assertion': 'error', '@typescript-eslint/no-dupe-class-members': 'error', '@typescript-eslint/no-duplicate-enum-values': ['error'], '@typescript-eslint/no-empty-function': [ @@ -274,15 +157,11 @@ export const typescript = ( 'error', { allowDeclarations: false, allowDefinitionFiles: false }, ], - '@typescript-eslint/no-non-null-asserted-nullish-coalescing': ['error'], - '@typescript-eslint/no-non-null-asserted-optional-chain': ['error'], '@typescript-eslint/no-redeclare': 'error', - '@typescript-eslint/no-require-imports': 'error', '@typescript-eslint/no-this-alias': [ 'error', { allowDestructuring: true }, ], - '@typescript-eslint/no-unnecessary-type-constraint': ['error'], '@typescript-eslint/no-unused-expressions': [ 'error', { @@ -301,17 +180,11 @@ export const typescript = ( variables: true, }, ], - '@typescript-eslint/no-useless-constructor': ['error'], '@typescript-eslint/no-useless-empty-export': ['error'], '@typescript-eslint/parameter-properties': [ 'error', { prefer: 'parameter-property' }, ], - '@typescript-eslint/prefer-as-const': ['error'], - '@typescript-eslint/prefer-for-of': ['error'], - '@typescript-eslint/prefer-function-type': ['error'], - '@typescript-eslint/prefer-literal-enum-member': ['error'], - '@typescript-eslint/prefer-namespace-keyword': ['error'], '@typescript-eslint/triple-slash-reference': [ 'warn', { lib: 'never', path: 'never', types: 'never' }, @@ -322,31 +195,148 @@ export const typescript = ( ], }, }, + ]; - { - files: ['**/*.d.?([cm])ts'], - name: 'nivalis/typescript/disables/dts', - rules: { - 'eslint-comments/no-unlimited-disable': 'off', - 'import/no-duplicates': 'off', - 'no-restricted-syntax': 'off', - 'unused-imports/no-unused-vars': 'off', - }, + configs.push({ + files: ['**/*.d.ts'], + name: 'nivalis/typescript/disables/dts', + rules: { + 'eslint-comments/no-unlimited-disable': 'off', + 'import/no-duplicates': 'off', + 'no-restricted-syntax': 'off', + 'init-declarations': 'off', + 'unused-imports/no-unused-vars': 'off', }, - { - files: ['**/*.{test,spec}.ts?(x)'], - name: 'nivalis/typescript/disables/test', - rules: { - 'no-unused-expressions': 'off', + }); + + if (options?.disableTypeChecking !== true) { + configs.push( + { + files: [GLOB_SRC_TS], + name: 'nivalis/typescript/type-checked', + rules: { + '@typescript-eslint/no-deprecated': 'error', + '@typescript-eslint/no-dynamic-delete': 'error', + '@typescript-eslint/no-empty-object-type': 'error', + '@typescript-eslint/no-for-in-array': 'error', + 'no-implied-eval': 'off', + '@typescript-eslint/no-implied-eval': 'error', + '@typescript-eslint/no-unnecessary-type-arguments': 'error', + '@typescript-eslint/no-unnecessary-type-assertion': 'error', + '@typescript-eslint/no-unnecessary-type-parameters': 'error', + '@typescript-eslint/no-unsafe-argument': 'error', + '@typescript-eslint/no-unsafe-assignment': 'warn', + '@typescript-eslint/no-unsafe-call': 'warn', + '@typescript-eslint/no-unsafe-declaration-merging': 'error', + '@typescript-eslint/no-unsafe-enum-comparison': 'error', + '@typescript-eslint/no-unsafe-function-type': 'error', + '@typescript-eslint/no-unsafe-member-access': 'warn', + '@typescript-eslint/no-unsafe-return': 'warn', + '@typescript-eslint/no-unsafe-unary-minus': 'error', + 'no-throw-literal': 'off', + '@typescript-eslint/only-throw-error': 'error', + 'prefer-promise-reject-errors': 'off', + '@typescript-eslint/prefer-promise-reject-errors': 'error', + '@typescript-eslint/prefer-reduce-type-parameter': 'error', + '@typescript-eslint/prefer-return-this-type': 'error', + 'require-await': 'off', + '@typescript-eslint/require-await': 'error', + '@typescript-eslint/restrict-plus-operands': ['error'], + 'no-return-await': 'off', + '@typescript-eslint/ban-tslint-comment': 'error', + '@typescript-eslint/non-nullable-type-assertion-style': 'error', + '@typescript-eslint/prefer-find': 'error', + '@typescript-eslint/prefer-includes': 'error', + '@typescript-eslint/prefer-regexp-exec': 'error', + '@typescript-eslint/prefer-string-starts-ends-with': 'error', + 'dot-notation': 'off', + 'return-await': 'off', + + '@typescript-eslint/return-await': ['error', 'always'], + '@typescript-eslint/strict-boolean-expressions': [ + 'off', + { allowNullableBoolean: true, allowNullableObject: true }, + ], + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/use-unknown-in-catch-callback-variable': 'warn', + '@typescript-eslint/await-thenable': 'error', + '@typescript-eslint/consistent-type-exports': [ + 'error', + { fixMixedExportsWithInlineTypeSpecifier: true }, + ], + '@typescript-eslint/dot-notation': ['error', { allowKeywords: true }], + '@typescript-eslint/naming-convention': [ + 'warn', + { format: ['PascalCase', 'camelCase'], selector: 'function' }, + ], + '@typescript-eslint/no-array-delete': 'error', + '@typescript-eslint/no-base-to-string': 'error', + '@typescript-eslint/no-confusing-void-expression': 'error', + '@typescript-eslint/no-duplicate-type-constituents': 'error', + '@typescript-eslint/no-floating-promises': [ + 'error', + { ignoreIIFE: true, ignoreVoid: true }, + ], + '@typescript-eslint/no-meaningless-void-operator': 'error', + '@typescript-eslint/no-misused-promises': [ + 'error', + { + checksVoidReturn: { + arguments: false, + attributes: false, + }, + }, + ], + '@typescript-eslint/no-mixed-enums': 'error', + '@typescript-eslint/no-non-null-assertion': 'error', + '@typescript-eslint/no-redundant-type-constituents': ['error'], + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', + '@typescript-eslint/no-unnecessary-template-expression': 'error', + '@typescript-eslint/prefer-nullish-coalescing': [ + 'error', + { + ignoreConditionalTests: true, + ignoreMixedLogicalExpressions: true, + ignorePrimitives: { number: true, string: true }, + }, + ], + '@typescript-eslint/prefer-optional-chain': ['error'], + '@typescript-eslint/promise-function-async': 'error', + '@typescript-eslint/restrict-template-expressions': [ + 'warn', + { + allowAny: false, + allowBoolean: false, + allowNullish: false, + allowNumber: true, + allowRegExp: false, + allowNever: false, + }, + ], + '@typescript-eslint/switch-exhaustiveness-check': 'error', + '@typescript-eslint/unbound-method': 'error', + '@typescript-eslint/consistent-type-assertions': [ + 'error', + { + assertionStyle: 'as', + objectLiteralTypeAssertions: 'allow-as-parameter', + }, + ], + }, }, - }, - { - files: ['**/*.js', '**/*.cjs'], - name: 'nivalis/typescript/disables/cjs', - rules: { - '@typescript-eslint/no-require-imports': 'off', - '@typescript-eslint/no-var-requires': 'off', + { + name: 'nivalis/typescript/languageOptions', + languageOptions: { + parserOptions: { + projectService: { + allowDefaultProject: ['*.js', '*.mjs'], + }, + tsconfigRootDir: process.cwd(), + }, + }, }, - }, - ] as TypedFlatConfigItem[]; + ); + } + + return tseslint.config(...configs) as Linter.Config[]; }; diff --git a/src/configs/unicorn.ts b/src/configs/unicorn.ts index 922107a41e..5e44aca703 100644 --- a/src/configs/unicorn.ts +++ b/src/configs/unicorn.ts @@ -1,7 +1,7 @@ import eslintPluginUnicorn from 'eslint-plugin-unicorn'; -import type { TypedFlatConfigItem } from '../types'; +import type { Linter } from 'eslint'; -export const unicorn = (): TypedFlatConfigItem[] => { +export const unicorn = (): Linter.Config[] => { return [ eslintPluginUnicorn.configs['flat/recommended'], { @@ -33,5 +33,5 @@ export const unicorn = (): TypedFlatConfigItem[] => { ], }, }, - ]; + ] satisfies Linter.Config[]; }; diff --git a/src/constants.ts b/src/constants.ts index 6e2e539a74..a04a491457 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,9 +1,3 @@ -export const MAX_COMPLEXITY = 25; -export const MAX_LINES = 500; -export const MAX_LINES_PER_FUNCTION = 250; -export const MAX_NESTED_CALLBACKS = 4; -export const MAX_PARAMS = 5; -export const MAX_STATEMENTS = 35; export const DEFAULT_INDENT = 2; type PaddingLineType = Array<{ diff --git a/src/environment.ts b/src/environment.ts index 889c9abc7b..d35ec1c53c 100644 --- a/src/environment.ts +++ b/src/environment.ts @@ -1,20 +1,6 @@ import { isPackageExists } from 'local-pkg'; -export const IN_IS_EDITOR = !!( - (process.env.VSCODE_PID || - process.env.VSCODE_CWD || - process.env.NVIM || - process.env.JETBRAINS_IDE || - process.env.VIM) && - !process.env.CI -); export const HAS_TYPESCRIPT = isPackageExists('typescript'); export const HAS_REACT = isPackageExists('react'); export const HAS_NEXTJS = isPackageExists('next'); export const HAS_TAILWINDCSS = isPackageExists('tailwindcss'); -export const HAS_GRAPHQL = isPackageExists('graphql'); -export const HAS_PRETTIER = isPackageExists('prettier'); - -const ResultPackages = ['neverthrow', '@nivalis/std']; - -export const HAS_RESULT = ResultPackages.some(index => isPackageExists(index)); diff --git a/src/factory.ts b/src/factory.ts index 60bd5d7b5d..49d8fbf63a 100644 --- a/src/factory.ts +++ b/src/factory.ts @@ -1,77 +1,43 @@ import { FlatConfigComposer } from 'eslint-flat-config-utils'; -import { prettier } from './configs/prettier'; +import { comments } from './configs/comments'; import { ignores } from './configs/ignores'; +import { imports } from './configs/imports'; import { javascript } from './configs/javascript'; -import { comments } from './configs/comments'; -import { node } from './configs/node'; -import { promise } from './configs/promise'; -import { sortPackageJson, sortTsconfig } from './configs/sort-json'; import { jsdoc } from './configs/jsdoc'; -import { jsx } from './configs/jsx'; -import { prettierStylistic, stylistic } from './configs/stylistic'; import { jsonc } from './configs/jsonc'; -import { nextjs } from './configs/nextjs'; +import { node } from './configs/node'; import { regexp } from './configs/regexp'; -import { tailwindcss } from './configs/tailwindcss'; -import { typescript } from './configs/typescript'; +import { stylistic } from './configs/stylistic'; import { unicorn } from './configs/unicorn'; -import { resolveSubOptions } from './utils'; import { HAS_NEXTJS, - HAS_PRETTIER, HAS_REACT, HAS_TAILWINDCSS, HAS_TYPESCRIPT, } from './environment'; -import { react } from './configs/react'; -import { imports } from './configs/imports'; -import type { Awaitable } from 'eslint-flat-config-utils'; -import type { OptionsConfig, TypedFlatConfigItem } from './types'; +import { promise } from './configs/promise'; +import type { ConfigOptions } from './options'; import type { Linter } from 'eslint'; -const flatConfigProperties: Array = [ - 'name', - 'files', - 'ignores', - 'languageOptions', - 'linterOptions', - 'processor', - 'plugins', - 'rules', - 'settings', -]; - export const nivalis = async ( - options: OptionsConfig & TypedFlatConfigItem = {}, - ...userConfigs: Array< - Awaitable< - | TypedFlatConfigItem - | TypedFlatConfigItem[] - // eslint-disable-next-line @typescript-eslint/no-explicit-any - | FlatConfigComposer - | Linter.Config[] - > - > + options?: ConfigOptions, + ...userConfigs: Linter.Config[] ) => { - const configs: Array> = []; - - const enableReact = HAS_REACT; - const enableNextJs = HAS_NEXTJS && options.nextjs !== false; - const enablePrettier = HAS_PRETTIER && options.prettier !== false; - const enableTypescript = HAS_TYPESCRIPT && options.typescript !== false; - const enableTailwindCss = HAS_TAILWINDCSS && options.tailwindcss !== false; - - configs.push( - ignores(), - imports(), + const enableNextJs = + (HAS_NEXTJS && options?.nextjs !== false) || options?.nextjs === true; + const enableReact = + (HAS_REACT && options?.react !== false) || options?.react === true; + const enableTailwindCss = HAS_TAILWINDCSS && options?.tailwindcss !== false; + const enableTypescript = HAS_TYPESCRIPT && options?.typescript !== false; + + let composer = new FlatConfigComposer( + ignores(options?.ignores), + await imports(!enableTypescript), javascript(), - jsx(), stylistic(), jsdoc(), jsonc(), regexp(), - sortPackageJson(), - sortTsconfig(), node(), promise(), comments(), @@ -79,49 +45,36 @@ export const nivalis = async ( ); if (enableReact) { - configs.push(react()); + const mod = await import('./configs/react'); + + composer = composer.append(...mod.react()); } if (enableNextJs) { - configs.push(nextjs()); + const mod = await import('./configs/nextjs'); + + composer = composer.append(...mod.nextjs()); } if (enableTailwindCss) { - configs.push(tailwindcss(resolveSubOptions(options, 'tailwindcss'))); + const mod = await import('./configs/tailwindcss'); + + composer = composer.append(...mod.tailwindcss(options?.tailwindcss)); } if (enableTypescript) { - configs.push(typescript(resolveSubOptions(options, 'typescript'))); - } + const mod = await import('./configs/typescript'); - if (enablePrettier) { - configs.push( - prettierStylistic(), - prettier(resolveSubOptions(options, 'prettier')), - ); + composer = composer.append(...mod.typescript(options?.typescript)); } - /* User can optionally pass a flat config item to the first argument - We pick the known keys as ESLint would do schema validation */ - const fusedConfig: TypedFlatConfigItem = {}; + if (options?.prettier !== false) { + const mod = await import('./configs/prettier'); - for (const property of flatConfigProperties) { - for (const key of Object.keys(options)) { - if (key !== property) continue; - - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any - fusedConfig[property] = options[property] as any; - } + composer = composer.append(...mod.prettier(options?.prettier)); } - if (Object.keys(fusedConfig).length > 0) configs.push([fusedConfig]); - - let composer = new FlatConfigComposer(); - - composer = composer.append( - ...configs, - ...(userConfigs as TypedFlatConfigItem[]), - ); + composer = composer.append(...userConfigs); return await composer; }; diff --git a/src/globs.ts b/src/globs.ts index ca7e33968c..07cf99b874 100644 --- a/src/globs.ts +++ b/src/globs.ts @@ -4,6 +4,8 @@ export const GLOB_ASTRO_TS = '**/*.astro/*.ts'; export const GLOB_SRC_EXT = '?([cm])[jt]s?(x)'; export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)'; +export const GLOB_SRC_TS = '**/*.?([cm])ts?(x)'; +export const GLOB_SRC_JS = '**/*.?([cm])js?(x)'; export const GLOB_JS = '**/*.?([cm])js'; export const GLOB_TS = '**/*.?([cm])ts'; diff --git a/src/options.ts b/src/options.ts new file mode 100644 index 0000000000..590608b0a7 --- /dev/null +++ b/src/options.ts @@ -0,0 +1,35 @@ +import type { VendoredPrettierOptions } from './prettier-types'; + +export type TSConfigOptions = + | false + | null + | undefined + | { + disableTypeChecking?: boolean; + }; + +export type PrettierOptions = + | false + | null + | undefined + | VendoredPrettierOptions; + +export type TailwindOptions = + | false + | null + | undefined + | { + // Defaults to 'tailwind.config.ts' + configPath?: string; + }; + +export type ConfigOptions = + | { + nextjs?: boolean | undefined | null; + react?: boolean | undefined | null; + typescript?: TSConfigOptions; + tailwindcss?: TailwindOptions; + ignores?: string[]; + prettier?: PrettierOptions; + } + | undefined; diff --git a/src/vender/prettier-types.ts b/src/prettier-types.ts similarity index 70% rename from src/vender/prettier-types.ts rename to src/prettier-types.ts index f0ed29ffd7..5dee6e9d98 100644 --- a/src/vender/prettier-types.ts +++ b/src/prettier-types.ts @@ -1,7 +1,7 @@ +import type { ESLint } from 'eslint'; /** * Vendor types from Prettier so we don't rely on the dependency. */ - export type VendoredPrettierOptions = Partial; export type VendoredPrettierOptionsRequired = { @@ -39,7 +39,7 @@ export type VendoredPrettierOptionsRequired = { */ bracketSpacing: boolean; /** - * Put the `>` of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line instead of being + * Put the `>` of a multi-line HTML (HTML, XML, JSX, Vue, Angular) element at the end of the last line instead of being * alone on the next line (does not apply to self closing elements). */ bracketSameLine: boolean; @@ -71,7 +71,7 @@ export type VendoredPrettierOptionsRequired = { /** * Provide ability to support new languages to prettier. */ - plugins: unknown[]; + plugins: Array; /** * How to handle whitespaces in HTML. * @default "css" @@ -93,10 +93,31 @@ export type VendoredPrettierOptionsRequired = { */ vueIndentScriptAndStyle: boolean; /** - * Enforce single attribute per line in HTML, Vue and JSX. + * Enforce single attribute per line in HTML, XML, Vue and JSX. * @default false */ singleAttributePerLine: boolean; + + /** + * How to handle whitespaces in XML. + * @default "preserve" + */ + xmlQuoteAttributes: 'single' | 'double' | 'preserve'; + /** + * Whether to put a space inside the brackets of self-closing XML elements. + * @default true + */ + xmlSelfClosingSpace: boolean; + /** + * Whether to sort attributes by key in XML elements. + * @default false + */ + xmlSortAttributesByKey: boolean; + /** + * How to handle whitespaces in XML. + * @default "ignore" + */ + xmlWhitespaceSensitivity: 'ignore' | 'strict' | 'preserve'; }; export type BuiltInParserName = @@ -122,16 +143,16 @@ export type BuiltInParserName = | 'scss' | 'typescript' | 'vue' + | 'xml' | 'yaml'; -/* This utility is here to handle the case where you have an explicit union - between string literals and the generic string type. It would normally - resolve out to just the string type, but this generic LiteralUnion maintains - the intellisense of the original union. - - It comes from this issue: microsoft/TypeScript#29729: - https://github.com/microsoft/TypeScript/issues/29729#issuecomment-700527227 */ +// This utility is here to handle the case where you have an explicit union +// Between string literals and the generic string type. It would normally +// Resolve out to just the string type, but this generic LiteralUnion maintains +// The intellisense of the original union. +// +// It comes from this issue: microsoft/TypeScript#29729: +// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-700527227 export type LiteralUnion = | T - // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents - | (Pick & { _?: never | undefined }); + | (Pick & { _?: never }); diff --git a/src/stub.d.ts b/src/stub.d.ts index db78109507..d4614b5837 100644 --- a/src/stub.d.ts +++ b/src/stub.d.ts @@ -1,5 +1,4 @@ declare module 'eslint-plugin-tailwindcss' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; @@ -19,7 +18,6 @@ declare module '@eslint-community/eslint-plugin-eslint-comments' { } declare module 'eslint-plugin-promise' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; @@ -29,7 +27,6 @@ declare module 'eslint-plugin-promise' { } declare module '@next/eslint-plugin-next' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; @@ -39,7 +36,6 @@ declare module '@next/eslint-plugin-next' { } declare module 'eslint-plugin-react-hooks' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; @@ -49,7 +45,6 @@ declare module 'eslint-plugin-react-hooks' { } declare module 'eslint-plugin-react' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; @@ -59,7 +54,6 @@ declare module 'eslint-plugin-react' { } declare module 'eslint-plugin-react-compiler' { - import type { ESLint } from 'eslint'; const plugin: Omit & { // eslint-plugin-react-hooks does not use FlatConfig yet configs: { [key: string]: ESLint.ConfigData }; diff --git a/src/types.ts b/src/types.ts index 01d69bf758..c4e847fd37 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,56 +1 @@ -import type { ESLint, Linter } from 'eslint'; -import type { VendoredPrettierOptions } from './vender/prettier-types'; - export type Awaitable = T | Promise; - -export type ResolvedOptions = T extends boolean ? never : NonNullable; - -// Relax plugins type limitation, as most of the plugins did not have correct type info yet. -export type TypedFlatConfigItem = Omit & { - /** - * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files. - * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration) - */ - - plugins?: { [key: string]: ESLint.Plugin }; -}; - -export type OptionsTypescript = { - /** - * When this options is provided, type aware rules will be enabled. - * @see https://typescript-eslint.io/linting/typed-linting/ - */ - configPath?: string; -}; - -export type OptionsTailwindCSS = { - // defaults to 'tailwind.config.ts' - configPath?: string; -}; - -export type OptionsPrettier = VendoredPrettierOptions; - -export type OptionsConfig = { - /** - * Enable TypeScript support. - * - * Passing an object to enable TypeScript Language Server support. - * @default auto-detect based on the dependencies - */ - typescript?: boolean | OptionsTypescript; - /** - * Enable tailwindcss rules. - * @default auto-detect based on the dependencies - */ - tailwindcss?: boolean | OptionsTailwindCSS; - /** - * Enable Prettier support. - * @default auto-detect based on the dependencies - */ - prettier?: boolean | OptionsPrettier; - /** - * Enable Nextjs support. - * @default auto-detect based on the dependencies - */ - nextjs?: boolean; -}; diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index 2ae94b441d..0000000000 --- a/src/utils.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { isPackageExists } from 'local-pkg'; -import type { - Awaitable, - OptionsConfig, - ResolvedOptions, - TypedFlatConfigItem, -} from './types'; - -export const resolveSubOptions = ( - options: OptionsConfig, - key: K, -): ResolvedOptions => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return - return typeof options[key] === 'boolean' ? ({} as any) : options[key] || {}; -}; - -export const toArray = (value: T | T[]): T[] => { - return Array.isArray(value) ? value : [value]; -}; - -/** - * Rename plugin prefixes in a rule object. - * Accepts a map of prefixes to rename. - * @param {Record} rules The rules to rename. - * @param {Record} map The map of prefixes to rename. - * @returns {Record} The renamed rules. - * @example - * ```ts - * import { renameRules } from '@antfu/eslint-config' - * - * export default [{ - * rules: renameRules( - * { - * '@typescript-eslint/indent': 'error' - * }, - * { '@typescript-eslint': 'ts' } - * ) - * }] - * ``` - */ -export const renameRules = ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - rules: { [key: string]: any }, - map: { [key: string]: string }, -) => { - return Object.fromEntries( - Object.entries(rules).map(([key, value]) => { - for (const [from, to] of Object.entries(map)) { - if (key.startsWith(`${from}/`)) - return [to + key.slice(from.length), value]; - } - - return [key, value]; - }), - ); -}; - -/** - * Combine array and non-array configs into a single array. - * @param {...any} configs The configs to combine. - * @returns {Promise} The combined configs. - */ -export const combine = async ( - ...configs: Array> -): Promise => { - const resolved = await Promise.all(configs); - - return resolved.flat(); -}; - -export const interopDefault = async ( - module_: Awaitable, -): Promise => { - const resolved = await module_; - - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return - return (resolved as any).default || resolved; -}; - -export const ensurePackages = (packages: string[]) => { - if (process.env.CI || !process.stdout.isTTY) { - return; - } - - const nonExistingPackages = packages.filter(index => !isPackageExists(index)); - - if (nonExistingPackages.length === 0) { - return; - } - - throw new Error( - `This package(s) are required for this config: ${nonExistingPackages.join(', ')}. Please install them.`, - ); -}; - -export const isInEditorEnv = (): boolean => { - return !!( - (process.env.VSCODE_PID || - process.env.VSCODE_CWD || - process.env.JETBRAINS_IDE || - process.env.VIM || - process.env.NVIM) && - !process.env.CI - ); -}; diff --git a/tsconfig.json b/tsconfig.json index 5fe12b7c46..1aab1e42ec 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,5 +17,6 @@ "noEmit": true, "verbatimModuleSyntax": true, "skipLibCheck": true - } + }, + "include": ["**/*.ts"] } diff --git a/tsup.config.ts b/tsup.config.ts deleted file mode 100644 index 0046d121a8..0000000000 --- a/tsup.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from 'tsup'; - -export default defineConfig({ - entry: ['src/index.ts'], - shims: true, -});