From 06bcdd632b1b8e4655fbf25e5c60ddfc3018bffd Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Wed, 17 Dec 2025 14:43:43 +0800 Subject: [PATCH 01/12] feat(turbo): add new task handling functionality --- .github/actions/catch-install-pnpm/action.yml | 2 +- .github/workflows/main.yml | 34 +- .gitignore | 3 +- package.json | 20 +- packages/base/package.json | 8 +- packages/dms-kit/package.json | 7 +- packages/shared/package.json | 9 - packages/sqle/package.json | 30 +- pnpm-lock.yaml | 1019 +++++++---------- turbo.json | 60 + 10 files changed, 556 insertions(+), 636 deletions(-) create mode 100644 turbo.json diff --git a/.github/actions/catch-install-pnpm/action.yml b/.github/actions/catch-install-pnpm/action.yml index 28115c5ed..38efe0144 100644 --- a/.github/actions/catch-install-pnpm/action.yml +++ b/.github/actions/catch-install-pnpm/action.yml @@ -16,4 +16,4 @@ runs: - name: Install dependencies shell: bash - run: pnpm install + run: pnpm install --frozen-lockfile diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1559d986..d66b9afaa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,8 +18,16 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm + - name: Cache Turbo + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Code lint checker - run: pnpm checker + run: pnpm turbo run checker test-ee: runs-on: ubuntu-latest @@ -34,6 +42,14 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm + - name: Cache Turbo + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Coverage test report ee run: sh ./scripts/jest/run-ci-ee.sh ${{ matrix.shard }} ${{ strategy.job-total }} @@ -52,6 +68,14 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm + - name: Cache Turbo + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Coverage test report ce run: sh ./scripts/jest/run-ci-ce.sh @@ -101,6 +125,14 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm + - name: Cache Turbo + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Merge coverage reports run: node ./scripts/jest/merge-report-json.js diff --git a/.gitignore b/.gitignore index 4dbb2d65d..6de2e5d7b 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,5 @@ verdaccio ftp-data -/scripts/cli/dms-kit-publish/docs \ No newline at end of file +/scripts/cli/dms-kit-publish/docs +.turbo \ No newline at end of file diff --git a/package.json b/package.json index 793e9cf06..0b5326a37 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,15 @@ }, "scripts": { "preinstall": "npx only-allow pnpm", - "start": "concurrently \"pnpm --filter base start\" \"pnpm --filter @actiontech/dms-kit dev\"", - "start:ee": "concurrently \"pnpm --filter base start:ee\" \"pnpm --filter @actiontech/dms-kit dev\"", - "start:demo": "concurrently \"pnpm --filter base start:demo\" \"pnpm --filter @actiontech/dms-kit dev\"", - "build": "pnpm --filter @actiontech/dms-kit build && pnpm --filter base build", - "build:ee": "pnpm --filter @actiontech/dms-kit build && pnpm --filter base build:ee", - "build:demo": "pnpm --filter @actiontech/dms-kit build && pnpm --filter base build:demo", + "start": "turbo run dev dev:ce --filter=@actiontech/dms-kit --filter=base", + "start:ee": "turbo run dev dev:ee --filter=@actiontech/dms-kit --filter=base", + "start:demo": "turbo run dev dev:demo --filter=@actiontech/dms-kit --filter=base", + "build": "turbo run build --filter=base", + "build:ee": "turbo run build:ee --filter=base", + "build:demo": "turbo run build:demo --filter=base", "prettier:w": "prettier -w packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "prettier:c": "prettier -c packages/*/src/ packages/shared/lib/ scripts/cli/*/src", - "eslint": "eslint packages/*/src/ packages/shared/lib/ scripts/cli/*/src", + "eslint": "eslint packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "stylelint": "stylelint packages/*/{src,lib}/**/{*.less,style.ts,element.ts}", "ts-check": "tsc --noEmit", "checker": "concurrently \"pnpm ts-check\" \"pnpm eslint\" \"pnpm stylelint\" \"pnpm prettier:c\"", @@ -34,7 +34,6 @@ "api_client:g": "cross-env npm_config_registry=http://10.186.18.19:4873 pnpx @actiontech/cli api-client -y", "api_mocks:g": "cross-env npm_config_registry=http://10.186.18.19:4873 pnpx @actiontech/cli api-mocks -y", "ai-doc": "cross-env npm_config_registry=http://10.186.18.19:4873 pnpx @actiontech/cli ai-doc", - "postinstall": "pnpm --filter @actiontech/dms-kit build", "dms-kit:publish": "pnpm --filter @actiontech/cli-dms-kit-publish build && dms-kit-publish" }, "keywords": [], @@ -95,9 +94,10 @@ "stylelint-prettier": "^4.0.2", "ts-jest": "27.1.5", "tsx": "^4.20.5", + "turbo": "^2.5.6", "typescript": "^5.0.2", "typescript-eslint": "^8.28.0", - "vite": "^5.2.6", + "vite": "^7", "vite-plugin-conditional-compile": "1.4.3", "vite-plugin-eslint": "^1.8.1", "vite-plugin-html": "^3.2.2" @@ -149,4 +149,4 @@ "@babel/core": "^7.22.0", "@ant-design/cssinjs": "1.17.0" } -} +} \ No newline at end of file diff --git a/packages/base/package.json b/packages/base/package.json index b0aa6eb18..41e7b1c00 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -3,9 +3,9 @@ "private": true, "version": "0.0.0", "scripts": { - "start": "cross-env buildType=ce,SQLE vite --port=3020", - "start:ee": "cross-env buildType=ee,SQLE vite --port=3020", - "start:demo": "cross-env buildType=ce,SQLE,DEMO vite --port=3020", + "dev:ce": "cross-env buildType=ce,SQLE vite --port=3020", + "dev:ee": "cross-env buildType=ee,SQLE vite --port=3020", + "dev:demo": "cross-env buildType=ce,SQLE,DEMO vite --port=3020", "build": "node ../../scripts/getGitVersion.mjs ce && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE vite build", "build:ee": "node ../../scripts/getGitVersion.mjs ee && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ee,SQLE vite build", "build:demo": "node ../../scripts/getGitVersion.mjs trial && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE,DEMO vite build", @@ -21,4 +21,4 @@ "sqle": "workspace:^", "@actiontech/icons": "workspace:^" } -} +} \ No newline at end of file diff --git a/packages/dms-kit/package.json b/packages/dms-kit/package.json index 4736ab03b..017c16388 100644 --- a/packages/dms-kit/package.json +++ b/packages/dms-kit/package.json @@ -18,10 +18,7 @@ "dev": "father dev --incremental", "docs:dev": "dumi dev", "docs:build": "dumi build", - "docs:preview": "dumi preview", - "test": "jest --watchAll=true", - "test:c": "jest --watchAll=false --coverage", - "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" + "docs:preview": "dumi preview" }, "dependencies": { "ahooks": "^3.7.0", @@ -58,4 +55,4 @@ "dumi": "^2.3.8", "babel-plugin-import": "^1.13.8" } -} +} \ No newline at end of file diff --git a/packages/shared/package.json b/packages/shared/package.json index f78ab4c84..f06355dc1 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -3,17 +3,8 @@ "version": "1.0.0", "main": "lib/index.ts", "license": "MIT", - "scripts": { - "build": "tsup", - "test": "jest --watchAll=true", - "test:c": "jest --watchAll=false --coverage", - "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" - }, "dependencies": { "@actiontech/icons": "workspace:^", "@actiontech/dms-kit": "workspace:^" - }, - "devDependencies": { - "tsup": "^8.5.0" } } \ No newline at end of file diff --git a/packages/sqle/package.json b/packages/sqle/package.json index 68dacf6a5..32ac1a91e 100644 --- a/packages/sqle/package.json +++ b/packages/sqle/package.json @@ -14,7 +14,6 @@ "graphology": "^0.25.4", "graphology-communities-louvain": "^2.0.2", "iwanthue": "^2.0.0", - "react-grid-layout": "^1.3.4", "react-infinite-scroll-component": "^6.1.0", "rehype-rewrite": "^4.0.2", "rehype-sanitize": "^6.0.0", @@ -23,32 +22,7 @@ "web-vitals": "^0.2.4" }, "devDependencies": { - "@types/react-grid-layout": "^1.3.2", "graphology-types": "^0.24.8", "jest-canvas-mock": "^2.2.0" - }, - "scripts": { - "start": "PORT=3030 craco start", - "build": "craco build", - "test": "jest --watchAll=true", - "test:c": "jest --watchAll=false --coverage", - "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults", - "eject": "react-scripts eject" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "engines": { - "node": ">=12.0.0" - }, - "proxy": "http://10.186.62.5:10000" -} + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5d220abe..967389b75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -194,7 +194,7 @@ importers: version: 5.62.0(eslint@9.23.0)(typescript@5.8.2) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)) + version: 4.3.4(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)) babel-jest: specifier: ^29.7.0 version: 29.7.0(@babel/core@7.26.10) @@ -297,6 +297,9 @@ importers: tsx: specifier: ^4.20.5 version: 4.20.5 + turbo: + specifier: ^2.5.6 + version: 2.6.3 typescript: specifier: ^5.0.2 version: 5.8.2 @@ -304,17 +307,17 @@ importers: specifier: ^8.28.0 version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) vite: - specifier: ^5.2.6 - version: 5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0) + specifier: ^7 + version: 7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5) vite-plugin-conditional-compile: specifier: 1.4.3 - version: 1.4.3(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)) + version: 1.4.3(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@9.23.0)(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)) + version: 1.8.1(eslint@9.23.0)(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)) vite-plugin-html: specifier: ^3.2.2 - version: 3.2.2(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)) + version: 3.2.2(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)) packages/base: dependencies: @@ -448,10 +451,6 @@ importers: '@actiontech/icons': specifier: workspace:^ version: link:../icons - devDependencies: - tsup: - specifier: ^8.5.0 - version: 8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(tsx@4.20.5)(typescript@5.8.2) packages/sqle: dependencies: @@ -485,9 +484,6 @@ importers: iwanthue: specifier: ^2.0.0 version: 2.0.0 - react-grid-layout: - specifier: ^1.3.4 - version: 1.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-infinite-scroll-component: specifier: ^6.1.0 version: 6.1.0(react@18.3.1) @@ -507,9 +503,6 @@ importers: specifier: ^0.2.4 version: 0.2.4 devDependencies: - '@types/react-grid-layout': - specifier: ^1.3.2 - version: 1.3.5 graphology-types: specifier: ^0.24.8 version: 0.24.8 @@ -1787,14 +1780,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.25.9': + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1817,14 +1810,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.25.9': + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1847,14 +1840,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.25.9': + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1877,14 +1870,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.25.9': + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1907,14 +1900,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.25.9': + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1937,14 +1930,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.25.9': + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1967,14 +1960,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.25.9': + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1997,14 +1990,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.25.9': + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2027,14 +2020,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.25.9': + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2057,14 +2050,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.25.9': + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2087,14 +2080,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.25.9': + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2117,14 +2110,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.25.9': + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2147,14 +2140,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.25.9': + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2177,14 +2170,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.25.9': + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2207,14 +2200,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.25.9': + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2237,14 +2230,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.25.9': + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2267,14 +2260,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2285,6 +2278,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -2303,14 +2302,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.25.9': + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2321,6 +2320,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -2339,14 +2344,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.25.9': + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2357,6 +2362,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -2375,14 +2386,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.25.9': + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2405,14 +2416,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.25.9': + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2435,14 +2446,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.25.9': + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2465,14 +2476,14 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.25.9': + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -3300,114 +3311,124 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/rollup-android-arm-eabi@4.38.0': - resolution: {integrity: sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==} + '@rollup/rollup-android-arm-eabi@4.53.5': + resolution: {integrity: sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.38.0': - resolution: {integrity: sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==} + '@rollup/rollup-android-arm64@4.53.5': + resolution: {integrity: sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.38.0': - resolution: {integrity: sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==} + '@rollup/rollup-darwin-arm64@4.53.5': + resolution: {integrity: sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.38.0': - resolution: {integrity: sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==} + '@rollup/rollup-darwin-x64@4.53.5': + resolution: {integrity: sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.38.0': - resolution: {integrity: sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==} + '@rollup/rollup-freebsd-arm64@4.53.5': + resolution: {integrity: sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.38.0': - resolution: {integrity: sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==} + '@rollup/rollup-freebsd-x64@4.53.5': + resolution: {integrity: sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': - resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==} + '@rollup/rollup-linux-arm-gnueabihf@4.53.5': + resolution: {integrity: sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.38.0': - resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==} + '@rollup/rollup-linux-arm-musleabihf@4.53.5': + resolution: {integrity: sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.38.0': - resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==} + '@rollup/rollup-linux-arm64-gnu@4.53.5': + resolution: {integrity: sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.38.0': - resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==} + '@rollup/rollup-linux-arm64-musl@4.53.5': + resolution: {integrity: sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': - resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==} + '@rollup/rollup-linux-loong64-gnu@4.53.5': + resolution: {integrity: sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': - resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==} + '@rollup/rollup-linux-ppc64-gnu@4.53.5': + resolution: {integrity: sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.38.0': - resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==} + '@rollup/rollup-linux-riscv64-gnu@4.53.5': + resolution: {integrity: sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.38.0': - resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==} + '@rollup/rollup-linux-riscv64-musl@4.53.5': + resolution: {integrity: sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.38.0': - resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==} + '@rollup/rollup-linux-s390x-gnu@4.53.5': + resolution: {integrity: sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.38.0': - resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==} + '@rollup/rollup-linux-x64-gnu@4.53.5': + resolution: {integrity: sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.38.0': - resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==} + '@rollup/rollup-linux-x64-musl@4.53.5': + resolution: {integrity: sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-win32-arm64-msvc@4.38.0': - resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==} + '@rollup/rollup-openharmony-arm64@4.53.5': + resolution: {integrity: sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.53.5': + resolution: {integrity: sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.38.0': - resolution: {integrity: sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==} + '@rollup/rollup-win32-ia32-msvc@4.53.5': + resolution: {integrity: sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.38.0': - resolution: {integrity: sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==} + '@rollup/rollup-win32-x64-gnu@4.53.5': + resolution: {integrity: sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.53.5': + resolution: {integrity: sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==} cpu: [x64] os: [win32] @@ -4109,9 +4130,6 @@ packages: peerDependencies: '@types/react': ^18.0.0 - '@types/react-grid-layout@1.3.5': - resolution: {integrity: sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ==} - '@types/react-redux@7.1.34': resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==} @@ -5102,20 +5120,10 @@ packages: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -5408,9 +5416,6 @@ packages: engines: {node: '>=18'} hasBin: true - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - connect-history-api-fallback@1.6.0: resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} engines: {node: '>=0.8'} @@ -5422,10 +5427,6 @@ packages: consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} - console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} @@ -6187,16 +6188,16 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.25.9: resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} hasBin: true + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6456,9 +6457,6 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-equals@4.0.3: - resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -6576,9 +6574,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -7651,10 +7646,6 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -7888,17 +7879,9 @@ packages: resolution: {integrity: sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==} engines: {node: '>= 12.0.0'} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.2.0: resolution: {integrity: sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==} engines: {node: '>=6.11.5'} @@ -7949,9 +7932,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -8001,9 +7981,6 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -8297,9 +8274,6 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mnemonist@0.39.8: resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} @@ -8707,9 +8681,6 @@ packages: pathe@0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -8759,9 +8730,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -8894,24 +8862,6 @@ packages: peerDependencies: postcss: ^8.3.5 - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - 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-logical@5.0.4: resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} engines: {node: ^12 || ^14 || >=16} @@ -9062,6 +9012,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -9537,12 +9491,6 @@ packages: peerDependencies: react: ^18.3.1 - react-draggable@4.4.6: - resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' - react-error-boundary@3.1.4: resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} engines: {node: '>=10', npm: '>=6'} @@ -9565,12 +9513,6 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-grid-layout@1.5.1: - resolution: {integrity: sha512-4Fr+kKMk0+m1HL/BWfHxi/lRuaOmDNNKQDcu7m12+NEYcen20wIuZFo789u3qWCyvUsNUxCiyf0eKq4WiJSNYw==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' - react-helmet-async@1.3.0: resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} peerDependencies: @@ -9659,11 +9601,6 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-resizable@3.0.5: - resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} - peerDependencies: - react: '>= 16.3' - react-router-dom@6.10.0: resolution: {integrity: sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==} engines: {node: '>=14'} @@ -10010,8 +9947,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.38.0: - resolution: {integrity: sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==} + rollup@4.53.5: + resolution: {integrity: sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10274,11 +10211,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - deprecated: The work that was done in this beta branch won't be included in future versions - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -10691,11 +10623,8 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} titleize@3.0.0: @@ -10730,9 +10659,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -10827,25 +10753,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.5.0: - resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==} - 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 - tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -10864,6 +10771,40 @@ packages: tty-browserify@0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} + turbo-darwin-64@2.6.3: + resolution: {integrity: sha512-BlJJDc1CQ7SK5Y5qnl7AzpkvKSnpkfPmnA+HeU/sgny3oHZckPV2776ebO2M33CYDSor7+8HQwaodY++IINhYg==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.6.3: + resolution: {integrity: sha512-MwVt7rBKiOK7zdYerenfCRTypefw4kZCue35IJga9CH1+S50+KTiCkT6LBqo0hHeoH2iKuI0ldTF2a0aB72z3w==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.6.3: + resolution: {integrity: sha512-cqpcw+dXxbnPtNnzeeSyWprjmuFVpHJqKcs7Jym5oXlu/ZcovEASUIUZVN3OGEM6Y/OTyyw0z09tOHNt5yBAVg==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.6.3: + resolution: {integrity: sha512-MterpZQmjXyr4uM7zOgFSFL3oRdNKeflY7nsjxJb2TklsYqiu3Z9pQ4zRVFFH8n0mLGna7MbQMZuKoWqqHb45w==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.6.3: + resolution: {integrity: sha512-biDU70v9dLwnBdLf+daoDlNJVvqOOP8YEjqNipBHzgclbQlXbsi6Gqqelp5er81Qo3BiRgmTNx79oaZQTPb07Q==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.6.3: + resolution: {integrity: sha512-dDHVKpSeukah3VsI/xMEKeTnV9V9cjlpFSUs4bmsUiLu3Yv2ENlgVEZv65wxbeE0bh0jjpmElDT+P1KaCxArQQ==} + cpu: [arm64] + os: [win32] + + turbo@2.6.3: + resolution: {integrity: sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA==} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -10937,9 +10878,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - uglify-js@2.8.29: resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==} engines: {node: '>=0.8.0'} @@ -11213,22 +11151,27 @@ packages: terser: optional: true - vite@5.4.15: - resolution: {integrity: sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@7.3.0: + resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: '@types/node': optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -11243,6 +11186,10 @@ packages: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -11284,9 +11231,6 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -11324,9 +11268,6 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -13256,10 +13197,10 @@ snapshots: '@esbuild/aix-ppc64@0.21.4': optional: true - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.25.9': optional: true - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.27.2': optional: true '@esbuild/android-arm64@0.17.19': @@ -13271,10 +13212,10 @@ snapshots: '@esbuild/android-arm64@0.21.4': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.25.9': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.27.2': optional: true '@esbuild/android-arm@0.17.19': @@ -13286,10 +13227,10 @@ snapshots: '@esbuild/android-arm@0.21.4': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.25.9': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.27.2': optional: true '@esbuild/android-x64@0.17.19': @@ -13301,10 +13242,10 @@ snapshots: '@esbuild/android-x64@0.21.4': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.25.9': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.27.2': optional: true '@esbuild/darwin-arm64@0.17.19': @@ -13316,10 +13257,10 @@ snapshots: '@esbuild/darwin-arm64@0.21.4': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.25.9': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.27.2': optional: true '@esbuild/darwin-x64@0.17.19': @@ -13331,10 +13272,10 @@ snapshots: '@esbuild/darwin-x64@0.21.4': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.25.9': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.27.2': optional: true '@esbuild/freebsd-arm64@0.17.19': @@ -13346,10 +13287,10 @@ snapshots: '@esbuild/freebsd-arm64@0.21.4': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.25.9': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.27.2': optional: true '@esbuild/freebsd-x64@0.17.19': @@ -13361,10 +13302,10 @@ snapshots: '@esbuild/freebsd-x64@0.21.4': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.25.9': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.27.2': optional: true '@esbuild/linux-arm64@0.17.19': @@ -13376,10 +13317,10 @@ snapshots: '@esbuild/linux-arm64@0.21.4': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.25.9': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.27.2': optional: true '@esbuild/linux-arm@0.17.19': @@ -13391,10 +13332,10 @@ snapshots: '@esbuild/linux-arm@0.21.4': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.25.9': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.27.2': optional: true '@esbuild/linux-ia32@0.17.19': @@ -13406,10 +13347,10 @@ snapshots: '@esbuild/linux-ia32@0.21.4': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.25.9': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.27.2': optional: true '@esbuild/linux-loong64@0.17.19': @@ -13421,10 +13362,10 @@ snapshots: '@esbuild/linux-loong64@0.21.4': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.25.9': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.27.2': optional: true '@esbuild/linux-mips64el@0.17.19': @@ -13436,10 +13377,10 @@ snapshots: '@esbuild/linux-mips64el@0.21.4': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.25.9': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.27.2': optional: true '@esbuild/linux-ppc64@0.17.19': @@ -13451,10 +13392,10 @@ snapshots: '@esbuild/linux-ppc64@0.21.4': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.25.9': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.27.2': optional: true '@esbuild/linux-riscv64@0.17.19': @@ -13466,10 +13407,10 @@ snapshots: '@esbuild/linux-riscv64@0.21.4': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.25.9': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.27.2': optional: true '@esbuild/linux-s390x@0.17.19': @@ -13481,10 +13422,10 @@ snapshots: '@esbuild/linux-s390x@0.21.4': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.25.9': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.27.2': optional: true '@esbuild/linux-x64@0.17.19': @@ -13496,15 +13437,18 @@ snapshots: '@esbuild/linux-x64@0.21.4': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.25.9': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.27.2': optional: true '@esbuild/netbsd-arm64@0.25.9': optional: true + '@esbuild/netbsd-arm64@0.27.2': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -13514,15 +13458,18 @@ snapshots: '@esbuild/netbsd-x64@0.21.4': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.25.9': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.27.2': optional: true '@esbuild/openbsd-arm64@0.25.9': optional: true + '@esbuild/openbsd-arm64@0.27.2': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -13532,15 +13479,18 @@ snapshots: '@esbuild/openbsd-x64@0.21.4': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/openbsd-x64@0.25.9': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.27.2': optional: true '@esbuild/openharmony-arm64@0.25.9': optional: true + '@esbuild/openharmony-arm64@0.27.2': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -13550,10 +13500,10 @@ snapshots: '@esbuild/sunos-x64@0.21.4': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/sunos-x64@0.25.9': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.27.2': optional: true '@esbuild/win32-arm64@0.17.19': @@ -13565,10 +13515,10 @@ snapshots: '@esbuild/win32-arm64@0.21.4': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/win32-arm64@0.25.9': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.27.2': optional: true '@esbuild/win32-ia32@0.17.19': @@ -13580,10 +13530,10 @@ snapshots: '@esbuild/win32-ia32@0.21.4': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-ia32@0.25.9': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.27.2': optional: true '@esbuild/win32-x64@0.17.19': @@ -13595,10 +13545,10 @@ snapshots: '@esbuild/win32-x64@0.21.4': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-x64@0.25.9': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.27.2': optional: true '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0)': @@ -14719,64 +14669,70 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/rollup-android-arm-eabi@4.38.0': + '@rollup/rollup-android-arm-eabi@4.53.5': + optional: true + + '@rollup/rollup-android-arm64@4.53.5': + optional: true + + '@rollup/rollup-darwin-arm64@4.53.5': optional: true - '@rollup/rollup-android-arm64@4.38.0': + '@rollup/rollup-darwin-x64@4.53.5': optional: true - '@rollup/rollup-darwin-arm64@4.38.0': + '@rollup/rollup-freebsd-arm64@4.53.5': optional: true - '@rollup/rollup-darwin-x64@4.38.0': + '@rollup/rollup-freebsd-x64@4.53.5': optional: true - '@rollup/rollup-freebsd-arm64@4.38.0': + '@rollup/rollup-linux-arm-gnueabihf@4.53.5': optional: true - '@rollup/rollup-freebsd-x64@4.38.0': + '@rollup/rollup-linux-arm-musleabihf@4.53.5': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': + '@rollup/rollup-linux-arm64-gnu@4.53.5': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.38.0': + '@rollup/rollup-linux-arm64-musl@4.53.5': optional: true - '@rollup/rollup-linux-arm64-gnu@4.38.0': + '@rollup/rollup-linux-loong64-gnu@4.53.5': optional: true - '@rollup/rollup-linux-arm64-musl@4.38.0': + '@rollup/rollup-linux-ppc64-gnu@4.53.5': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': + '@rollup/rollup-linux-riscv64-gnu@4.53.5': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': + '@rollup/rollup-linux-riscv64-musl@4.53.5': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.38.0': + '@rollup/rollup-linux-s390x-gnu@4.53.5': optional: true - '@rollup/rollup-linux-riscv64-musl@4.38.0': + '@rollup/rollup-linux-x64-gnu@4.53.5': optional: true - '@rollup/rollup-linux-s390x-gnu@4.38.0': + '@rollup/rollup-linux-x64-musl@4.53.5': optional: true - '@rollup/rollup-linux-x64-gnu@4.38.0': + '@rollup/rollup-openharmony-arm64@4.53.5': optional: true - '@rollup/rollup-linux-x64-musl@4.38.0': + '@rollup/rollup-win32-arm64-msvc@4.53.5': optional: true - '@rollup/rollup-win32-arm64-msvc@4.38.0': + '@rollup/rollup-win32-ia32-msvc@4.53.5': optional: true - '@rollup/rollup-win32-ia32-msvc@4.38.0': + '@rollup/rollup-win32-x64-gnu@4.53.5': optional: true - '@rollup/rollup-win32-x64-msvc@4.38.0': + '@rollup/rollup-win32-x64-msvc@4.53.5': optional: true '@rtsao/scc@1.1.0': {} @@ -15595,10 +15551,6 @@ snapshots: dependencies: '@types/react': 18.3.23 - '@types/react-grid-layout@1.3.5': - dependencies: - '@types/react': 18.3.23 - '@types/react-redux@7.1.34': dependencies: '@types/hoist-non-react-statics': 3.3.6 @@ -16435,14 +16387,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0))': + '@vitejs/plugin-react@4.3.4(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0) + vite: 7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5) transitivePeerDependencies: - supports-color @@ -17250,15 +17202,8 @@ snapshots: dependencies: run-applescript: 5.0.0 - bundle-require@5.1.0(esbuild@0.25.9): - dependencies: - esbuild: 0.25.9 - load-tsconfig: 0.2.5 - bytes@3.1.2: {} - cac@6.7.14: {} - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -17562,16 +17507,12 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 - confbox@0.1.8: {} - connect-history-api-fallback@1.6.0: {} connect-history-api-fallback@2.0.0: {} consola@2.15.3: {} - consola@3.4.2: {} - console-browserify@1.2.0: {} constants-browserify@1.0.0: {} @@ -18751,32 +18692,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.4 '@esbuild/win32-x64': 0.21.4 - esbuild@0.21.5: - 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 - esbuild@0.25.9: optionalDependencies: '@esbuild/aix-ppc64': 0.25.9 @@ -18806,6 +18721,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.9 '@esbuild/win32-x64': 0.25.9 + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -19187,8 +19131,6 @@ snapshots: fast-diff@1.3.0: {} - fast-equals@4.0.3: {} - fast-fifo@1.3.2: {} fast-glob@3.2.12: @@ -19353,12 +19295,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.17 - mlly: 1.7.4 - rollup: 4.38.0 - flat-cache@3.2.0: dependencies: flatted: 3.3.3 @@ -21016,8 +20952,6 @@ snapshots: jju@1.4.0: {} - joycon@3.1.1: {} - js-cookie@3.0.5: {} js-levenshtein@1.1.6: {} @@ -21271,12 +21205,8 @@ snapshots: lightningcss-linux-x64-musl: 1.22.1 lightningcss-win32-x64-msvc: 1.22.1 - lilconfig@3.1.3: {} - lines-and-columns@1.2.4: {} - load-tsconfig@0.2.5: {} - loader-runner@4.2.0: {} loader-utils@2.0.4: @@ -21316,8 +21246,6 @@ snapshots: lodash.merge@4.6.2: {} - lodash.sortby@4.7.0: {} - lodash.throttle@4.1.1: {} lodash.truncate@4.4.2: {} @@ -21357,10 +21285,6 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -21856,13 +21780,6 @@ snapshots: dependencies: minimist: 1.2.8 - mlly@1.7.4: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - mnemonist@0.39.8: dependencies: obliterator: 2.0.5 @@ -22357,8 +22274,6 @@ snapshots: pathe@0.2.0: {} - pathe@2.0.3: {} - pbkdf2@3.1.2: dependencies: create-hash: 1.2.0 @@ -22413,12 +22328,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - pkg-up@3.1.0: dependencies: find-up: 3.0.0 @@ -22526,13 +22435,6 @@ snapshots: dependencies: postcss: 8.5.3 - postcss-load-config@6.0.1(postcss@8.5.3)(tsx@4.20.5): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - postcss: 8.5.3 - tsx: 4.20.5 - postcss-logical@5.0.4(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -22696,6 +22598,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: @@ -23261,13 +23169,6 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-draggable@4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-error-boundary@3.1.4(react@18.3.1): dependencies: '@babel/runtime': 7.28.2 @@ -23287,17 +23188,6 @@ snapshots: react-fast-compare@3.2.2: {} - react-grid-layout@1.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 2.1.1 - fast-equals: 4.0.3 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - resize-observer-polyfill: 1.5.1 - react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.2 @@ -23405,14 +23295,6 @@ snapshots: react-refresh@0.14.2: {} - react-resizable@3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - prop-types: 15.8.1 - react: 18.3.1 - react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - react-dom - react-router-dom@6.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@remix-run/router': 1.5.0 @@ -23866,30 +23748,32 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.38.0: + rollup@4.53.5: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.38.0 - '@rollup/rollup-android-arm64': 4.38.0 - '@rollup/rollup-darwin-arm64': 4.38.0 - '@rollup/rollup-darwin-x64': 4.38.0 - '@rollup/rollup-freebsd-arm64': 4.38.0 - '@rollup/rollup-freebsd-x64': 4.38.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.38.0 - '@rollup/rollup-linux-arm-musleabihf': 4.38.0 - '@rollup/rollup-linux-arm64-gnu': 4.38.0 - '@rollup/rollup-linux-arm64-musl': 4.38.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.38.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.38.0 - '@rollup/rollup-linux-riscv64-gnu': 4.38.0 - '@rollup/rollup-linux-riscv64-musl': 4.38.0 - '@rollup/rollup-linux-s390x-gnu': 4.38.0 - '@rollup/rollup-linux-x64-gnu': 4.38.0 - '@rollup/rollup-linux-x64-musl': 4.38.0 - '@rollup/rollup-win32-arm64-msvc': 4.38.0 - '@rollup/rollup-win32-ia32-msvc': 4.38.0 - '@rollup/rollup-win32-x64-msvc': 4.38.0 + '@rollup/rollup-android-arm-eabi': 4.53.5 + '@rollup/rollup-android-arm64': 4.53.5 + '@rollup/rollup-darwin-arm64': 4.53.5 + '@rollup/rollup-darwin-x64': 4.53.5 + '@rollup/rollup-freebsd-arm64': 4.53.5 + '@rollup/rollup-freebsd-x64': 4.53.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.5 + '@rollup/rollup-linux-arm-musleabihf': 4.53.5 + '@rollup/rollup-linux-arm64-gnu': 4.53.5 + '@rollup/rollup-linux-arm64-musl': 4.53.5 + '@rollup/rollup-linux-loong64-gnu': 4.53.5 + '@rollup/rollup-linux-ppc64-gnu': 4.53.5 + '@rollup/rollup-linux-riscv64-gnu': 4.53.5 + '@rollup/rollup-linux-riscv64-musl': 4.53.5 + '@rollup/rollup-linux-s390x-gnu': 4.53.5 + '@rollup/rollup-linux-x64-gnu': 4.53.5 + '@rollup/rollup-linux-x64-musl': 4.53.5 + '@rollup/rollup-openharmony-arm64': 4.53.5 + '@rollup/rollup-win32-arm64-msvc': 4.53.5 + '@rollup/rollup-win32-ia32-msvc': 4.53.5 + '@rollup/rollup-win32-x64-gnu': 4.53.5 + '@rollup/rollup-win32-x64-msvc': 4.53.5 fsevents: 2.3.3 rst-selector-parser@2.2.3: @@ -24190,10 +24074,6 @@ snapshots: source-map@0.7.4: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - space-separated-tokens@2.0.2: {} spdx-correct@3.2.0: @@ -24823,9 +24703,7 @@ snapshots: tiny-warning@1.0.3: {} - tinyexec@0.3.2: {} - - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 @@ -24857,10 +24735,6 @@ snapshots: tr46@0.0.3: {} - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - tr46@3.0.0: dependencies: punycode: 2.3.1 @@ -24988,36 +24862,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(tsx@4.20.5)(typescript@5.8.2): - dependencies: - bundle-require: 5.1.0(esbuild@0.25.9) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.0 - esbuild: 0.25.9 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.3)(tsx@4.20.5) - resolve-from: 5.0.0 - rollup: 4.38.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tree-kill: 1.2.2 - optionalDependencies: - '@microsoft/api-extractor': 7.39.1(@types/node@22.13.14) - '@swc/core': 1.9.2(@swc/helpers@0.5.1) - postcss: 8.5.3 - typescript: 5.8.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tsutils@3.21.0(typescript@5.3.3): dependencies: tslib: 1.14.1 @@ -25045,6 +24889,33 @@ snapshots: tty-browserify@0.0.0: {} + turbo-darwin-64@2.6.3: + optional: true + + turbo-darwin-arm64@2.6.3: + optional: true + + turbo-linux-64@2.6.3: + optional: true + + turbo-linux-arm64@2.6.3: + optional: true + + turbo-windows-64@2.6.3: + optional: true + + turbo-windows-arm64@2.6.3: + optional: true + + turbo@2.6.3: + optionalDependencies: + turbo-darwin-64: 2.6.3 + turbo-darwin-arm64: 2.6.3 + turbo-linux-64: 2.6.3 + turbo-linux-arm64: 2.6.3 + turbo-windows-64: 2.6.3 + turbo-windows-arm64: 2.6.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -25122,8 +24993,6 @@ snapshots: typescript@5.8.2: {} - ufo@1.6.1: {} - uglify-js@2.8.29: dependencies: source-map: 0.5.7 @@ -25481,22 +25350,22 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-plugin-conditional-compile@1.4.3(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)): + vite-plugin-conditional-compile@1.4.3(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)): dependencies: '@babel/core': 7.26.10 - vite: 5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0) + vite: 7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5) transitivePeerDependencies: - supports-color - vite-plugin-eslint@1.8.1(eslint@9.23.0)(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)): + vite-plugin-eslint@1.8.1(eslint@9.23.0)(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 9.23.0 rollup: 2.79.2 - vite: 5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0) + vite: 7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5) - vite-plugin-html@3.2.2(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)): + vite-plugin-html@3.2.2(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -25510,7 +25379,7 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0) + vite: 7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5) vite@4.5.2(@types/node@22.13.14)(less@4.1.3)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0): dependencies: @@ -25525,11 +25394,14 @@ snapshots: sass: 1.86.0 terser: 5.39.0 - vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0): + vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5): dependencies: - esbuild: 0.21.5 - postcss: 8.5.3 - rollup: 4.38.0 + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.5 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 18.19.84 fsevents: 2.3.3 @@ -25537,6 +25409,7 @@ snapshots: lightningcss: 1.22.1 sass: 1.86.0 terser: 5.39.0 + tsx: 4.20.5 vm-browserify@1.1.2: {} @@ -25577,8 +25450,6 @@ snapshots: webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} - webidl-conversions@7.0.0: {} webpack-5-chain@8.0.1: @@ -25636,12 +25507,6 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 diff --git a/turbo.json b/turbo.json new file mode 100644 index 000000000..dfd2deb92 --- /dev/null +++ b/turbo.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "dev": { + "cache": false, + "persistent": true + }, + "dev:ce": { + "cache": false, + "persistent": true + }, + "dev:ee": { + "cache": false, + "persistent": true + }, + "dev:demo": { + "cache": false, + "persistent": true + }, + "build": { + "outputs": [ + "dist/**", + "es/**", + "lib/**" + ] + }, + "build:ee": { + "outputs": [ + "dist/**", + "es/**", + "lib/**" + ] + }, + "build:demo": { + "outputs": [ + "dist/**", + "es/**", + "lib/**" + ] + }, + "checker": { + "outputs": [] + }, + "base#build": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ] + }, + "base#build:ee": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ] + }, + "base#build:demo": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ] + } + } +} \ No newline at end of file From d1287e5e9e52d68ab278b3b162f9d7227fbbe0d3 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Wed, 17 Dec 2025 15:18:55 +0800 Subject: [PATCH 02/12] ci: fix error --- .github/workflows/main.yml | 8 +++++++- package.json | 2 +- packages/base/package.json | 4 ++++ turbo.json | 24 ++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d66b9afaa..31b643b30 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: ${{ runner.os }}-turbo- - name: Code lint checker - run: pnpm turbo run checker + run: pnpm run checker test-ee: runs-on: ubuntu-latest @@ -50,6 +50,9 @@ jobs: restore-keys: | ${{ runner.os }}-turbo- + - name: Build dms-kit (required for tests) + run: pnpm turbo run build --filter=@actiontech/dms-kit + - name: Coverage test report ee run: sh ./scripts/jest/run-ci-ee.sh ${{ matrix.shard }} ${{ strategy.job-total }} @@ -76,6 +79,9 @@ jobs: restore-keys: | ${{ runner.os }}-turbo- + - name: Build dms-kit (required for tests) + run: pnpm turbo run build --filter=@actiontech/dms-kit + - name: Coverage test report ce run: sh ./scripts/jest/run-ci-ce.sh diff --git a/package.json b/package.json index 0b5326a37..8bc15d142 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "eslint": "eslint packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "stylelint": "stylelint packages/*/{src,lib}/**/{*.less,style.ts,element.ts}", "ts-check": "tsc --noEmit", - "checker": "concurrently \"pnpm ts-check\" \"pnpm eslint\" \"pnpm stylelint\" \"pnpm prettier:c\"", + "checker": "turbo run ts-check eslint stylelint prettier:c --filter=base", "test": "sh ./scripts/jest/run.sh", "test:c": "sh ./scripts/jest/run-coverage.sh", "test:ci": "sh ./scripts/jest/run-ci-ee.sh && sh ./scripts/jest/run-ci-ce.sh && node ./scripts/jest/merge-report-json.js", diff --git a/packages/base/package.json b/packages/base/package.json index 41e7b1c00..65f2ed06f 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -10,6 +10,10 @@ "build:ee": "node ../../scripts/getGitVersion.mjs ee && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ee,SQLE vite build", "build:demo": "node ../../scripts/getGitVersion.mjs trial && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE,DEMO vite build", "preview": "vite preview", + "ts-check": "pnpm -w ts-check", + "eslint": "pnpm -w eslint", + "stylelint": "pnpm -w stylelint", + "prettier:c": "pnpm -w prettier:c", "test": "jest --watchAll=true", "test:c": "jest --coverage", "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" diff --git a/turbo.json b/turbo.json index dfd2deb92..d89eec189 100644 --- a/turbo.json +++ b/turbo.json @@ -38,6 +38,30 @@ "lib/**" ] }, + "ts-check": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ], + "outputs": [] + }, + "eslint": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ], + "outputs": [] + }, + "stylelint": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ], + "outputs": [] + }, + "prettier:c": { + "dependsOn": [ + "@actiontech/dms-kit#build" + ], + "outputs": [] + }, "checker": { "outputs": [] }, From 11d4ca9db2b11e2bc5e8abfa08c0d985e19436e5 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Wed, 17 Dec 2025 15:34:08 +0800 Subject: [PATCH 03/12] chore: remove sqle makefile --- packages/sqle/Makefile | 3 --- packages/sqle/scripts/getGitVersion.js | 15 ----------- packages/sqle/scripts/jest/babelTransform.js | 3 --- packages/sqle/scripts/jest/fileTransform.js | 3 --- packages/sqle/scripts/moveAntdCss.js | 26 -------------------- 5 files changed, 50 deletions(-) delete mode 100644 packages/sqle/Makefile delete mode 100644 packages/sqle/scripts/getGitVersion.js delete mode 100644 packages/sqle/scripts/jest/babelTransform.js delete mode 100644 packages/sqle/scripts/jest/fileTransform.js delete mode 100644 packages/sqle/scripts/moveAntdCss.js diff --git a/packages/sqle/Makefile b/packages/sqle/Makefile deleted file mode 100644 index 949d4242d..000000000 --- a/packages/sqle/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -test: - docker pull docker-registry:5000/actiontech/sqle-ui-unit-test && \ - docker run --rm -v ${shell pwd}:/app docker-registry:5000/actiontech/sqle-ui-unit-test diff --git a/packages/sqle/scripts/getGitVersion.js b/packages/sqle/scripts/getGitVersion.js deleted file mode 100644 index dbda091bb..000000000 --- a/packages/sqle/scripts/getGitVersion.js +++ /dev/null @@ -1,15 +0,0 @@ -const child_process = require('child_process'); -const path = require('path'); -const fs = require('fs'); -let version = ''; -let branch = child_process.execSync('git rev-parse --abbrev-ref HEAD', { - encoding: 'utf8', -}); -let commitId = child_process.execSync('git rev-parse --short HEAD', { - encoding: 'utf8', -}); -version = `${branch.split('\n')[0]} ${commitId.split('\n')[0]}`; -const filePath = path.resolve(process.cwd(), './src/scripts/version.ts'); - -const command = `export const UI_VERSION="${version}"`; -fs.writeFileSync(filePath, command); diff --git a/packages/sqle/scripts/jest/babelTransform.js b/packages/sqle/scripts/jest/babelTransform.js deleted file mode 100644 index 87c0570bd..000000000 --- a/packages/sqle/scripts/jest/babelTransform.js +++ /dev/null @@ -1,3 +0,0 @@ -const commonBabelTransForm = require('@actiontech/shared/scripts/jest/babelTransform'); - -module.exports = commonBabelTransForm; \ No newline at end of file diff --git a/packages/sqle/scripts/jest/fileTransform.js b/packages/sqle/scripts/jest/fileTransform.js deleted file mode 100644 index c84f7627f..000000000 --- a/packages/sqle/scripts/jest/fileTransform.js +++ /dev/null @@ -1,3 +0,0 @@ -const commonFileTransform = require('@actiontech/shared/scripts/jest/fileTransform') - -module.exports = commonFileTransform; diff --git a/packages/sqle/scripts/moveAntdCss.js b/packages/sqle/scripts/moveAntdCss.js deleted file mode 100644 index 39358e939..000000000 --- a/packages/sqle/scripts/moveAntdCss.js +++ /dev/null @@ -1,26 +0,0 @@ -const path = require('path'); -const fs = require('fs'); - -const cwd = process.cwd(); - -const antdStyle = path.resolve(cwd, './node_modules/antd/dist'); -const lightCss = path.resolve(antdStyle, './antd.min.css'); -const lightCssMap = path.resolve(antdStyle, './antd.min.css.map'); -const darkCss = path.resolve(antdStyle, './antd.dark.min.css'); -const darkCssMap = path.resolve(antdStyle, './antd.dark.min.css.map'); - -const publicPath = path.resolve(cwd, './public/static/css'); - -const pathSet = [lightCss, lightCssMap, darkCss, darkCssMap, publicPath]; - -for (const p of pathSet) { - if (!fs.existsSync(p)) { - console.error(`not find file by ${p}`); - process.exit(1); - } -} - -fs.copyFileSync(lightCss, `${publicPath}/antd.min.css`); -fs.copyFileSync(lightCssMap, `${publicPath}/antd.min.css.map`); -fs.copyFileSync(darkCss, `${publicPath}/antd.dark.min.css`); -fs.copyFileSync(darkCssMap, `${publicPath}/antd.dark.min.css.map`); From 72cb26c5d5cb02b59e15e89845c225f084380a5f Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 18 Dec 2025 10:26:16 +0800 Subject: [PATCH 04/12] feat: add eslint-config package --- .gitignore | 2 +- .../cli => cli}/create-dms-page/README.md | 0 .../cli => cli}/create-dms-page/bin/core.js | 0 cli/create-dms-page/eslint.config.mjs | 10 + .../cli => cli}/create-dms-page/package.json | 6 +- .../create-dms-page/src/common/Task.ts | 0 .../create-dms-page/src/create-dms-page.ts | 0 .../cli => cli}/create-dms-page/src/index.ts | 0 .../src/module/icon-manager/index.ts | 0 .../src/module/icon-manager/interface.ts | 0 .../create-dms-page/src/module/interface.ts | 0 .../src/module/locale-manager/index.ts | 0 .../src/module/locale-manager/interface.ts | 0 .../src/module/menu-manager/index.ts | 0 .../src/module/menu-manager/interface.ts | 0 .../src/module/module-orchestrator.ts | 0 .../module/page-component-manager/index.ts | 0 .../page-component-manager/interface.ts | 0 .../module/route-path-config-manager/index.ts | 0 .../route-path-config-manager/interface.ts | 0 .../create-dms-page/src/template/index.ts | 0 .../create-dms-page/src/types.d.ts | 0 .../create-dms-page/src/utils/babel-utils.ts | 0 .../create-dms-page/src/utils/handle-error.ts | 0 .../create-dms-page/src/utils/logger.ts | 0 .../create-dms-page/src/utils/path-utils.ts | 0 .../create-dms-page/src/utils/platform.ts | 0 .../create-dms-page/src/utils/spawn-util.ts | 0 .../create-dms-page/src/utils/str-utils.ts | 0 .../create-dms-page/src/utils/writer-utils.ts | 0 .../cli => cli}/create-dms-page/tsconfig.json | 0 .../cli => cli}/dms-kit-publish/.env.example | 0 .../cli => cli}/dms-kit-publish/bin/core.js | 0 cli/dms-kit-publish/eslint.config.mjs | 13 ++ .../cli => cli}/dms-kit-publish/package.json | 6 +- .../scripts/setup-local-test.sh | 0 .../scripts/stop-local-test.sh | 0 .../dms-kit-publish/src/config/environment.ts | 0 .../dms-kit-publish/src/config/index.ts | 0 .../dms-kit-publish/src/constants/packages.ts | 0 .../cli => cli}/dms-kit-publish/src/index.ts | 0 .../dms-kit-publish/src/services/deploy.ts | 0 .../src/services/notification.ts | 0 .../dms-kit-publish/src/services/validator.ts | 0 .../dms-kit-publish/src/types/config.ts | 0 .../dms-kit-publish/src/types/error.ts | 0 .../dms-kit-publish/src/types/index.ts | 0 .../dms-kit-publish/src/types/package.ts | 0 .../dms-kit-publish/src/utils/changelog.ts | 0 .../dms-kit-publish/src/utils/compress.ts | 0 .../dms-kit-publish/src/utils/exec.ts | 0 .../dms-kit-publish/src/utils/logger.ts | 0 .../cli => cli}/dms-kit-publish/tsconfig.json | 0 eslint.config.mjs | 101 ---------- package.json | 2 +- packages/base/eslint.config.mjs | 10 + packages/base/package.json | 8 +- .../src/hooks/useProjectTips/index.test.ts | 6 +- packages/dms-kit/eslint.config.mjs | 11 + packages/dms-kit/package.json | 6 +- .../components/CronInput/CronInput.test.tsx | 1 - packages/eslint-config/base.mjs | 90 +++++++++ packages/eslint-config/node.mjs | 28 +++ packages/eslint-config/package.json | 11 + packages/eslint-config/react.mjs | 61 ++++++ packages/icons/eslint.config.mjs | 9 + packages/icons/package.json | 6 +- packages/shared/eslint.config.mjs | 9 + packages/shared/package.json | 3 + packages/sqle/eslint.config.mjs | 9 + packages/sqle/package.json | 6 +- .../RewrittenSuggestionDetails.test.tsx | 6 +- .../hooks/useRuleVersionTips/index.test.tsx | 1 - .../__tests__/ModifedSqlAuditResult.test.tsx | 8 +- .../GlobalDashboard/__tests__/index.test.tsx | 4 +- .../Graph/hooks/__tests__/useGraph.test.ts | 2 +- .../__tests__/index.test.tsx | 4 +- .../Create/__tests__/index.test.tsx | 6 +- .../hooks/usePanelCommonRequest.test.ts | 10 +- .../__tests__/useAllowAuditLevel.test.ts | 2 +- .../List/__tests__/index.test.tsx | 14 +- .../Create/__tests__/index.test.tsx | 14 +- .../Detail/__tests__/index.test.tsx | 1 + pnpm-lock.yaml | 188 ++++++++++-------- pnpm-workspace.yaml | 2 +- turbo.json | 7 +- 86 files changed, 438 insertions(+), 245 deletions(-) rename {scripts/cli => cli}/create-dms-page/README.md (100%) rename {scripts/cli => cli}/create-dms-page/bin/core.js (100%) create mode 100644 cli/create-dms-page/eslint.config.mjs rename {scripts/cli => cli}/create-dms-page/package.json (83%) rename {scripts/cli => cli}/create-dms-page/src/common/Task.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/create-dms-page.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/icon-manager/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/icon-manager/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/locale-manager/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/locale-manager/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/menu-manager/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/menu-manager/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/module-orchestrator.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/page-component-manager/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/page-component-manager/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/route-path-config-manager/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/module/route-path-config-manager/interface.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/template/index.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/types.d.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/babel-utils.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/handle-error.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/logger.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/path-utils.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/platform.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/spawn-util.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/str-utils.ts (100%) rename {scripts/cli => cli}/create-dms-page/src/utils/writer-utils.ts (100%) rename {scripts/cli => cli}/create-dms-page/tsconfig.json (100%) rename {scripts/cli => cli}/dms-kit-publish/.env.example (100%) rename {scripts/cli => cli}/dms-kit-publish/bin/core.js (100%) create mode 100644 cli/dms-kit-publish/eslint.config.mjs rename {scripts/cli => cli}/dms-kit-publish/package.json (80%) rename {scripts/cli => cli}/dms-kit-publish/scripts/setup-local-test.sh (100%) rename {scripts/cli => cli}/dms-kit-publish/scripts/stop-local-test.sh (100%) rename {scripts/cli => cli}/dms-kit-publish/src/config/environment.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/config/index.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/constants/packages.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/index.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/services/deploy.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/services/notification.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/services/validator.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/types/config.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/types/error.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/types/index.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/types/package.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/utils/changelog.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/utils/compress.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/utils/exec.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/src/utils/logger.ts (100%) rename {scripts/cli => cli}/dms-kit-publish/tsconfig.json (100%) delete mode 100644 eslint.config.mjs create mode 100644 packages/base/eslint.config.mjs create mode 100644 packages/dms-kit/eslint.config.mjs create mode 100644 packages/eslint-config/base.mjs create mode 100644 packages/eslint-config/node.mjs create mode 100644 packages/eslint-config/package.json create mode 100644 packages/eslint-config/react.mjs create mode 100644 packages/icons/eslint.config.mjs create mode 100644 packages/shared/eslint.config.mjs create mode 100644 packages/sqle/eslint.config.mjs diff --git a/.gitignore b/.gitignore index 6de2e5d7b..9e73a3773 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ # dependencies /packages/*/node_modules -/scripts/**/node_modules +/cli/**/node_modules /node_modules /.pnpm-store /.pnp diff --git a/scripts/cli/create-dms-page/README.md b/cli/create-dms-page/README.md similarity index 100% rename from scripts/cli/create-dms-page/README.md rename to cli/create-dms-page/README.md diff --git a/scripts/cli/create-dms-page/bin/core.js b/cli/create-dms-page/bin/core.js similarity index 100% rename from scripts/cli/create-dms-page/bin/core.js rename to cli/create-dms-page/bin/core.js diff --git a/cli/create-dms-page/eslint.config.mjs b/cli/create-dms-page/eslint.config.mjs new file mode 100644 index 000000000..87a903c51 --- /dev/null +++ b/cli/create-dms-page/eslint.config.mjs @@ -0,0 +1,10 @@ +import node from '@actiontech/dms-eslint-config/node'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...node, + { + files: ['src/**/*.{ts,js}'] + // 可以在此处添加本包特有的覆盖规则 + } +]; diff --git a/scripts/cli/create-dms-page/package.json b/cli/create-dms-page/package.json similarity index 83% rename from scripts/cli/create-dms-page/package.json rename to cli/create-dms-page/package.json index f15923848..0edeec0bf 100644 --- a/scripts/cli/create-dms-page/package.json +++ b/cli/create-dms-page/package.json @@ -10,13 +10,15 @@ ], "scripts": { "build:watch": "tsc -w", - "build": "tsc" + "build": "tsc", + "eslint": "eslint src" }, "keywords": [], "license": "ISC", "devDependencies": { "@types/babel__generator": "^7.6.8", - "@types/babel__traverse": "^7.20.6" + "@types/babel__traverse": "^7.20.6", + "@actiontech/dms-eslint-config": "workspace:^" }, "dependencies": { "@babel/generator": "^7.25.0", diff --git a/scripts/cli/create-dms-page/src/common/Task.ts b/cli/create-dms-page/src/common/Task.ts similarity index 100% rename from scripts/cli/create-dms-page/src/common/Task.ts rename to cli/create-dms-page/src/common/Task.ts diff --git a/scripts/cli/create-dms-page/src/create-dms-page.ts b/cli/create-dms-page/src/create-dms-page.ts similarity index 100% rename from scripts/cli/create-dms-page/src/create-dms-page.ts rename to cli/create-dms-page/src/create-dms-page.ts diff --git a/scripts/cli/create-dms-page/src/index.ts b/cli/create-dms-page/src/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/index.ts rename to cli/create-dms-page/src/index.ts diff --git a/scripts/cli/create-dms-page/src/module/icon-manager/index.ts b/cli/create-dms-page/src/module/icon-manager/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/icon-manager/index.ts rename to cli/create-dms-page/src/module/icon-manager/index.ts diff --git a/scripts/cli/create-dms-page/src/module/icon-manager/interface.ts b/cli/create-dms-page/src/module/icon-manager/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/icon-manager/interface.ts rename to cli/create-dms-page/src/module/icon-manager/interface.ts diff --git a/scripts/cli/create-dms-page/src/module/interface.ts b/cli/create-dms-page/src/module/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/interface.ts rename to cli/create-dms-page/src/module/interface.ts diff --git a/scripts/cli/create-dms-page/src/module/locale-manager/index.ts b/cli/create-dms-page/src/module/locale-manager/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/locale-manager/index.ts rename to cli/create-dms-page/src/module/locale-manager/index.ts diff --git a/scripts/cli/create-dms-page/src/module/locale-manager/interface.ts b/cli/create-dms-page/src/module/locale-manager/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/locale-manager/interface.ts rename to cli/create-dms-page/src/module/locale-manager/interface.ts diff --git a/scripts/cli/create-dms-page/src/module/menu-manager/index.ts b/cli/create-dms-page/src/module/menu-manager/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/menu-manager/index.ts rename to cli/create-dms-page/src/module/menu-manager/index.ts diff --git a/scripts/cli/create-dms-page/src/module/menu-manager/interface.ts b/cli/create-dms-page/src/module/menu-manager/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/menu-manager/interface.ts rename to cli/create-dms-page/src/module/menu-manager/interface.ts diff --git a/scripts/cli/create-dms-page/src/module/module-orchestrator.ts b/cli/create-dms-page/src/module/module-orchestrator.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/module-orchestrator.ts rename to cli/create-dms-page/src/module/module-orchestrator.ts diff --git a/scripts/cli/create-dms-page/src/module/page-component-manager/index.ts b/cli/create-dms-page/src/module/page-component-manager/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/page-component-manager/index.ts rename to cli/create-dms-page/src/module/page-component-manager/index.ts diff --git a/scripts/cli/create-dms-page/src/module/page-component-manager/interface.ts b/cli/create-dms-page/src/module/page-component-manager/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/page-component-manager/interface.ts rename to cli/create-dms-page/src/module/page-component-manager/interface.ts diff --git a/scripts/cli/create-dms-page/src/module/route-path-config-manager/index.ts b/cli/create-dms-page/src/module/route-path-config-manager/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/route-path-config-manager/index.ts rename to cli/create-dms-page/src/module/route-path-config-manager/index.ts diff --git a/scripts/cli/create-dms-page/src/module/route-path-config-manager/interface.ts b/cli/create-dms-page/src/module/route-path-config-manager/interface.ts similarity index 100% rename from scripts/cli/create-dms-page/src/module/route-path-config-manager/interface.ts rename to cli/create-dms-page/src/module/route-path-config-manager/interface.ts diff --git a/scripts/cli/create-dms-page/src/template/index.ts b/cli/create-dms-page/src/template/index.ts similarity index 100% rename from scripts/cli/create-dms-page/src/template/index.ts rename to cli/create-dms-page/src/template/index.ts diff --git a/scripts/cli/create-dms-page/src/types.d.ts b/cli/create-dms-page/src/types.d.ts similarity index 100% rename from scripts/cli/create-dms-page/src/types.d.ts rename to cli/create-dms-page/src/types.d.ts diff --git a/scripts/cli/create-dms-page/src/utils/babel-utils.ts b/cli/create-dms-page/src/utils/babel-utils.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/babel-utils.ts rename to cli/create-dms-page/src/utils/babel-utils.ts diff --git a/scripts/cli/create-dms-page/src/utils/handle-error.ts b/cli/create-dms-page/src/utils/handle-error.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/handle-error.ts rename to cli/create-dms-page/src/utils/handle-error.ts diff --git a/scripts/cli/create-dms-page/src/utils/logger.ts b/cli/create-dms-page/src/utils/logger.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/logger.ts rename to cli/create-dms-page/src/utils/logger.ts diff --git a/scripts/cli/create-dms-page/src/utils/path-utils.ts b/cli/create-dms-page/src/utils/path-utils.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/path-utils.ts rename to cli/create-dms-page/src/utils/path-utils.ts diff --git a/scripts/cli/create-dms-page/src/utils/platform.ts b/cli/create-dms-page/src/utils/platform.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/platform.ts rename to cli/create-dms-page/src/utils/platform.ts diff --git a/scripts/cli/create-dms-page/src/utils/spawn-util.ts b/cli/create-dms-page/src/utils/spawn-util.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/spawn-util.ts rename to cli/create-dms-page/src/utils/spawn-util.ts diff --git a/scripts/cli/create-dms-page/src/utils/str-utils.ts b/cli/create-dms-page/src/utils/str-utils.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/str-utils.ts rename to cli/create-dms-page/src/utils/str-utils.ts diff --git a/scripts/cli/create-dms-page/src/utils/writer-utils.ts b/cli/create-dms-page/src/utils/writer-utils.ts similarity index 100% rename from scripts/cli/create-dms-page/src/utils/writer-utils.ts rename to cli/create-dms-page/src/utils/writer-utils.ts diff --git a/scripts/cli/create-dms-page/tsconfig.json b/cli/create-dms-page/tsconfig.json similarity index 100% rename from scripts/cli/create-dms-page/tsconfig.json rename to cli/create-dms-page/tsconfig.json diff --git a/scripts/cli/dms-kit-publish/.env.example b/cli/dms-kit-publish/.env.example similarity index 100% rename from scripts/cli/dms-kit-publish/.env.example rename to cli/dms-kit-publish/.env.example diff --git a/scripts/cli/dms-kit-publish/bin/core.js b/cli/dms-kit-publish/bin/core.js similarity index 100% rename from scripts/cli/dms-kit-publish/bin/core.js rename to cli/dms-kit-publish/bin/core.js diff --git a/cli/dms-kit-publish/eslint.config.mjs b/cli/dms-kit-publish/eslint.config.mjs new file mode 100644 index 000000000..905eff995 --- /dev/null +++ b/cli/dms-kit-publish/eslint.config.mjs @@ -0,0 +1,13 @@ +import node from '@actiontech/dms-eslint-config/node'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...node, + { + files: ['src/**/*.{ts,js}'] + // 可以在此处添加本包特有的覆盖规则,例如: + // rules: { + // 'no-console': 'off' + // } + } +]; diff --git a/scripts/cli/dms-kit-publish/package.json b/cli/dms-kit-publish/package.json similarity index 80% rename from scripts/cli/dms-kit-publish/package.json rename to cli/dms-kit-publish/package.json index 08ad5444c..b9316bff8 100644 --- a/scripts/cli/dms-kit-publish/package.json +++ b/cli/dms-kit-publish/package.json @@ -11,7 +11,8 @@ "scripts": { "build:watch": "tsc -w", "build": "tsc", - "start": "tsc && node dist/index.js" + "start": "tsc && node dist/index.js", + "eslint": "eslint src" }, "dependencies": { "@octokit/rest": "^20.1.2", @@ -27,6 +28,7 @@ "@types/archiver": "^6.0.3", "@types/node": "^18.0.4", "@types/nodemailer": "^7.0.3", - "@types/semver": "^7.7.1" + "@types/semver": "^7.7.1", + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/scripts/cli/dms-kit-publish/scripts/setup-local-test.sh b/cli/dms-kit-publish/scripts/setup-local-test.sh similarity index 100% rename from scripts/cli/dms-kit-publish/scripts/setup-local-test.sh rename to cli/dms-kit-publish/scripts/setup-local-test.sh diff --git a/scripts/cli/dms-kit-publish/scripts/stop-local-test.sh b/cli/dms-kit-publish/scripts/stop-local-test.sh similarity index 100% rename from scripts/cli/dms-kit-publish/scripts/stop-local-test.sh rename to cli/dms-kit-publish/scripts/stop-local-test.sh diff --git a/scripts/cli/dms-kit-publish/src/config/environment.ts b/cli/dms-kit-publish/src/config/environment.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/config/environment.ts rename to cli/dms-kit-publish/src/config/environment.ts diff --git a/scripts/cli/dms-kit-publish/src/config/index.ts b/cli/dms-kit-publish/src/config/index.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/config/index.ts rename to cli/dms-kit-publish/src/config/index.ts diff --git a/scripts/cli/dms-kit-publish/src/constants/packages.ts b/cli/dms-kit-publish/src/constants/packages.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/constants/packages.ts rename to cli/dms-kit-publish/src/constants/packages.ts diff --git a/scripts/cli/dms-kit-publish/src/index.ts b/cli/dms-kit-publish/src/index.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/index.ts rename to cli/dms-kit-publish/src/index.ts diff --git a/scripts/cli/dms-kit-publish/src/services/deploy.ts b/cli/dms-kit-publish/src/services/deploy.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/services/deploy.ts rename to cli/dms-kit-publish/src/services/deploy.ts diff --git a/scripts/cli/dms-kit-publish/src/services/notification.ts b/cli/dms-kit-publish/src/services/notification.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/services/notification.ts rename to cli/dms-kit-publish/src/services/notification.ts diff --git a/scripts/cli/dms-kit-publish/src/services/validator.ts b/cli/dms-kit-publish/src/services/validator.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/services/validator.ts rename to cli/dms-kit-publish/src/services/validator.ts diff --git a/scripts/cli/dms-kit-publish/src/types/config.ts b/cli/dms-kit-publish/src/types/config.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/types/config.ts rename to cli/dms-kit-publish/src/types/config.ts diff --git a/scripts/cli/dms-kit-publish/src/types/error.ts b/cli/dms-kit-publish/src/types/error.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/types/error.ts rename to cli/dms-kit-publish/src/types/error.ts diff --git a/scripts/cli/dms-kit-publish/src/types/index.ts b/cli/dms-kit-publish/src/types/index.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/types/index.ts rename to cli/dms-kit-publish/src/types/index.ts diff --git a/scripts/cli/dms-kit-publish/src/types/package.ts b/cli/dms-kit-publish/src/types/package.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/types/package.ts rename to cli/dms-kit-publish/src/types/package.ts diff --git a/scripts/cli/dms-kit-publish/src/utils/changelog.ts b/cli/dms-kit-publish/src/utils/changelog.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/utils/changelog.ts rename to cli/dms-kit-publish/src/utils/changelog.ts diff --git a/scripts/cli/dms-kit-publish/src/utils/compress.ts b/cli/dms-kit-publish/src/utils/compress.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/utils/compress.ts rename to cli/dms-kit-publish/src/utils/compress.ts diff --git a/scripts/cli/dms-kit-publish/src/utils/exec.ts b/cli/dms-kit-publish/src/utils/exec.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/utils/exec.ts rename to cli/dms-kit-publish/src/utils/exec.ts diff --git a/scripts/cli/dms-kit-publish/src/utils/logger.ts b/cli/dms-kit-publish/src/utils/logger.ts similarity index 100% rename from scripts/cli/dms-kit-publish/src/utils/logger.ts rename to cli/dms-kit-publish/src/utils/logger.ts diff --git a/scripts/cli/dms-kit-publish/tsconfig.json b/cli/dms-kit-publish/tsconfig.json similarity index 100% rename from scripts/cli/dms-kit-publish/tsconfig.json rename to cli/dms-kit-publish/tsconfig.json diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index b92397d45..000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,101 +0,0 @@ -import { defineConfig, globalIgnores } from 'eslint/config'; -import globals from 'globals'; -import tseslint from 'typescript-eslint'; -import pluginReact from 'eslint-plugin-react'; -import pluginImport from 'eslint-plugin-import'; -import pluginReactHooks from 'eslint-plugin-react-hooks'; -import pluginNode from 'eslint-plugin-node'; - -export default defineConfig([ - tseslint.configs.recommended, - { - files: ['**/scripts/**/*.{js,mjs,cjs,ts,jsx,tsx}'], - plugins: { - import: pluginImport, - node: pluginNode - }, - languageOptions: { - globals: { - ...globals.node - } - }, - rules: { - '@typescript-eslint/no-unused-vars': 'warn', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-require-imports': 'warn', - '@typescript-eslint/no-empty-object-type': 'off' - } - }, - { - files: ['**/packages/**/*.{js,mjs,cjs,ts,jsx,tsx}'], - ...pluginReact.configs.flat.recommended, - plugins: { - import: pluginImport, - react: pluginReact, - 'react-hooks': pluginReactHooks - }, - languageOptions: { - ...pluginReact.configs.flat.recommended.languageOptions, - globals: { - ...globals.browser - } - }, - settings: { - react: { - pragma: 'React', - version: 'detect' - } - }, - rules: { - ...pluginReactHooks.configs.recommended.rules, - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': 'error', - 'no-shadow-restricted-names': 'error', - 'testing-library/render-result-naming-convention': 0, - 'prefer-const': 'warn', - '@typescript-eslint/no-non-null-asserted-optional-chain': 0, - '@typescript-eslint/no-non-null-assertion': 0, - 'no-extra-boolean-cast': 'off', - 'import/no-anonymous-default-export': [2, { allowNew: true }], - '@typescript-eslint/no-empty-interface': [ - 'error', - { - allowSingleExtends: true - } - ], - '@typescript-eslint/no-explicit-any': 'off', - 'react/display-name': 0, - 'react/prop-types': 'off', - 'react/require-default-props': 'off', - 'no-console': 'warn', - '@typescript-eslint/no-unused-vars': 'warn', - 'no-template-curly-in-string': 'warn', - '@typescript-eslint/no-empty-object-type': 'off', - '@typescript-eslint/no-empty-function': 'warn', - 'import/no-anonymous-default-export': 'warn' - } - }, - globalIgnores([ - 'jest.config.js', - 'eslint.config.mjs', - '**/packages/**/*.test.ts', - '**/packages/**/*.test.tsx', - '**/packages/shared/lib/api/*', - '**/packages/**/mockApi/*', - '**/packages/**/testUtil/*', - '**/packages/**/demo/*', - '**/packages/**/demos/*', - 'jest-setup.ts', - 'node_modules/*', - '**/packages/*/node_modules/*', - '**/scripts/jest/*.js', - '/**/node_modules/*', - 'dist', - 'packages/*/dist', - 'packages/*/scripts', - '# config', - 'vite.config.ts', - '.eslintrc.json', - 'es' - ]) -]); diff --git a/package.json b/package.json index 8bc15d142..cca99faf2 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "build:demo": "turbo run build:demo --filter=base", "prettier:w": "prettier -w packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "prettier:c": "prettier -c packages/*/src/ packages/shared/lib/ scripts/cli/*/src", - "eslint": "eslint packages/*/src/ packages/shared/lib/ scripts/cli/*/src", + "eslint": "turbo run eslint", "stylelint": "stylelint packages/*/{src,lib}/**/{*.less,style.ts,element.ts}", "ts-check": "tsc --noEmit", "checker": "turbo run ts-check eslint stylelint prettier:c --filter=base", diff --git a/packages/base/eslint.config.mjs b/packages/base/eslint.config.mjs new file mode 100644 index 000000000..0275b7362 --- /dev/null +++ b/packages/base/eslint.config.mjs @@ -0,0 +1,10 @@ +import react from '@actiontech/dms-eslint-config/react'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...react, + { + files: ['src/**/*.{ts,tsx,js,jsx}'] + // 本包可以在此处追加或覆盖规则 + } +]; diff --git a/packages/base/package.json b/packages/base/package.json index 65f2ed06f..c61699ed5 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -11,18 +11,16 @@ "build:demo": "node ../../scripts/getGitVersion.mjs trial && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE,DEMO vite build", "preview": "vite preview", "ts-check": "pnpm -w ts-check", - "eslint": "pnpm -w eslint", "stylelint": "pnpm -w stylelint", "prettier:c": "pnpm -w prettier:c", - "test": "jest --watchAll=true", - "test:c": "jest --coverage", - "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" + "eslint": "eslint src" }, "dependencies": { "@actiontech/shared": "workspace:^", "@actiontech/dms-kit": "workspace:^", "babel-preset-react-app": "^10.0.1", "sqle": "workspace:^", - "@actiontech/icons": "workspace:^" + "@actiontech/icons": "workspace:^", + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/base/src/hooks/useProjectTips/index.test.ts b/packages/base/src/hooks/useProjectTips/index.test.ts index 38036d9ac..cdb1ae4b4 100644 --- a/packages/base/src/hooks/useProjectTips/index.test.ts +++ b/packages/base/src/hooks/useProjectTips/index.test.ts @@ -33,9 +33,9 @@ describe('useProjectTips', () => { await act(async () => jest.advanceTimersByTime(3000)); expect(result.current.projectList).toEqual(mockProjectList); expect(result.current.projectIDOptions).toEqual( - mockProjectList.map((project) => ({ - label: project.name, - value: project.uid + mockProjectList.map((p) => ({ + label: p.name, + value: p.uid })) ); expect(result.current.loading).toBeFalsy(); diff --git a/packages/dms-kit/eslint.config.mjs b/packages/dms-kit/eslint.config.mjs new file mode 100644 index 000000000..cb44efd9c --- /dev/null +++ b/packages/dms-kit/eslint.config.mjs @@ -0,0 +1,11 @@ +import react from '@actiontech/dms-eslint-config/react'; +import { globalIgnores } from 'eslint/config'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...react, + { + files: ['src/**/*.{ts,tsx,js,jsx}'] + }, + globalIgnores(['src/**/demo/**']) +]; diff --git a/packages/dms-kit/package.json b/packages/dms-kit/package.json index 017c16388..0af63b696 100644 --- a/packages/dms-kit/package.json +++ b/packages/dms-kit/package.json @@ -18,7 +18,8 @@ "dev": "father dev --incremental", "docs:dev": "dumi dev", "docs:build": "dumi build", - "docs:preview": "dumi preview" + "docs:preview": "dumi preview", + "eslint": "eslint src" }, "dependencies": { "ahooks": "^3.7.0", @@ -53,6 +54,7 @@ "devDependencies": { "father": "^4.5.2", "dumi": "^2.3.8", - "babel-plugin-import": "^1.13.8" + "babel-plugin-import": "^1.13.8", + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/dms-kit/src/components/CronInput/CronInput.test.tsx b/packages/dms-kit/src/components/CronInput/CronInput.test.tsx index e3ea8da32..8885b89c2 100644 --- a/packages/dms-kit/src/components/CronInput/CronInput.test.tsx +++ b/packages/dms-kit/src/components/CronInput/CronInput.test.tsx @@ -188,7 +188,6 @@ describe('lib/CronInputCom', () => { }); it('should handle and display error states correctly', async () => { - const updateErrorMessageSpy = jest.fn(); const { baseElement } = customRender({ inputMode: CronInputModeEnum.Manual, value: '0 0 0 0 0', diff --git a/packages/eslint-config/base.mjs b/packages/eslint-config/base.mjs new file mode 100644 index 000000000..9109303b9 --- /dev/null +++ b/packages/eslint-config/base.mjs @@ -0,0 +1,90 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import globals from 'globals'; +import tseslint from 'typescript-eslint'; +import pluginReact from 'eslint-plugin-react'; +import pluginImport from 'eslint-plugin-import'; +import pluginReactHooks from 'eslint-plugin-react-hooks'; + +// 基础 TS 配置(不包含环境/框架) +export const tsBaseConfigs = tseslint.configs.recommended; + +// React / 浏览器通用配置片段 +const reactConfig = { + files: ['**/*.{ts,tsx,js,jsx}'], + ...pluginReact.configs.flat.recommended, + plugins: { + import: pluginImport, + react: pluginReact, + 'react-hooks': pluginReactHooks + }, + languageOptions: { + ...pluginReact.configs.flat.recommended.languageOptions, + globals: { + ...globals.browser + } + }, + settings: { + react: { + pragma: 'React', + version: 'detect' + } + }, + rules: { + ...pluginReactHooks.configs.recommended.rules, + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'error', + 'no-shadow-restricted-names': 'error', + 'testing-library/render-result-naming-convention': 0, + 'prefer-const': 'warn', + '@typescript-eslint/no-non-null-asserted-optional-chain': 0, + '@typescript-eslint/no-non-null-assertion': 0, + 'no-extra-boolean-cast': 'off', + 'import/no-anonymous-default-export': [2, { allowNew: true }], + '@typescript-eslint/no-empty-interface': [ + 'error', + { + allowSingleExtends: true + } + ], + '@typescript-eslint/no-explicit-any': 'off', + 'react/display-name': 0, + 'react/prop-types': 'off', + 'react/require-default-props': 'off', + 'no-console': 'warn', + '@typescript-eslint/no-unused-vars': 'warn', + 'no-template-curly-in-string': 'warn', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-empty-function': 'warn', + 'import/no-anonymous-default-export': 'warn' + } +}; + +// 通用忽略列表 +export const ignores = globalIgnores([ + 'jest.config.js', + 'eslint.config.mjs', + '**/packages/**/*.test.ts', + '**/packages/**/*.test.tsx', + '**/packages/shared/lib/api/*', + '**/packages/**/mockApi/*', + '**/packages/**/testUtil/*', + '**/packages/**/demo/*', + '**/packages/**/demos/*', + 'jest-setup.ts', + 'node_modules/*', + '**/packages/*/node_modules/*', + '**/scripts/jest/*.js', + '/**/node_modules/*', + 'dist', + 'packages/*/dist', + 'packages/*/scripts', + '# config', + 'vite.config.ts', + '.eslintrc.json', + 'es' +]); + +/** @type {import("eslint").Linter.Config[]} */ +export const base = defineConfig([...tsBaseConfigs, ignores]); + +export default base; diff --git a/packages/eslint-config/node.mjs b/packages/eslint-config/node.mjs new file mode 100644 index 000000000..67e64187d --- /dev/null +++ b/packages/eslint-config/node.mjs @@ -0,0 +1,28 @@ +import globals from 'globals'; +import pluginImport from 'eslint-plugin-import'; +import { tsBaseConfigs, ignores } from './base.mjs'; +import pluginNode from 'eslint-plugin-node'; +import { defineConfig } from 'eslint/config'; + +const nodeConfig = { + files: ['**/*.{js,mjs,cjs,ts}'], + plugins: { + import: pluginImport, + node: pluginNode + }, + languageOptions: { + globals: { + ...globals.node + } + }, + rules: { + '@typescript-eslint/no-unused-vars': 'warn', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-require-imports': 'warn', + '@typescript-eslint/no-empty-object-type': 'off' + } +}; +const node = defineConfig([...tsBaseConfigs, nodeConfig, ignores]); + +/** @type {import("eslint").Linter.Config[]} */ +export default node; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 000000000..825a663bc --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,11 @@ +{ + "name": "@actiontech/dms-eslint-config", + "version": "0.0.0", + "type": "module", + "private": true, + "exports": { + "./base": "./base.mjs", + "./react": "./react.mjs", + "./node": "./node.mjs" + } +} \ No newline at end of file diff --git a/packages/eslint-config/react.mjs b/packages/eslint-config/react.mjs new file mode 100644 index 000000000..7c9c2f026 --- /dev/null +++ b/packages/eslint-config/react.mjs @@ -0,0 +1,61 @@ +import { defineConfig } from 'eslint/config'; +import globals from 'globals'; +import pluginReact from 'eslint-plugin-react'; +import pluginImport from 'eslint-plugin-import'; +import pluginReactHooks from 'eslint-plugin-react-hooks'; +import { tsBaseConfigs, ignores } from './base.mjs'; + +const reactConfig = { + files: ['**/*.{ts,tsx,js,jsx}'], + ...pluginReact.configs.flat.recommended, + plugins: { + import: pluginImport, + react: pluginReact, + 'react-hooks': pluginReactHooks + }, + languageOptions: { + ...pluginReact.configs.flat.recommended.languageOptions, + globals: { + ...globals.browser + } + }, + settings: { + react: { + pragma: 'React', + version: 'detect' + } + }, + rules: { + ...pluginReactHooks.configs.recommended.rules, + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'error', + 'no-shadow-restricted-names': 'error', + 'testing-library/render-result-naming-convention': 0, + 'prefer-const': 'warn', + '@typescript-eslint/no-non-null-asserted-optional-chain': 0, + '@typescript-eslint/no-non-null-assertion': 0, + 'no-extra-boolean-cast': 'off', + 'import/no-anonymous-default-export': [2, { allowNew: true }], + '@typescript-eslint/no-empty-interface': [ + 'error', + { + allowSingleExtends: true + } + ], + '@typescript-eslint/no-explicit-any': 'off', + 'react/display-name': 0, + 'react/prop-types': 'off', + 'react/require-default-props': 'off', + 'no-console': 'warn', + '@typescript-eslint/no-unused-vars': 'warn', + 'no-template-curly-in-string': 'warn', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-empty-function': 'warn', + 'import/no-anonymous-default-export': 'warn' + } +}; + +const react = defineConfig([...tsBaseConfigs, reactConfig, ignores]); + +/** @type {import("eslint").Linter.Config[]} */ +export default react; diff --git a/packages/icons/eslint.config.mjs b/packages/icons/eslint.config.mjs new file mode 100644 index 000000000..24eb3a4fb --- /dev/null +++ b/packages/icons/eslint.config.mjs @@ -0,0 +1,9 @@ +import react from '@actiontech/dms-eslint-config/react'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...react, + { + files: ['src/**/*.{ts,tsx,js,jsx}'] + } +]; diff --git a/packages/icons/package.json b/packages/icons/package.json index 48cf230af..7be771ec4 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -10,7 +10,8 @@ "docs:preview": "dumi preview", "build": "father build", "icon:g": "svgr --template template/template.cjs -d src svg/ ", - "docs:g": "node scripts/generate.js" + "docs:g": "node scripts/generate.js", + "eslint": "eslint src" }, "keywords": [], "author": "", @@ -19,6 +20,7 @@ "@babel/preset-react": "^7.24.7", "@svgr/cli": "^8.1.0", "dumi": "^2.3.8", - "father": "^4.1.0" + "father": "^4.1.0", + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/shared/eslint.config.mjs b/packages/shared/eslint.config.mjs new file mode 100644 index 000000000..24eb3a4fb --- /dev/null +++ b/packages/shared/eslint.config.mjs @@ -0,0 +1,9 @@ +import react from '@actiontech/dms-eslint-config/react'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...react, + { + files: ['src/**/*.{ts,tsx,js,jsx}'] + } +]; diff --git a/packages/shared/package.json b/packages/shared/package.json index f06355dc1..81693428e 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -6,5 +6,8 @@ "dependencies": { "@actiontech/icons": "workspace:^", "@actiontech/dms-kit": "workspace:^" + }, + "devDependencies": { + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/sqle/eslint.config.mjs b/packages/sqle/eslint.config.mjs new file mode 100644 index 000000000..24eb3a4fb --- /dev/null +++ b/packages/sqle/eslint.config.mjs @@ -0,0 +1,9 @@ +import react from '@actiontech/dms-eslint-config/react'; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...react, + { + files: ['src/**/*.{ts,tsx,js,jsx}'] + } +]; diff --git a/packages/sqle/package.json b/packages/sqle/package.json index 32ac1a91e..0cab6ffc4 100644 --- a/packages/sqle/package.json +++ b/packages/sqle/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "private": true, "main": "src/App.tsx", + "scripts": { + "eslint": "eslint src" + }, "dependencies": { "@actiontech/icons": "workspace:^", "@actiontech/shared": "workspace:^1.0.0", @@ -23,6 +26,7 @@ }, "devDependencies": { "graphology-types": "^0.24.8", - "jest-canvas-mock": "^2.2.0" + "jest-canvas-mock": "^2.2.0", + "@actiontech/dms-eslint-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/RewrittenSuggestionDetails.test.tsx b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/RewrittenSuggestionDetails.test.tsx index e5de733d6..2c21899b4 100644 --- a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/RewrittenSuggestionDetails.test.tsx +++ b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/RewrittenSuggestionDetails.test.tsx @@ -114,19 +114,19 @@ LIMIT 1000 OFFSET 500; }); it('should display combined SQL for subsequent items', () => { - const mockDataSource = SqlRewrittenMockDataNoDDL.suggestions?.filter( + const mockDataSourceParam = SqlRewrittenMockDataNoDDL.suggestions?.filter( (v) => v.type === RewriteSuggestionTypeEnum.statement )!; const { container } = sqleSuperRender( ); - fireEvent.click(screen.getByText(mockDataSource[0].rule_name!)); + fireEvent.click(screen.getByText(mockDataSourceParam[0].rule_name!)); expect(container).toMatchSnapshot(); }); diff --git a/packages/sqle/src/hooks/useRuleVersionTips/index.test.tsx b/packages/sqle/src/hooks/useRuleVersionTips/index.test.tsx index cd0a04783..f642f5e89 100644 --- a/packages/sqle/src/hooks/useRuleVersionTips/index.test.tsx +++ b/packages/sqle/src/hooks/useRuleVersionTips/index.test.tsx @@ -21,7 +21,6 @@ describe('useRuleVersionTips', () => { }); it('should get rule version tips when call updateRuleVersionTips', async () => { - const requestSpy = rule_template.mockGetDriverRuleVersionTips(); const { result } = renderHook(() => useRuleVersionTips()); expect(result.current.ruleVersionTips).toEqual([]); expect(result.current.loading).toBeFalsy(); diff --git a/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/ModifedSqlAuditResult.test.tsx b/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/ModifedSqlAuditResult.test.tsx index e67c6c6ca..af2e965ea 100644 --- a/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/ModifedSqlAuditResult.test.tsx +++ b/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/ModifedSqlAuditResult.test.tsx @@ -155,10 +155,10 @@ describe('ModifiedSqlAuditResult', () => { ]; describe('index', () => { - const customRender = (dataSource?: IDatabaseDiffModifySQL[]) => { + const customRender = (dataSourceParam?: IDatabaseDiffModifySQL[]) => { return sqleSuperRender( { describe('list', () => { const customRender = ( - dataSource?: ISQLStatementWithAuditResult[], + dataSourceParam?: ISQLStatementWithAuditResult[], auditError?: string ) => { return sqleSuperRender( { await act(async () => jest.advanceTimersByTime(0)); fireEvent.click(getBySelector('div[title="default"]')); - const instance = instanceTipsMockData[0]; + const instanceInfo = instanceTipsMockData[0]; fireEvent.click( getBySelector( - `div[title="${instance.instance_name}(${instance.host}:${instance.port})"]` + `div[title="${instanceInfo.instance_name}(${instanceInfo.host}:${instanceInfo.port})"]` ) ); await act(async () => jest.advanceTimersByTime(0)); diff --git a/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts b/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts index c219867b0..ae742d96a 100644 --- a/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts +++ b/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts @@ -112,7 +112,7 @@ describe('useGraph', () => { edges: [{ from_id: '1', to_id: '2' }] }; - // @ts-ignore + // @ts-expect-error(This is a mock implementation) louvain.assign.mockImplementation((graph) => { graph.forEachNode((node: string) => { graph.setNodeAttribute(node, 'community', '0'); diff --git a/packages/sqle/src/page/PipelineConfiguration/Common/ConfigurationForm/PipelineNodeField/__tests__/index.test.tsx b/packages/sqle/src/page/PipelineConfiguration/Common/ConfigurationForm/PipelineNodeField/__tests__/index.test.tsx index 33e87187a..b2a984d3e 100644 --- a/packages/sqle/src/page/PipelineConfiguration/Common/ConfigurationForm/PipelineNodeField/__tests__/index.test.tsx +++ b/packages/sqle/src/page/PipelineConfiguration/Common/ConfigurationForm/PipelineNodeField/__tests__/index.test.tsx @@ -194,11 +194,11 @@ describe('sqle/PipelineConfiguration/PipelineNodeField', () => { expect(getInstanceTipListSpy).toHaveBeenCalledTimes(1); fireEvent.mouseDown(getBySelector('#instance_name')); await act(async () => jest.advanceTimersByTime(0)); - const instance = instanceTipsMockData[0]; + const instanceInfo = instanceTipsMockData[0]; await act(async () => { fireEvent.click( getBySelector( - `div[title="${instance.instance_name}(${instance.host}:${instance.port})"]` + `div[title="${instanceInfo.instance_name}(${instanceInfo.host}:${instanceInfo.port})"]` ) ); await act(async () => jest.advanceTimersByTime(0)); diff --git a/packages/sqle/src/page/PipelineConfiguration/Create/__tests__/index.test.tsx b/packages/sqle/src/page/PipelineConfiguration/Create/__tests__/index.test.tsx index 12098ca9d..39c106f16 100644 --- a/packages/sqle/src/page/PipelineConfiguration/Create/__tests__/index.test.tsx +++ b/packages/sqle/src/page/PipelineConfiguration/Create/__tests__/index.test.tsx @@ -2,7 +2,7 @@ import CreatePipelineConfiguration from '../'; import { screen, cleanup, act, fireEvent } from '@testing-library/react'; import pipeline from '@actiontech/shared/lib/testUtil/mockApi/sqle/pipeline'; import { useNavigate } from 'react-router-dom'; -import { useDispatch, useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; @@ -169,11 +169,11 @@ describe('sqle//PipelineConfiguration/Create', () => { expect(getInstanceTipListSpy).toHaveBeenCalledTimes(1); fireEvent.mouseDown(getBySelector('#instance_name')); await act(async () => jest.advanceTimersByTime(0)); - const instance = instanceTipsMockData[0]; + const instanceInfo = instanceTipsMockData[0]; await act(async () => { fireEvent.click( getBySelector( - `div[title="${instance.instance_name}(${instance.host}:${instance.port})"]` + `div[title="${instanceInfo.instance_name}(${instanceInfo.host}:${instanceInfo.port})"]` ) ); await act(async () => jest.advanceTimersByTime(0)); diff --git a/packages/sqle/src/page/ReportStatistics/EEIndex/hooks/usePanelCommonRequest.test.ts b/packages/sqle/src/page/ReportStatistics/EEIndex/hooks/usePanelCommonRequest.test.ts index 491b2c38e..2dd43ded8 100644 --- a/packages/sqle/src/page/ReportStatistics/EEIndex/hooks/usePanelCommonRequest.test.ts +++ b/packages/sqle/src/page/ReportStatistics/EEIndex/hooks/usePanelCommonRequest.test.ts @@ -15,10 +15,12 @@ describe('ReportStatistics/usePanelCommonRequest', () => { const successFn = jest.fn(); const mockPromiseAPI = (url: string) => { - return new Promise>((resolve, reject) => { - url.includes('success') - ? resolve(createSpySuccessResponse({ data: {} })) - : resolve(createSpyFailResponse({ message: 'error-info' })); + return new Promise>((resolve) => { + if (url.includes('success')) { + resolve(createSpySuccessResponse({ data: {} })); + } else { + resolve(createSpyFailResponse({ message: 'error-info' })); + } }); }; diff --git a/packages/sqle/src/page/SqlExecWorkflow/Create/hooks/__tests__/useAllowAuditLevel.test.ts b/packages/sqle/src/page/SqlExecWorkflow/Create/hooks/__tests__/useAllowAuditLevel.test.ts index abea3e316..1a33057eb 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Create/hooks/__tests__/useAllowAuditLevel.test.ts +++ b/packages/sqle/src/page/SqlExecWorkflow/Create/hooks/__tests__/useAllowAuditLevel.test.ts @@ -47,7 +47,7 @@ describe('sqle/useAllowAuditLevel', () => { ); await act(async () => jest.advanceTimersByTime(3000)); }); - expect(requestGetWorkflowTemplate).toHaveBeenCalled; + expect(requestGetWorkflowTemplate).toHaveBeenCalled(); expect(resetBtnDisabledFn).toHaveBeenCalled(); expect(result.current.submitWorkflowConfirmationMessage).toBe(''); }); diff --git a/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.test.tsx index cfec8034d..9384e41ae 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.test.tsx @@ -104,17 +104,17 @@ describe('sqle/Workflow/List', () => { page_size: 9999 }); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); }); it('render snap', async () => { const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); }); it('render btn batchCancel when is not Admin', async () => { @@ -123,21 +123,21 @@ describe('sqle/Workflow/List', () => { }); const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); }); it('render snap when list is empty', async () => { RequestWorkflowList.mockImplementation(() => createSpySuccessResponse({})); const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); }); it('render snap when list api return error', async () => { RequestWorkflowList.mockImplementation(() => createSpyFailResponse({})); const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); }); it('render list column diff data', async () => { @@ -163,7 +163,7 @@ describe('sqle/Workflow/List', () => { ); const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); - expect(baseElement).toMatchSnapshot; + expect(baseElement).toMatchSnapshot(); fireEvent.click(screen.getByText(workflowName)); await act(async () => jest.advanceTimersByTime(0)); diff --git a/packages/sqle/src/page/SqlManagementConf/Create/__tests__/index.test.tsx b/packages/sqle/src/page/SqlManagementConf/Create/__tests__/index.test.tsx index 3388d876e..e04b66423 100644 --- a/packages/sqle/src/page/SqlManagementConf/Create/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlManagementConf/Create/__tests__/index.test.tsx @@ -122,10 +122,10 @@ describe('test sqle/SqlManagementConf/Create', () => { fireEvent.mouseDown(getBySelector('#instanceId')); await act(async () => jest.advanceTimersByTime(0)); - const instance = instanceTipsMockData[0]; + const instanceInfo = instanceTipsMockData[0]; fireEvent.click( getBySelector( - `div[title="${instance.instance_name}(${instance.host}:${instance.port})"]` + `div[title="${instanceInfo.instance_name}(${instanceInfo.host}:${instanceInfo.port})"]` ) ); await act(async () => jest.advanceTimersByTime(3000)); @@ -134,8 +134,8 @@ describe('test sqle/SqlManagementConf/Create', () => { expect(getGlobalRuleTemplateTipSpy).toHaveBeenCalledTimes(3); expect(getAuditPlanMetaSpy).toHaveBeenCalledTimes(2); expect(getAuditPlanMetaSpy).toHaveBeenNthCalledWith(2, { - filter_instance_type: instance.instance_type, - filter_instance_id: instance.instance_id + filter_instance_type: instanceInfo.instance_type, + filter_instance_id: instanceInfo.instance_id }); await act(async () => jest.advanceTimersByTime(3000)); expect(getInstanceSpy).toHaveBeenCalledTimes(1); @@ -222,7 +222,7 @@ describe('test sqle/SqlManagementConf/Create', () => { await act(async () => jest.advanceTimersByTime(300)); expect(createInstanceAuditPlanSpy).toHaveBeenCalledTimes(1); expect(createInstanceAuditPlanSpy).toHaveBeenNthCalledWith(1, { - instance_id: instance.instance_id, + instance_id: instanceInfo.instance_id, project_name: mockProjectInfo.projectName, audit_plans: [ { @@ -496,10 +496,10 @@ describe('test sqle/SqlManagementConf/Create', () => { fireEvent.mouseDown(getBySelector('#instanceId')); await act(async () => jest.advanceTimersByTime(0)); - const instance = instanceTipsMockData[0]; + const instanceInfo = instanceTipsMockData[0]; fireEvent.click( getBySelector( - `div[title="${instance.instance_name}(${instance.host}:${instance.port})"]` + `div[title="${instanceInfo.instance_name}(${instanceInfo.host}:${instanceInfo.port})"]` ) ); await act(async () => jest.advanceTimersByTime(3000)); diff --git a/packages/sqle/src/page/VersionManagement/Detail/__tests__/index.test.tsx b/packages/sqle/src/page/VersionManagement/Detail/__tests__/index.test.tsx index b7fad541d..485a7c89f 100644 --- a/packages/sqle/src/page/VersionManagement/Detail/__tests__/index.test.tsx +++ b/packages/sqle/src/page/VersionManagement/Detail/__tests__/index.test.tsx @@ -289,6 +289,7 @@ describe('sqle/VersionManagement/Detail', () => { expect(getSqlVersionDetailSpy).toHaveBeenCalledTimes(1); await act(async () => { EventEmitter.emit(EmitterKey.Refresh_Version_Management_Detail); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions async () => jest.advanceTimersByTime(0); }); expect(getSqlVersionDetailSpy).toHaveBeenCalledTimes(2); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 967389b75..bff597b91 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,10 +134,10 @@ importers: devDependencies: '@actiontech/cli-create-dms-page': specifier: workspace:^ - version: link:scripts/cli/create-dms-page + version: link:cli/create-dms-page '@actiontech/cli-dms-kit-publish': specifier: workspace:^ - version: link:scripts/cli/dms-kit-publish + version: link:cli/dms-kit-publish '@cfaester/enzyme-adapter-react-18': specifier: ^0.7.0 version: 0.7.1(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -319,8 +319,97 @@ importers: specifier: ^3.2.2 version: 3.2.2(vite@7.3.0(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)(tsx@4.20.5)) + cli/create-dms-page: + dependencies: + '@babel/generator': + specifier: ^7.25.0 + version: 7.27.0 + '@babel/parser': + specifier: ^7.24.8 + version: 7.27.0 + '@babel/traverse': + specifier: ^7.24.8 + version: 7.27.0 + '@babel/types': + specifier: ^7.24.9 + version: 7.27.0 + '@inquirer/prompts': + specifier: ^5.1.2 + version: 5.5.0 + chalk: + specifier: ^4.1.2 + version: 4.1.2 + commander: + specifier: ^12.1.0 + version: 12.1.0 + node-clipboardy: + specifier: ^1.0.3 + version: 1.0.3 + prettier: + specifier: ^3.3.3 + version: 3.5.3 + zod: + specifier: ^3.23.8 + version: 3.24.2 + devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../../packages/eslint-config + '@types/babel__generator': + specifier: ^7.6.8 + version: 7.6.8 + '@types/babel__traverse': + specifier: ^7.20.6 + version: 7.20.7 + + cli/dms-kit-publish: + dependencies: + '@octokit/rest': + specifier: ^20.1.2 + version: 20.1.2 + archiver: + specifier: ^7.0.1 + version: 7.0.1 + basic-ftp: + specifier: ^5.0.5 + version: 5.0.5 + chalk: + specifier: ^4.1.2 + version: 4.1.2 + dotenv: + specifier: ^17.2.3 + version: 17.2.3 + execa: + specifier: ^8.0.1 + version: 8.0.1 + nodemailer: + specifier: ^7.0.10 + version: 7.0.10 + semver: + specifier: ^7.7.3 + version: 7.7.3 + devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../../packages/eslint-config + '@types/archiver': + specifier: ^6.0.3 + version: 6.0.4 + '@types/node': + specifier: ^18.0.4 + version: 18.19.84 + '@types/nodemailer': + specifier: ^7.0.3 + version: 7.0.3 + '@types/semver': + specifier: ^7.7.1 + version: 7.7.1 + packages/base: dependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../eslint-config '@actiontech/dms-kit': specifier: workspace:^ version: link:../dms-kit @@ -418,6 +507,9 @@ importers: specifier: ^5.0.2 version: 5.8.2 devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../eslint-config babel-plugin-import: specifier: ^1.13.8 version: 1.13.8 @@ -428,8 +520,13 @@ importers: specifier: ^4.5.2 version: 4.5.2(@babel/core@7.26.10)(@types/node@22.13.14)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@1.4.0)(webpack@5.101.3(@swc/core@1.9.2(@swc/helpers@0.5.1))) + packages/eslint-config: {} + packages/icons: devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../eslint-config '@babel/preset-react': specifier: ^7.24.7 version: 7.26.3(@babel/core@7.26.10) @@ -451,6 +548,10 @@ importers: '@actiontech/icons': specifier: workspace:^ version: link:../icons + devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../eslint-config packages/sqle: dependencies: @@ -503,6 +604,9 @@ importers: specifier: ^0.2.4 version: 0.2.4 devDependencies: + '@actiontech/dms-eslint-config': + specifier: workspace:^ + version: link:../eslint-config graphology-types: specifier: ^0.24.8 version: 0.24.8 @@ -510,86 +614,6 @@ importers: specifier: ^2.2.0 version: 2.5.2 - scripts/cli/create-dms-page: - dependencies: - '@babel/generator': - specifier: ^7.25.0 - version: 7.27.0 - '@babel/parser': - specifier: ^7.24.8 - version: 7.27.0 - '@babel/traverse': - specifier: ^7.24.8 - version: 7.27.0 - '@babel/types': - specifier: ^7.24.9 - version: 7.27.0 - '@inquirer/prompts': - specifier: ^5.1.2 - version: 5.5.0 - chalk: - specifier: ^4.1.2 - version: 4.1.2 - commander: - specifier: ^12.1.0 - version: 12.1.0 - node-clipboardy: - specifier: ^1.0.3 - version: 1.0.3 - prettier: - specifier: ^3.3.3 - version: 3.5.3 - zod: - specifier: ^3.23.8 - version: 3.24.2 - devDependencies: - '@types/babel__generator': - specifier: ^7.6.8 - version: 7.6.8 - '@types/babel__traverse': - specifier: ^7.20.6 - version: 7.20.7 - - scripts/cli/dms-kit-publish: - dependencies: - '@octokit/rest': - specifier: ^20.1.2 - version: 20.1.2 - archiver: - specifier: ^7.0.1 - version: 7.0.1 - basic-ftp: - specifier: ^5.0.5 - version: 5.0.5 - chalk: - specifier: ^4.1.2 - version: 4.1.2 - dotenv: - specifier: ^17.2.3 - version: 17.2.3 - execa: - specifier: ^8.0.1 - version: 8.0.1 - nodemailer: - specifier: ^7.0.10 - version: 7.0.10 - semver: - specifier: ^7.7.3 - version: 7.7.3 - devDependencies: - '@types/archiver': - specifier: ^6.0.3 - version: 6.0.4 - '@types/node': - specifier: ^18.0.4 - version: 18.19.84 - '@types/nodemailer': - specifier: ^7.0.3 - version: 7.0.3 - '@types/semver': - specifier: ^7.7.1 - version: 7.7.1 - packages: '@adobe/css-tools@4.4.2': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 14388ec8e..c18b0c9a5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - 'packages/**' - - 'scripts/cli/**' + - 'cli/**' diff --git a/turbo.json b/turbo.json index d89eec189..e47bd1941 100644 --- a/turbo.json +++ b/turbo.json @@ -45,9 +45,7 @@ "outputs": [] }, "eslint": { - "dependsOn": [ - "@actiontech/dms-kit#build" - ], + "dependsOn": [], "outputs": [] }, "stylelint": { @@ -62,9 +60,6 @@ ], "outputs": [] }, - "checker": { - "outputs": [] - }, "base#build": { "dependsOn": [ "@actiontech/dms-kit#build" From b2f0d4280acb2c562af13fbc93dfee92b6fc08db Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 18 Dec 2025 11:07:22 +0800 Subject: [PATCH 05/12] fix: eslint warning --- cli/create-dms-page/eslint.config.mjs | 2 +- cli/create-dms-page/package.json | 4 +- cli/dms-kit-publish/package.json | 4 +- package.json | 3 +- packages/base/eslint.config.mjs | 1 - packages/base/package.json | 5 +- .../PersonalSMS/__tests__/index.test.tsx | 2 +- .../components/__tests__/UserWechat.test.tsx | 1 - packages/base/src/page/Account/index.test.tsx | 3 +- .../__tests__/index.test.tsx | 6 -- .../__tests__/ExportSourceFormItem.test.tsx | 8 +-- .../useCreateExportTaskForm.test.tsx | 1 - .../ExportDetail/__tests__/index.test.tsx | 2 +- .../components/AddDataSource/index.test.tsx | 3 +- .../BatchImportDataSource/index.test.tsx | 3 +- .../__tests__/index.test.tsx | 3 +- .../Login/components/OAuth2LoginForm.test.tsx | 2 +- .../src/page/Member/__tests__/index.test.tsx | 2 +- .../page/Nav/SideMenu/MenuList/index.test.tsx | 5 +- .../__tests__/UserNavigate.ce.test.tsx | 3 +- .../Nav/SideMenu/__tests__/index.test.tsx | 2 - .../useRecentlyOpenedProjects.test.ts | 2 +- .../__tests__/UserGuideModal.test.tsx | 3 +- .../UploadForm/index.test.tsx | 1 - .../BatchImportDataSource/index.test.tsx | 3 +- .../base/src/page/Project/List/index.test.tsx | 3 +- .../src/page/System/License/index.test.tsx | 1 - .../components/ConfigField.test.tsx | 2 +- .../System/LoginConnection/index.test.tsx | 1 - .../Wechat/components/ConfigField.test.tsx | 2 +- packages/base/src/page/Transit/index.test.tsx | 1 + .../Drawer/Role/UpdateRole/index.test.tsx | 5 +- .../src/router/test/router.ce.sqle.test.tsx | 2 +- packages/base/src/scripts/version.ts | 2 +- packages/dms-kit/eslint.config.mjs | 2 +- packages/dms-kit/package.json | 4 +- .../components/BasicEmpty/BasicEmpty.test.tsx | 2 +- .../src/components/EditText/EditText.test.tsx | 2 +- .../ModeSwitcher/ModeSwitcher.test.tsx | 1 - .../__tests__/index.test.ts | 2 +- packages/icons/package.json | 4 +- packages/shared/eslint.config.mjs | 6 +- .../__tests__/useTypedParams.test.ts | 4 +- .../TypedRouter/__tests__/utils.test.ts | 2 + packages/shared/package.json | 5 ++ packages/sqle/package.json | 4 +- .../ChartCom/TableTopList/index.test.tsx | 3 +- .../BusinessRewrittenSuggestion.test.tsx | 1 - .../DependDatabaseStructure.test.tsx | 4 +- .../hooks/useAsyncRewriteProgress.test.ts | 9 +-- .../utils/sqlRewriteCache.test.ts | 3 +- .../test/useUpdateRuleTemplateForm.test.tsx | 2 - .../CustomRule/CustomRuleList/index.test.tsx | 1 - .../useDataSourceSelectorTree.test.tsx | 3 +- .../__tests__/index.ce.test.tsx | 1 - .../GlobalDashboard/__tests__/index.test.tsx | 7 +- .../ImportRuleTemplate/index.test.tsx | 4 +- .../Drawer/CloneRuleTemplate/index.test.tsx | 2 +- .../Knowledge/Graph/__tests__/index.test.tsx | 2 - .../Graph/hooks/__tests__/useGraph.test.ts | 14 +--- .../DataSourcePerformance/index.test.tsx | 2 +- .../__tests__/index.test.tsx | 72 ++++++++----------- .../LicenseStatistics/LicenseColumn.test.tsx | 1 + packages/sqle/src/page/Rule/index.test.tsx | 1 - .../page/RuleManager/__tests__/index.test.tsx | 5 +- .../CloneRuleTemplate/index.test.tsx | 2 +- .../ImportRuleTemplate/index.test.tsx | 3 +- .../RuleTemplateForm/index.test.tsx | 3 +- .../ProjectTable/index.test.tsx | 18 +++-- .../UpdateRuleTemplate/index.test.tsx | 3 +- .../SqlAnalyze/ManagementConf/index.test.tsx | 3 +- .../page/SqlAnalyze/SqlManage/index.test.tsx | 2 +- .../__tests__/useSqlExecPlanCost.test.tsx | 2 +- .../src/page/SqlAudit/Create/index.test.tsx | 6 +- .../src/page/SqlAudit/Detail/index.test.tsx | 4 +- .../component/SqlAuditTags/index.test.tsx | 2 +- .../src/page/SqlAudit/List/index.test.tsx | 3 +- .../Table/__tests__/index.ce.test.tsx | 3 +- .../DownloadRecord/__tests__/index.test.tsx | 4 +- .../__tests__/index.test.tsx | 2 +- .../__tests__/SqlExecModeSelector.ce.test.tsx | 2 +- .../__tests__/SqlExecModeSelector.test.tsx | 2 +- .../__tests__/index.ce.test.tsx | 1 - .../__tests__/index.test.tsx | 2 +- .../__tests__/index.ce.test.tsx | 2 +- .../__tests__/index.test.tsx | 3 +- .../__test__/index.ce.test.tsx | 1 - .../SqlRollback/__tests__/index.test.tsx | 2 +- .../List/__tests__/index.ce.test.tsx | 13 ++-- .../SqlExecutionCostTrendChart.test.tsx | 2 +- .../__tests__/useChartEvent.test.tsx | 2 +- .../hooks/__tests__/useOpenScanTask.test.tsx | 16 ----- .../hooks/__tests__/useStaticStatus.test.ts | 5 +- .../__tests__/hooks.test.ts | 2 +- .../__tests__/DataSourceSelection.test.tsx | 8 +-- .../Common/ConfForm/__tests__/hooks.test.ts | 4 +- .../Detail/__tests__/index.test.tsx | 6 +- .../List/__tests__/index.test.tsx | 5 +- .../Update/__tests__/index.test.tsx | 10 +-- .../List/__tests__/index.test.tsx | 3 +- .../SqlOptimization/Create/index.test.tsx | 10 +-- .../components/__tests__/CopyButton.test.tsx | 1 + .../__tests__/useOptimizationResult.test.ts | 2 +- .../page/SqlOptimization/index.ce.test.tsx | 1 - .../Update/__tests__/index.test.tsx | 5 +- .../sqle/src/store/pipeline/index.test.ts | 1 - turbo.json | 13 +--- 107 files changed, 165 insertions(+), 287 deletions(-) diff --git a/cli/create-dms-page/eslint.config.mjs b/cli/create-dms-page/eslint.config.mjs index 87a903c51..221157cac 100644 --- a/cli/create-dms-page/eslint.config.mjs +++ b/cli/create-dms-page/eslint.config.mjs @@ -4,7 +4,7 @@ import node from '@actiontech/dms-eslint-config/node'; export default [ ...node, { - files: ['src/**/*.{ts,js}'] + files: ['src/**/*.{ts}'] // 可以在此处添加本包特有的覆盖规则 } ]; diff --git a/cli/create-dms-page/package.json b/cli/create-dms-page/package.json index 0edeec0bf..a875171d4 100644 --- a/cli/create-dms-page/package.json +++ b/cli/create-dms-page/package.json @@ -11,7 +11,9 @@ "scripts": { "build:watch": "tsc -w", "build": "tsc", - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "keywords": [], "license": "ISC", diff --git a/cli/dms-kit-publish/package.json b/cli/dms-kit-publish/package.json index b9316bff8..890fc61db 100644 --- a/cli/dms-kit-publish/package.json +++ b/cli/dms-kit-publish/package.json @@ -12,7 +12,9 @@ "build:watch": "tsc -w", "build": "tsc", "start": "tsc && node dist/index.js", - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "dependencies": { "@octokit/rest": "^20.1.2", diff --git a/package.json b/package.json index cca99faf2..bbfd691b0 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,9 @@ "prettier:w": "prettier -w packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "prettier:c": "prettier -c packages/*/src/ packages/shared/lib/ scripts/cli/*/src", "eslint": "turbo run eslint", + "eslint:fix": "turbo run eslint:fix", "stylelint": "stylelint packages/*/{src,lib}/**/{*.less,style.ts,element.ts}", - "ts-check": "tsc --noEmit", + "ts-check": "turbo run ts-check", "checker": "turbo run ts-check eslint stylelint prettier:c --filter=base", "test": "sh ./scripts/jest/run.sh", "test:c": "sh ./scripts/jest/run-coverage.sh", diff --git a/packages/base/eslint.config.mjs b/packages/base/eslint.config.mjs index 0275b7362..24eb3a4fb 100644 --- a/packages/base/eslint.config.mjs +++ b/packages/base/eslint.config.mjs @@ -5,6 +5,5 @@ export default [ ...react, { files: ['src/**/*.{ts,tsx,js,jsx}'] - // 本包可以在此处追加或覆盖规则 } ]; diff --git a/packages/base/package.json b/packages/base/package.json index c61699ed5..237a02ec8 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -10,10 +10,11 @@ "build:ee": "node ../../scripts/getGitVersion.mjs ee && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ee,SQLE vite build", "build:demo": "node ../../scripts/getGitVersion.mjs trial && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE,DEMO vite build", "preview": "vite preview", - "ts-check": "pnpm -w ts-check", "stylelint": "pnpm -w stylelint", "prettier:c": "pnpm -w prettier:c", - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "dependencies": { "@actiontech/shared": "workspace:^", diff --git a/packages/base/src/page/Account/PersonalSMS/__tests__/index.test.tsx b/packages/base/src/page/Account/PersonalSMS/__tests__/index.test.tsx index e0eab7e2b..10c5fe452 100644 --- a/packages/base/src/page/Account/PersonalSMS/__tests__/index.test.tsx +++ b/packages/base/src/page/Account/PersonalSMS/__tests__/index.test.tsx @@ -12,7 +12,7 @@ describe('base/System/GlobalSetting/PersonalSMS', () => { let updateCurrentUserSpy: jest.SpyInstance; let sendSmsCodeSpy: jest.SpyInstance; let verifySmsCodeSpy: jest.SpyInstance; - let getUserInfoSpy = jest.fn(); + const getUserInfoSpy = jest.fn(); const customRender = ({ phone = mockUserInfo.userInfo.phone, enabled = true diff --git a/packages/base/src/page/Account/components/__tests__/UserWechat.test.tsx b/packages/base/src/page/Account/components/__tests__/UserWechat.test.tsx index 30b8e74d8..90bc101d1 100644 --- a/packages/base/src/page/Account/components/__tests__/UserWechat.test.tsx +++ b/packages/base/src/page/Account/components/__tests__/UserWechat.test.tsx @@ -1,4 +1,3 @@ -import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import UserWechat from '../UserWechat'; import { act, fireEvent } from '@testing-library/react'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; diff --git a/packages/base/src/page/Account/index.test.tsx b/packages/base/src/page/Account/index.test.tsx index ac6dd4d08..15b4902fc 100644 --- a/packages/base/src/page/Account/index.test.tsx +++ b/packages/base/src/page/Account/index.test.tsx @@ -15,10 +15,9 @@ jest.mock('react-redux', () => { describe('test base/page/Account', () => { const scopeDispatch = jest.fn(); - let updateCurrentUserSpy: jest.SpyInstance; beforeEach(() => { (useDispatch as jest.Mock).mockImplementation(() => scopeDispatch); - updateCurrentUserSpy = account.updateCurrentUser(); + account.updateCurrentUser(); jest.useFakeTimers(); }); afterEach(() => { diff --git a/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/__tests__/index.test.tsx b/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/__tests__/index.test.tsx index 5756da674..afa019778 100644 --- a/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/__tests__/index.test.tsx +++ b/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/__tests__/index.test.tsx @@ -7,7 +7,6 @@ import { mockUseRecentlySelectedZoneData } from '../../../../testUtils/mockHooks import { mockUseRecentlyOpenedProjects } from '../../../Nav/SideMenu/testUtils/mockUseRecentlyOpenedProjects'; import { baseMockApi } from '@actiontech/shared/lib/testUtil'; import { useSelector } from 'react-redux'; -import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil'; jest.mock('react-redux', () => { return { @@ -32,11 +31,6 @@ describe('base/AvailabilityZone/AvailabilityZoneWrapper', () => { let getCurrentUserSpy: jest.SpyInstance; const useParamsSpy: jest.Mock = useParams as jest.Mock; - const mockAvailabilityZoneOptions = [ - { value: 'zone-123', label: 'Test Zone' }, - { value: 'zone-456', label: 'Another Zone' } - ]; - beforeEach(() => { jest.useFakeTimers(); getCurrentUserSpy = baseMockApi.global.getCurrentUser(); diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/__tests__/ExportSourceFormItem.test.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/__tests__/ExportSourceFormItem.test.tsx index 89c0d3617..7afe88970 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/__tests__/ExportSourceFormItem.test.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/__tests__/ExportSourceFormItem.test.tsx @@ -2,13 +2,7 @@ import { baseSuperRender } from '../../../../../../../testUtils/superRender'; import dbServices from '@actiontech/shared/lib/testUtil/mockApi/base/dbServices'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; import ExportSourceFormItem from '../ExportSourceFormItem'; -import { - act, - cleanup, - fireEvent, - renderHook, - screen -} from '@testing-library/react'; +import { act, renderHook } from '@testing-library/react'; import { useForm } from 'antd/es/form/Form'; import { Form } from 'antd'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; diff --git a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx index f75715113..df07fd6cf 100644 --- a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx +++ b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx @@ -10,7 +10,6 @@ import useCreateExportTaskForm from '../useCreateExportTaskForm'; import { Button, Form, Input, Switch } from 'antd'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseCreateDataExportReduxManage } from '../../testUtils/mockUseCreateDataExportReduxManage'; -import dbServices from '@actiontech/shared/lib/testUtil/mockApi/base/dbServices'; import { DBServicesList } from '@actiontech/shared/lib/testUtil/mockApi/base/global/data'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import dataExport from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport'; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/__tests__/index.test.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/__tests__/index.test.tsx index ed3ffdb39..32de57512 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/__tests__/index.test.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/__tests__/index.test.tsx @@ -1,4 +1,4 @@ -import { act, fireEvent, screen, waitFor } from '@testing-library/react'; +import { act, fireEvent, screen } from '@testing-library/react'; import ExportDetail from '..'; import { baseSuperRender } from '../../../../../../testUtils/superRender'; import dataExport from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport'; diff --git a/packages/base/src/page/DataSource/components/AddDataSource/index.test.tsx b/packages/base/src/page/DataSource/components/AddDataSource/index.test.tsx index b0ce653ce..563ad11a6 100644 --- a/packages/base/src/page/DataSource/components/AddDataSource/index.test.tsx +++ b/packages/base/src/page/DataSource/components/AddDataSource/index.test.tsx @@ -8,8 +8,7 @@ import { mockUseCurrentProject, mockProjectInfo, getAllBySelector, - getBySelector, - selectOptionByIndex + getBySelector } from '@actiontech/shared/lib/testUtil'; import EmitterKey from '../../../../data/EmitterKey'; import EventEmitter from '../../../../utils/EventEmitter'; diff --git a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.test.tsx b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.test.tsx index 6e88c73fb..afb6526f1 100644 --- a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.test.tsx +++ b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.test.tsx @@ -21,7 +21,6 @@ describe('base/DataSource/BatchImportDataSource', () => { let importDBServicesOfOneProjectSpy: jest.SpyInstance; let getImportDBServicesTemplateSpy: jest.SpyInstance; let importDBServicesOfOneProjectCheckSpy: jest.SpyInstance; - let dbServicesConnectionSpy: jest.SpyInstance; let checkDBServicesPrivilegesSpy: jest.SpyInstance; beforeEach(() => { @@ -30,7 +29,7 @@ describe('base/DataSource/BatchImportDataSource', () => { getImportDBServicesTemplateSpy = project.getImportDBServicesTemplate(); importDBServicesOfOneProjectCheckSpy = project.importDBServicesOfOneProjectCheck(); - dbServicesConnectionSpy = project.dbServicesConnection(); + project.dbServicesConnection(); checkDBServicesPrivilegesSpy = project.checkDBServicesPrivileges(); mockUseCurrentProject(); }); diff --git a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/__tests__/index.test.tsx b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/__tests__/index.test.tsx index e47d6a3df..56da656f1 100644 --- a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/__tests__/index.test.tsx +++ b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/__tests__/index.test.tsx @@ -19,7 +19,6 @@ describe('base/GlobalDataSource/BatchImportDataSource', () => { let importDBServicesOfProjectsSpy: jest.SpyInstance; let getImportDBServicesTemplateSpy: jest.SpyInstance; let importDBServicesOfProjectsCheckSpy: jest.SpyInstance; - let dbServicesConnectionSpy: jest.SpyInstance; let checkDBServicesPrivilegesSpy: jest.SpyInstance; beforeEach(() => { @@ -28,7 +27,7 @@ describe('base/GlobalDataSource/BatchImportDataSource', () => { getImportDBServicesTemplateSpy = project.getImportDBServicesTemplate(); importDBServicesOfProjectsCheckSpy = project.importDBServicesOfProjectsCheck(); - dbServicesConnectionSpy = project.dbServicesConnection(); + project.dbServicesConnection(); checkDBServicesPrivilegesSpy = project.checkDBServicesPrivileges(); }); diff --git a/packages/base/src/page/Login/components/OAuth2LoginForm.test.tsx b/packages/base/src/page/Login/components/OAuth2LoginForm.test.tsx index f8d347a71..d04a2bf41 100644 --- a/packages/base/src/page/Login/components/OAuth2LoginForm.test.tsx +++ b/packages/base/src/page/Login/components/OAuth2LoginForm.test.tsx @@ -3,7 +3,7 @@ import OAuth2LoginForm from './OAuth2LoginForm'; import { screen } from '@testing-library/react'; import { useSearchParams } from 'react-router-dom'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; -import { DMS_REDIRECT_KEY_PARAMS_NAME, ROUTE_PATHS } from '@actiontech/dms-kit'; +import { DMS_REDIRECT_KEY_PARAMS_NAME } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/Member/__tests__/index.test.tsx b/packages/base/src/page/Member/__tests__/index.test.tsx index 197e6a249..bc8f18d20 100644 --- a/packages/base/src/page/Member/__tests__/index.test.tsx +++ b/packages/base/src/page/Member/__tests__/index.test.tsx @@ -77,7 +77,7 @@ describe('base/Member', () => { it('should render add button when current user is admin or project manager', async () => { const mockUseCurrentUserSpy = mockUseCurrentUser(); - const { baseElement } = superRender(); + superRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(screen.queryAllByText('添加成员')).toHaveLength(1); fireEvent.click(screen.getByText('添加成员')); diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx index 11cdef782..0812e4725 100644 --- a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx @@ -2,7 +2,6 @@ import { cleanup, act } from '@testing-library/react'; import MenuList from '.'; import { baseSuperRender } from '../../../../testUtils/superRender'; import { useNavigate } from 'react-router-dom'; -import { SystemRole } from '@actiontech/dms-kit'; import { ignoreConsoleErrors, UtilsConsoleErrorStringsEnum @@ -22,7 +21,7 @@ jest.mock('react-router-dom', () => ({ describe.skip('base/page/Nav/SideMenu/MenuList', () => { const navigateSpy = jest.fn(); - const customRender = (role: SystemRole | '' = '') => { + const customRender = () => { return baseSuperRender(); }; @@ -46,7 +45,7 @@ describe.skip('base/page/Nav/SideMenu/MenuList', () => { }); it('render snap when is admin', async () => { - const { baseElement } = customRender(SystemRole.admin); + const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(500)); expect(baseElement).toMatchSnapshot(); diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx index b0a8cccce..f52d66afd 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx @@ -34,7 +34,6 @@ describe('base/page/Nav/SideMenu/UserNavigate-ce', () => { const versionModalOpenFn = jest.fn(); const navigateSpy = jest.fn(); const scopeDispatch = jest.fn(); - let requestDelSession: jest.SpyInstance; const customRender = () => { return baseSuperRender( @@ -50,7 +49,7 @@ describe('base/page/Nav/SideMenu/UserNavigate-ce', () => { (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); (useDispatch as jest.Mock).mockImplementation(() => scopeDispatch); jest.useFakeTimers(); - requestDelSession = dms.delSession(); + dms.delSession(); mockUseUserInfo(); }); diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx index 1a6b83a51..fb5cff426 100644 --- a/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx @@ -21,8 +21,6 @@ import { mockUseRecentlySelectedZone } from '../../../../testUtils/mockHooks/moc import gateway from '@actiontech/shared/lib/testUtil/mockApi/base/gateway'; import { mockGatewayTipsData } from '@actiontech/shared/lib/testUtil/mockApi/base/gateway/data'; import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter'; -import sharedEmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; -import { eventEmitter as sharedEventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts index a6a3dfad2..c5281e552 100644 --- a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts +++ b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts @@ -1,9 +1,9 @@ +/* eslint-disable @typescript-eslint/no-empty-function */ import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { act, renderHook } from '@testing-library/react'; import useRecentlyOpenedProjects from '../useRecentlyOpenedProjects'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { StorageKey } from '@actiontech/dms-kit'; -import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data'; import eventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; import EventEmitter from '../../../../utils/EventEmitter'; diff --git a/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx b/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx index 22605c568..f6a43061d 100644 --- a/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx +++ b/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx @@ -2,8 +2,7 @@ import { fireEvent, screen, act } from '@testing-library/react'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { mockUseCurrentUser, - baseMockApi, - createSpySuccessResponse + baseMockApi } from '@actiontech/shared/lib/testUtil'; import { useDispatch, useSelector } from 'react-redux'; import { GetUserSystemEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; diff --git a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.test.tsx b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.test.tsx index 3b885f2b6..680e72d58 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.test.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.test.tsx @@ -6,7 +6,6 @@ import project from '@actiontech/shared/lib/testUtil/mockApi/base/project'; import { BatchImportDataSourceFormValueType } from '../index.type'; import { Form } from 'antd'; import { IDBService } from '@actiontech/shared/lib/api/base/service/common'; -import { mockBatchImportDBCheckData } from '@actiontech/shared/lib/testUtil/mockApi/base/project/data'; import { FileUploadCheckStatusType } from '../index.type'; describe('base/Project/BatchImportDataSourceForm', () => { diff --git a/packages/base/src/page/Project/BatchImportDataSource/index.test.tsx b/packages/base/src/page/Project/BatchImportDataSource/index.test.tsx index 5248fd0fc..1970144d6 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/index.test.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/index.test.tsx @@ -19,7 +19,6 @@ describe('base/Project/BatchImportDataSource', () => { let importDBServicesOfProjectsSpy: jest.SpyInstance; let getImportDBServicesTemplateSpy: jest.SpyInstance; let importDBServicesOfProjectsCheckSpy: jest.SpyInstance; - let dbServicesConnectionSpy: jest.SpyInstance; let checkDBServicesPrivilegesSpy: jest.SpyInstance; beforeEach(() => { @@ -28,7 +27,7 @@ describe('base/Project/BatchImportDataSource', () => { getImportDBServicesTemplateSpy = project.getImportDBServicesTemplate(); importDBServicesOfProjectsCheckSpy = project.importDBServicesOfProjectsCheck(); - dbServicesConnectionSpy = project.dbServicesConnection(); + project.dbServicesConnection(); checkDBServicesPrivilegesSpy = project.checkDBServicesPrivileges(); }); diff --git a/packages/base/src/page/Project/List/index.test.tsx b/packages/base/src/page/Project/List/index.test.tsx index 185119447..097caa48f 100644 --- a/packages/base/src/page/Project/List/index.test.tsx +++ b/packages/base/src/page/Project/List/index.test.tsx @@ -1,4 +1,3 @@ -import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo'; import project from '@actiontech/shared/lib/testUtil/mockApi/base/project'; @@ -234,7 +233,7 @@ describe('test base/project/list', () => { cleanup(); jest.clearAllMocks(); - let mockIsProjectManager = jest.fn(); + const mockIsProjectManager = jest.fn(); mockUseCurrentUser({ isAdmin: false, isProjectManager: mockIsProjectManager diff --git a/packages/base/src/page/System/License/index.test.tsx b/packages/base/src/page/System/License/index.test.tsx index 8da3a4b5b..b7ecb3da7 100644 --- a/packages/base/src/page/System/License/index.test.tsx +++ b/packages/base/src/page/System/License/index.test.tsx @@ -7,7 +7,6 @@ import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { AxiosResponse } from 'axios'; import 'blob-polyfill'; -import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; jest.mock('react-redux', () => ({ diff --git a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.test.tsx b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.test.tsx index 0e6898d11..94ca5daa5 100644 --- a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.test.tsx +++ b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.test.tsx @@ -1,4 +1,4 @@ -import { cleanup, fireEvent, act, screen } from '@testing-library/react'; +import { cleanup, fireEvent, act } from '@testing-library/react'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { getBySelector, diff --git a/packages/base/src/page/System/LoginConnection/index.test.tsx b/packages/base/src/page/System/LoginConnection/index.test.tsx index ccd7da48c..208c52d69 100644 --- a/packages/base/src/page/System/LoginConnection/index.test.tsx +++ b/packages/base/src/page/System/LoginConnection/index.test.tsx @@ -3,7 +3,6 @@ import { cleanup, act, screen, fireEvent } from '@testing-library/react'; import LoginConnection from '.'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; -import { getAllBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { LDAPConfig, oauthConfig diff --git a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.test.tsx b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.test.tsx index 55c968ec9..bec8c62e4 100644 --- a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.test.tsx +++ b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.test.tsx @@ -1,5 +1,5 @@ import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; -import { cleanup, fireEvent, act, screen } from '@testing-library/react'; +import { cleanup, fireEvent, act } from '@testing-library/react'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { Form } from 'antd'; diff --git a/packages/base/src/page/Transit/index.test.tsx b/packages/base/src/page/Transit/index.test.tsx index e405dc92e..ceecaa765 100644 --- a/packages/base/src/page/Transit/index.test.tsx +++ b/packages/base/src/page/Transit/index.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import Transit from '.'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; diff --git a/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.test.tsx b/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.test.tsx index 47d62d93c..70098a715 100644 --- a/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.test.tsx +++ b/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.test.tsx @@ -6,10 +6,7 @@ import { ModalName } from '../../../../../data/ModalName'; import UpdateRole from '.'; import EventEmitter from '../../../../../utils/EventEmitter'; import EmitterKey from '../../../../../data/EmitterKey'; -import { - getAllBySelector, - queryBySelector -} from '@actiontech/shared/lib/testUtil/customQuery'; +import { queryBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; jest.mock('react-redux', () => ({ ...jest.requireActual('react-redux'), diff --git a/packages/base/src/router/test/router.ce.sqle.test.tsx b/packages/base/src/router/test/router.ce.sqle.test.tsx index 981fecd69..1196d59a8 100644 --- a/packages/base/src/router/test/router.ce.sqle.test.tsx +++ b/packages/base/src/router/test/router.ce.sqle.test.tsx @@ -3,7 +3,7 @@ */ import { MemoryRouterProps } from 'react-router-dom'; import { act, screen, cleanup } from '@testing-library/react'; -import mockUseRoutes, { RenderRouterComponent } from './data'; +import { RenderRouterComponent } from './data'; import { baseSuperRender } from '../../testUtils/superRender'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter'; diff --git a/packages/base/src/scripts/version.ts b/packages/base/src/scripts/version.ts index 2bf915458..47bc944b3 100644 --- a/packages/base/src/scripts/version.ts +++ b/packages/base/src/scripts/version.ts @@ -1 +1 @@ -export const UI_VERSION = 'feature/add-make-command ba9c9c5'; +export const UI_VERSION = 'feature/use-turbo 72cb26c5d'; diff --git a/packages/dms-kit/eslint.config.mjs b/packages/dms-kit/eslint.config.mjs index cb44efd9c..2424a1664 100644 --- a/packages/dms-kit/eslint.config.mjs +++ b/packages/dms-kit/eslint.config.mjs @@ -7,5 +7,5 @@ export default [ { files: ['src/**/*.{ts,tsx,js,jsx}'] }, - globalIgnores(['src/**/demo/**']) + globalIgnores(['src/**/demo/**', 'src/**/demos/**']) ]; diff --git a/packages/dms-kit/package.json b/packages/dms-kit/package.json index 0af63b696..6878b4f30 100644 --- a/packages/dms-kit/package.json +++ b/packages/dms-kit/package.json @@ -19,7 +19,9 @@ "docs:dev": "dumi dev", "docs:build": "dumi build", "docs:preview": "dumi preview", - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "dependencies": { "ahooks": "^3.7.0", diff --git a/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx b/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx index ac78a082c..dfdd62a43 100644 --- a/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx +++ b/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx @@ -111,7 +111,7 @@ describe('lib/BasicEmpty', () => { }); it('should render custom children content', () => { - const { container } = customRender({ + customRender({ loading: false, dataLength: 0, children:
自定义内容
diff --git a/packages/dms-kit/src/components/EditText/EditText.test.tsx b/packages/dms-kit/src/components/EditText/EditText.test.tsx index cd672ad7e..bda11d98a 100644 --- a/packages/dms-kit/src/components/EditText/EditText.test.tsx +++ b/packages/dms-kit/src/components/EditText/EditText.test.tsx @@ -1,5 +1,5 @@ import { superRender } from '../../testUtil/superRender'; -import { fireEvent, act, cleanup, screen } from '@testing-library/react'; +import { fireEvent, act, cleanup } from '@testing-library/react'; import EditText from './EditText'; import { EditTypeProps } from './EditText.types'; import { getBySelector } from '../../testUtil/customQuery'; diff --git a/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx b/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx index df8fbf1ba..d9e95baac 100644 --- a/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx +++ b/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx @@ -1,7 +1,6 @@ import { fireEvent, screen } from '@testing-library/dom'; import ModeSwitcher from './ModeSwitcher'; import { superRender } from '../../testUtil/superRender'; -import { useState } from 'react'; const list_1 = ['key1', 'key2', 'key3']; const list_2 = [ diff --git a/packages/dms-kit/src/features/useRecentlySelectedZone/__tests__/index.test.ts b/packages/dms-kit/src/features/useRecentlySelectedZone/__tests__/index.test.ts index cce7bb22f..6eedbcf3f 100644 --- a/packages/dms-kit/src/features/useRecentlySelectedZone/__tests__/index.test.ts +++ b/packages/dms-kit/src/features/useRecentlySelectedZone/__tests__/index.test.ts @@ -1,4 +1,4 @@ -import { act, cleanup } from '@testing-library/react'; +import { act } from '@testing-library/react'; import { superRenderHook } from '../../../testUtil/superRender'; import useRecentlySelectedZone, { DEFAULT_MAX_SELECTED_ZONE_NUMBER diff --git a/packages/icons/package.json b/packages/icons/package.json index 7be771ec4..bf7501fbc 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -11,7 +11,9 @@ "build": "father build", "icon:g": "svgr --template template/template.cjs -d src svg/ ", "docs:g": "node scripts/generate.js", - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "keywords": [], "author": "", diff --git a/packages/shared/eslint.config.mjs b/packages/shared/eslint.config.mjs index 24eb3a4fb..c978ea5d5 100644 --- a/packages/shared/eslint.config.mjs +++ b/packages/shared/eslint.config.mjs @@ -1,9 +1,11 @@ import react from '@actiontech/dms-eslint-config/react'; +import { globalIgnores } from 'eslint/config'; /** @type {import("eslint").Linter.Config[]} */ export default [ ...react, { - files: ['src/**/*.{ts,tsx,js,jsx}'] - } + files: ['lib/**/*.{ts,tsx,js,jsx}'] + }, + globalIgnores(['lib/api/**', 'lib/testUtil/**']) ]; diff --git a/packages/shared/lib/components/TypedRouter/__tests__/useTypedParams.test.ts b/packages/shared/lib/components/TypedRouter/__tests__/useTypedParams.test.ts index 23ee2fd04..01a0be953 100644 --- a/packages/shared/lib/components/TypedRouter/__tests__/useTypedParams.test.ts +++ b/packages/shared/lib/components/TypedRouter/__tests__/useTypedParams.test.ts @@ -10,12 +10,14 @@ describe('useTypedParams', () => { it('should handle params correctly', () => { (useParams as jest.Mock).mockReturnValue({ id: '1', postId: '2' }); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const pathConfig = { prefix: '/app', path: 'user/:id/posts/:postId', query: 'view&filter' } as const; - const { result } = renderHook(() => useTypedParams()); + type PathConfig = typeof pathConfig; + const { result } = renderHook(() => useTypedParams()); expect(result.current.id).toBe('1'); expect(result.current.postId).toBe('2'); diff --git a/packages/shared/lib/components/TypedRouter/__tests__/utils.test.ts b/packages/shared/lib/components/TypedRouter/__tests__/utils.test.ts index c855145ae..6fdbd7de3 100644 --- a/packages/shared/lib/components/TypedRouter/__tests__/utils.test.ts +++ b/packages/shared/lib/components/TypedRouter/__tests__/utils.test.ts @@ -38,6 +38,7 @@ describe('utils', () => { }); it('should format path values with queries only', () => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const path = { path: '/', query: 'sort&page' } as const; const result = getFormatPathValues({ queries: { sort: 'asc', page: '1' } @@ -49,6 +50,7 @@ describe('utils', () => { }); it('should format path values with both params and queries', () => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars const path = { path: '/home/:id', query: 'view' } as const; const result = getFormatPathValues({ diff --git a/packages/shared/package.json b/packages/shared/package.json index 81693428e..16e0ed1ad 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -3,6 +3,11 @@ "version": "1.0.0", "main": "lib/index.ts", "license": "MIT", + "scripts": { + "eslint": "eslint lib", + "eslint:fix": "eslint lib --fix", + "ts-check": "tsc --noEmit" + }, "dependencies": { "@actiontech/icons": "workspace:^", "@actiontech/dms-kit": "workspace:^" diff --git a/packages/sqle/package.json b/packages/sqle/package.json index 0cab6ffc4..2a0b55a7f 100644 --- a/packages/sqle/package.json +++ b/packages/sqle/package.json @@ -4,7 +4,9 @@ "private": true, "main": "src/App.tsx", "scripts": { - "eslint": "eslint src" + "eslint": "eslint src", + "eslint:fix": "eslint src --fix", + "ts-check": "tsc --noEmit" }, "dependencies": { "@actiontech/icons": "workspace:^", diff --git a/packages/sqle/src/components/ChartCom/TableTopList/index.test.tsx b/packages/sqle/src/components/ChartCom/TableTopList/index.test.tsx index 6b639296a..4e781b3d8 100644 --- a/packages/sqle/src/components/ChartCom/TableTopList/index.test.tsx +++ b/packages/sqle/src/components/ChartCom/TableTopList/index.test.tsx @@ -1,6 +1,5 @@ import TableTopList, { ITableTopList } from '.'; - -import { act, cleanup, fireEvent } from '@testing-library/react'; +import { cleanup } from '@testing-library/react'; import { sqleSuperRender } from '../../../testUtils/superRender'; import { mockThemeStyleData } from '../../../testUtils/mockHooks/mockThemeStyleData'; diff --git a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/BusinessRewrittenSuggestion.test.tsx b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/BusinessRewrittenSuggestion.test.tsx index 61ad43c5c..490def203 100644 --- a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/BusinessRewrittenSuggestion.test.tsx +++ b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/BusinessRewrittenSuggestion.test.tsx @@ -1,7 +1,6 @@ import { fireEvent, screen } from '@testing-library/dom'; import { sqleSuperRender } from '../../../../testUtils/superRender'; import BusinessRewrittenSuggestion from '../../components/BusinessRewrittenSuggestion'; -import { IRewriteSuggestion } from '@actiontech/shared/lib/api/sqle/service/common'; import { SqlRewrittenMockDataNoDDL } from '@actiontech/shared/lib/testUtil/mockApi/sqle/task/data'; import { RewriteSuggestionTypeEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; import BusinessRewrittenDetails from '../../components/BusinessRewrittenSuggestion/BusinessRewrittenDetails'; diff --git a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/DependDatabaseStructure.test.tsx b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/DependDatabaseStructure.test.tsx index 7aa003f00..c8b13d135 100644 --- a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/DependDatabaseStructure.test.tsx +++ b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/components/DependDatabaseStructure.test.tsx @@ -54,7 +54,7 @@ describe('DependDatabaseStructure', () => { sqleSuperRender( {}} + toggleEnableStructureOptimizeAction={jest.fn()} /> ); @@ -67,7 +67,7 @@ describe('DependDatabaseStructure', () => { sqleSuperRender( {}} + toggleEnableStructureOptimizeAction={jest.fn()} /> ); diff --git a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/hooks/useAsyncRewriteProgress.test.ts b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/hooks/useAsyncRewriteProgress.test.ts index 12f4fb71a..7bc7bd420 100644 --- a/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/hooks/useAsyncRewriteProgress.test.ts +++ b/packages/sqle/src/components/SqlRewrittenDrawer/__tests__/hooks/useAsyncRewriteProgress.test.ts @@ -10,10 +10,7 @@ import { useAsyncRewriteProgress, buildRewriteTaskResult } from '../../components/RewriteProgressDisplay/hooks'; -import { - getSqlRewriteCache, - saveSqlRewriteCache -} from '../../utils/sqlRewriteCache'; +import { getSqlRewriteCache } from '../../utils/sqlRewriteCache'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil'; // Mock 缓存模块 @@ -889,11 +886,9 @@ describe('useAsyncRewriteProgress', () => { describe('Cache Functionality', () => { let mockGetSqlRewriteCache: jest.Mock; - let mockSaveSqlRewriteCache: jest.Mock; beforeEach(() => { mockGetSqlRewriteCache = getSqlRewriteCache as jest.Mock; - mockSaveSqlRewriteCache = saveSqlRewriteCache as jest.Mock; }); afterEach(() => { @@ -1344,7 +1339,7 @@ describe('useAsyncRewriteProgress', () => { describe('Reset Functionality', () => { it('should reset all states when resetAllState is called', async () => { - const mockRewriteSQL = taskMockApi.getTaskSQLRewritten(); + taskMockApi.getTaskSQLRewritten(); const { result } = renderHook(() => useAsyncRewriteProgress()); diff --git a/packages/sqle/src/components/SqlRewrittenDrawer/utils/sqlRewriteCache.test.ts b/packages/sqle/src/components/SqlRewrittenDrawer/utils/sqlRewriteCache.test.ts index 843f62c7e..a5c1bac8f 100644 --- a/packages/sqle/src/components/SqlRewrittenDrawer/utils/sqlRewriteCache.test.ts +++ b/packages/sqle/src/components/SqlRewrittenDrawer/utils/sqlRewriteCache.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import { saveSqlRewriteCache, getSqlRewriteCache, @@ -77,7 +78,7 @@ describe('sqlRewriteCache', () => { // 保存第一次 saveSqlRewriteCache(taskId, sqlNumber, firstResult, false); - const firstCached = getSqlRewriteCache(taskId, sqlNumber); + getSqlRewriteCache(taskId, sqlNumber); // 推进时间 MockDate.set(dayjs('2023-12-18 12:00:10').valueOf()); diff --git a/packages/sqle/src/hooks/useRuleTemplateForm/test/useUpdateRuleTemplateForm.test.tsx b/packages/sqle/src/hooks/useRuleTemplateForm/test/useUpdateRuleTemplateForm.test.tsx index b1e65f014..856cb8733 100644 --- a/packages/sqle/src/hooks/useRuleTemplateForm/test/useUpdateRuleTemplateForm.test.tsx +++ b/packages/sqle/src/hooks/useRuleTemplateForm/test/useUpdateRuleTemplateForm.test.tsx @@ -2,8 +2,6 @@ import { cleanup, act } from '@testing-library/react'; import { superRenderHook } from '@actiontech/shared/lib/testUtil/superRender'; import useUpdateRuleTemplateForm from '../useUpdateRuleTemplateForm'; import rule_template from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template'; -import EventEmitter from '../../../utils/EventEmitter'; -import EmitterKey from '../../../data/EmitterKey'; describe('sqle/hooks/useRuleTemplateForm/useUpdateRuleTemplateForm', () => { let getRulesSpy: jest.SpyInstance; diff --git a/packages/sqle/src/page/CustomRule/CustomRuleList/index.test.tsx b/packages/sqle/src/page/CustomRule/CustomRuleList/index.test.tsx index d8a48edf1..2a42e1609 100644 --- a/packages/sqle/src/page/CustomRule/CustomRuleList/index.test.tsx +++ b/packages/sqle/src/page/CustomRule/CustomRuleList/index.test.tsx @@ -10,7 +10,6 @@ import { customRuleMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle import configuration from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { useNavigate } from 'react-router-dom'; -import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; import { RuleManagerSegmentedKey } from '../../RuleManager/index.type'; import { useSelector } from 'react-redux'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; diff --git a/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/useDataSourceSelectorTree.test.tsx b/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/useDataSourceSelectorTree.test.tsx index 481489af7..1614bfb12 100644 --- a/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/useDataSourceSelectorTree.test.tsx +++ b/packages/sqle/src/page/DataSourceComparison/ComparisonEntry/__tests__/useDataSourceSelectorTree.test.tsx @@ -11,12 +11,11 @@ import { act } from '@testing-library/react'; describe('useDataSourceSelectorTree', () => { let getInstanceTipsSpy: jest.SpyInstance; - let getInstanceSchemaTipsSpy: jest.SpyInstance; beforeEach(() => { jest.clearAllMocks(); getInstanceTipsSpy = instance.getInstanceTipList(); - getInstanceSchemaTipsSpy = instance.getInstanceSchemas(); + instance.getInstanceSchemas(); jest.useFakeTimers(); mockUseCurrentProject(); mockDatabaseType(); diff --git a/packages/sqle/src/page/GlobalDashboard/__tests__/index.ce.test.tsx b/packages/sqle/src/page/GlobalDashboard/__tests__/index.ce.test.tsx index 05272a2a0..2bf78584c 100644 --- a/packages/sqle/src/page/GlobalDashboard/__tests__/index.ce.test.tsx +++ b/packages/sqle/src/page/GlobalDashboard/__tests__/index.ce.test.tsx @@ -7,7 +7,6 @@ import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/moc import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; import workflow from '@actiontech/shared/lib/testUtil/mockApi/sqle/execWorkflow'; import sqlManage from '@actiontech/shared/lib/testUtil/mockApi/sqle/sqlManage'; -import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; import { sqleSuperRender } from '../../../testUtils/superRender'; import GlobalDashboard from '../index'; diff --git a/packages/sqle/src/page/GlobalDashboard/__tests__/index.test.tsx b/packages/sqle/src/page/GlobalDashboard/__tests__/index.test.tsx index 338881b2e..21265e082 100644 --- a/packages/sqle/src/page/GlobalDashboard/__tests__/index.test.tsx +++ b/packages/sqle/src/page/GlobalDashboard/__tests__/index.test.tsx @@ -16,8 +16,6 @@ describe('sqle/GlobalDashboard', () => { let getInstanceTipListSpy: jest.SpyInstance; let getGlobalSqlManageStatisticsSpy: jest.SpyInstance; let getGlobalWorkflowStatisticsSpy: jest.SpyInstance; - let getGlobalDataExportWorkflowsSpy: jest.SpyInstance; - let getGlobalDataExportWorkflowStatisticsSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers(); @@ -29,9 +27,8 @@ describe('sqle/GlobalDashboard', () => { getGlobalSqlManageList = sqlManage.getGlobalSqlManageList(); getGlobalSqlManageStatisticsSpy = sqlManage.getGlobalSqlManageStatistics(); getInstanceTipListSpy = instance.getInstanceTipList(); - getGlobalDataExportWorkflowsSpy = workflow.getGlobalDataExportWorkflows(); - getGlobalDataExportWorkflowStatisticsSpy = - workflow.getGlobalDataExportWorkflowStatistics(); + workflow.getGlobalDataExportWorkflows(); + workflow.getGlobalDataExportWorkflowStatistics(); }); afterEach(() => { diff --git a/packages/sqle/src/page/GlobalRuleTemplate/ImportRuleTemplate/index.test.tsx b/packages/sqle/src/page/GlobalRuleTemplate/ImportRuleTemplate/index.test.tsx index e355530c6..e62349e8c 100644 --- a/packages/sqle/src/page/GlobalRuleTemplate/ImportRuleTemplate/index.test.tsx +++ b/packages/sqle/src/page/GlobalRuleTemplate/ImportRuleTemplate/index.test.tsx @@ -14,7 +14,6 @@ import { import rule_template from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template'; import { ruleType, - ruleListData, importRuleTemplateMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template/data'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; @@ -45,7 +44,6 @@ describe('sqle/GlobalRuleTemplate/ImportRuleTemplate', () => { let createRuleTemplateSpy: jest.SpyInstance; let importProjectRuleTemplateSpy: jest.SpyInstance; let getCategoryStatisticsSpy: jest.SpyInstance; - let getRuleVersionTipsSpy: jest.SpyInstance; beforeEach(() => { (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy); @@ -67,7 +65,7 @@ describe('sqle/GlobalRuleTemplate/ImportRuleTemplate', () => { } ); mockUseDbServiceDriver(); - getRuleVersionTipsSpy = rule_template.mockGetDriverRuleVersionTips(); + rule_template.mockGetDriverRuleVersionTips(); getAllRuleSpy = rule_template.getRuleList(); getDriversSpy = jest.spyOn(configuration, 'getDriversV2'); createRuleTemplateSpy = rule_template.createRuleTemplate(); diff --git a/packages/sqle/src/page/GlobalRuleTemplate/RuleTemplateList/Drawer/CloneRuleTemplate/index.test.tsx b/packages/sqle/src/page/GlobalRuleTemplate/RuleTemplateList/Drawer/CloneRuleTemplate/index.test.tsx index cef0838d8..d5385d4de 100644 --- a/packages/sqle/src/page/GlobalRuleTemplate/RuleTemplateList/Drawer/CloneRuleTemplate/index.test.tsx +++ b/packages/sqle/src/page/GlobalRuleTemplate/RuleTemplateList/Drawer/CloneRuleTemplate/index.test.tsx @@ -85,7 +85,7 @@ describe('sqle/GlobalRuleTemplate/CloneRuleTemplate', () => { it('should send clone project rule template request when click submit button with desc', async () => { const eventEmitSpy = jest.spyOn(EventEmitter, 'emit'); - const { baseElement } = customRender(); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(screen.getByText('正在克隆审核规则模板')).toBeInTheDocument(); fireEvent.input(screen.getByLabelText('模板名称'), { diff --git a/packages/sqle/src/page/Knowledge/Graph/__tests__/index.test.tsx b/packages/sqle/src/page/Knowledge/Graph/__tests__/index.test.tsx index 704cf7186..1438faf23 100644 --- a/packages/sqle/src/page/Knowledge/Graph/__tests__/index.test.tsx +++ b/packages/sqle/src/page/Knowledge/Graph/__tests__/index.test.tsx @@ -8,8 +8,6 @@ describe('KnowledgeGraph', () => { edges: [] }; - beforeEach(() => {}); - afterEach(() => { jest.clearAllMocks(); jest.clearAllTimers(); diff --git a/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts b/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts index ae742d96a..5636636eb 100644 --- a/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts +++ b/packages/sqle/src/page/Knowledge/Graph/hooks/__tests__/useGraph.test.ts @@ -1,4 +1,4 @@ -import Graph, { MultiDirectedGraph } from 'graphology'; +import Graph from 'graphology'; import louvain from 'graphology-communities-louvain'; import iwanthue from 'iwanthue'; import useGraph from '../useGraph'; @@ -11,18 +11,6 @@ jest.mock('graphology-communities-louvain', () => ({ jest.mock('iwanthue', () => jest.fn()); describe('useGraph', () => { - const mockTheme = { - sqleTheme: { - knowledgeTheme: { - graph: { - edge: { - color: '#666666' - } - } - } - } - }; - beforeEach(() => { (iwanthue as jest.Mock).mockReturnValue(['#FF0000', '#00FF00']); }); diff --git a/packages/sqle/src/page/ProjectOverview/component/DataSourcePerformance/index.test.tsx b/packages/sqle/src/page/ProjectOverview/component/DataSourcePerformance/index.test.tsx index 73b94c947..426d002b5 100644 --- a/packages/sqle/src/page/ProjectOverview/component/DataSourcePerformance/index.test.tsx +++ b/packages/sqle/src/page/ProjectOverview/component/DataSourcePerformance/index.test.tsx @@ -1,4 +1,4 @@ -import { cleanup, act, fireEvent, screen } from '@testing-library/react'; +import { cleanup, act } from '@testing-library/react'; import { sqleSuperRenderHook, sqleSuperRender diff --git a/packages/sqle/src/page/PushRuleConfiguration/components/SqlManagementIssuePush/__tests__/index.test.tsx b/packages/sqle/src/page/PushRuleConfiguration/components/SqlManagementIssuePush/__tests__/index.test.tsx index 5c8e3fb20..3a67a543b 100644 --- a/packages/sqle/src/page/PushRuleConfiguration/components/SqlManagementIssuePush/__tests__/index.test.tsx +++ b/packages/sqle/src/page/PushRuleConfiguration/components/SqlManagementIssuePush/__tests__/index.test.tsx @@ -60,8 +60,7 @@ describe('test SqlManagementIssuePush', () => { push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, push_user_list: ['1739544663515205632', '1739544663515205633'], last_push_time: '0001-01-01T00:00:00Z' - }, - permission = true + } ) => { return sqleSuperRender( @@ -79,19 +78,16 @@ describe('test SqlManagementIssuePush', () => { }); it('should call onSubmit function correctly when enabling/disabling the configuration switch', async () => { - const { baseElement } = customRender( - { - report_push_config_id: '2', - type: 'sql_manage', - enabled: false, - trigger_type: ReportPushConfigListTriggerTypeEnum.timing, - push_frequency_cron: '1 * * * *', - push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, - push_user_list: ['1739544663515205632', '1739544663515205633'], - last_push_time: '0001-01-01T00:00:00Z' - }, - true - ); + const { baseElement } = customRender({ + report_push_config_id: '2', + type: 'sql_manage', + enabled: false, + trigger_type: ReportPushConfigListTriggerTypeEnum.timing, + push_frequency_cron: '1 * * * *', + push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, + push_user_list: ['1739544663515205632', '1739544663515205633'], + last_push_time: '0001-01-01T00:00:00Z' + }); expect(getBySelector('.config-field-wrapper', baseElement)).toHaveAttribute( 'hidden' @@ -136,19 +132,16 @@ describe('test SqlManagementIssuePush', () => { }); it('should set the form to edit state and fill in default values when the modify button is clicked', async () => { - const { baseElement } = customRender( - { - report_push_config_id: '2', - type: 'sql_manage', - enabled: false, - trigger_type: ReportPushConfigListTriggerTypeEnum.timing, - push_frequency_cron: '1 * 2 * *', - push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, - push_user_list: ['1739544663515205632', '1739544663515205633'], - last_push_time: '0001-01-01T00:00:00Z' - }, - true - ); + const { baseElement } = customRender({ + report_push_config_id: '2', + type: 'sql_manage', + enabled: false, + trigger_type: ReportPushConfigListTriggerTypeEnum.timing, + push_frequency_cron: '1 * 2 * *', + push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, + push_user_list: ['1739544663515205632', '1739544663515205633'], + last_push_time: '0001-01-01T00:00:00Z' + }); fireEvent.click(getBySelector('.system-config-switch')); await act(async () => jest.advanceTimersByTime(0)); @@ -156,19 +149,16 @@ describe('test SqlManagementIssuePush', () => { }); it('should restore the form to its initial state when the cancel button is clicked', async () => { - const { baseElement } = customRender( - { - report_push_config_id: '2', - type: 'sql_manage', - enabled: false, - trigger_type: ReportPushConfigListTriggerTypeEnum.timing, - push_frequency_cron: '1 * * * *', - push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, - push_user_list: ['1739544663515205632', '1739544663515205633'], - last_push_time: '0001-01-01T00:00:00Z' - }, - true - ); + const { baseElement } = customRender({ + report_push_config_id: '2', + type: 'sql_manage', + enabled: false, + trigger_type: ReportPushConfigListTriggerTypeEnum.timing, + push_frequency_cron: '1 * * * *', + push_user_Type: ReportPushConfigListPushUserTypeEnum.fixed, + push_user_list: ['1739544663515205632', '1739544663515205633'], + last_push_time: '0001-01-01T00:00:00Z' + }); fireEvent.click(getBySelector('.system-config-switch')); await act(async () => jest.advanceTimersByTime(0)); diff --git a/packages/sqle/src/page/ReportStatistics/EEIndex/component/charts/LicenseStatistics/LicenseColumn.test.tsx b/packages/sqle/src/page/ReportStatistics/EEIndex/component/charts/LicenseStatistics/LicenseColumn.test.tsx index 832aaac0d..e255bed20 100644 --- a/packages/sqle/src/page/ReportStatistics/EEIndex/component/charts/LicenseStatistics/LicenseColumn.test.tsx +++ b/packages/sqle/src/page/ReportStatistics/EEIndex/component/charts/LicenseStatistics/LicenseColumn.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import { cleanup } from '@testing-library/react'; import { sqleSuperRenderHook, diff --git a/packages/sqle/src/page/Rule/index.test.tsx b/packages/sqle/src/page/Rule/index.test.tsx index 9587272f6..549dd44ce 100644 --- a/packages/sqle/src/page/Rule/index.test.tsx +++ b/packages/sqle/src/page/Rule/index.test.tsx @@ -4,7 +4,6 @@ import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook import Rule from '.'; import rule_template from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template'; import { - getAllBySelector, getBySelector, queryBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; diff --git a/packages/sqle/src/page/RuleManager/__tests__/index.test.tsx b/packages/sqle/src/page/RuleManager/__tests__/index.test.tsx index 5a1d7f703..496160f2c 100644 --- a/packages/sqle/src/page/RuleManager/__tests__/index.test.tsx +++ b/packages/sqle/src/page/RuleManager/__tests__/index.test.tsx @@ -9,7 +9,7 @@ import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/moc import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; import rule_template from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template'; import { publicRuleTemplateListMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template/data'; -import { useNavigate, BrowserRouter } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import { ModalName } from '../../../data/ModalName'; import { useDispatch, useSelector } from 'react-redux'; import { RuleManagerSegmentedKey } from '../index.type'; @@ -34,12 +34,11 @@ describe('sqle/RuleManager', () => { const navigateSpy = jest.fn(); const dispatchSpy = jest.fn(); let getRuleTemplateListSpy: jest.SpyInstance; - let mockUseCurrentUserSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers(); mockUseCurrentProject(); - mockUseCurrentUserSpy = mockUseCurrentUser(); + mockUseCurrentUser(); mockUseDbServiceDriver(); (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy); diff --git a/packages/sqle/src/page/RuleTemplate/CloneRuleTemplate/index.test.tsx b/packages/sqle/src/page/RuleTemplate/CloneRuleTemplate/index.test.tsx index 178550d5c..450e18431 100644 --- a/packages/sqle/src/page/RuleTemplate/CloneRuleTemplate/index.test.tsx +++ b/packages/sqle/src/page/RuleTemplate/CloneRuleTemplate/index.test.tsx @@ -91,7 +91,7 @@ describe('sqle/RuleTemplate/CloneRuleTemplate', () => { it('should send clone project rule template request when click submit button with desc', async () => { const eventEmitSpy = jest.spyOn(EventEmitter, 'emit'); - const { baseElement } = customRender(); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(screen.getByText('正在克隆审核规则模板')).toBeInTheDocument(); fireEvent.input(screen.getByLabelText('模板名称'), { diff --git a/packages/sqle/src/page/RuleTemplate/ImportRuleTemplate/index.test.tsx b/packages/sqle/src/page/RuleTemplate/ImportRuleTemplate/index.test.tsx index 911ea2ab4..d4920084e 100644 --- a/packages/sqle/src/page/RuleTemplate/ImportRuleTemplate/index.test.tsx +++ b/packages/sqle/src/page/RuleTemplate/ImportRuleTemplate/index.test.tsx @@ -44,7 +44,6 @@ describe('sqle/RuleTemplate/ImportRuleTemplate', () => { let createProjectRuleTemplateSpy: jest.SpyInstance; let importProjectRuleTemplateSpy: jest.SpyInstance; let getCategoryStatisticsSpy: jest.SpyInstance; - let getRuleVersionTipsSpy: jest.SpyInstance; beforeEach(() => { (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy); @@ -61,7 +60,7 @@ describe('sqle/RuleTemplate/ImportRuleTemplate', () => { mockUsePermission(undefined, { useSpyOnMockHooks: true }); - getRuleVersionTipsSpy = rule_template.mockGetDriverRuleVersionTips(); + rule_template.mockGetDriverRuleVersionTips(); getAllRuleSpy = rule_template.getRuleList(); getDriversSpy = jest.spyOn(configuration, 'getDriversV2'); createProjectRuleTemplateSpy = rule_template.createProjectRuleTemplate(); diff --git a/packages/sqle/src/page/RuleTemplate/RuleTemplateForm/index.test.tsx b/packages/sqle/src/page/RuleTemplate/RuleTemplateForm/index.test.tsx index 568973927..d214ba655 100644 --- a/packages/sqle/src/page/RuleTemplate/RuleTemplateForm/index.test.tsx +++ b/packages/sqle/src/page/RuleTemplate/RuleTemplateForm/index.test.tsx @@ -25,7 +25,6 @@ jest.mock('react-redux', () => ({ describe('sqle/RuleTemplate/RuleTemplateForm', () => { const dispatchSpy = jest.fn(); let getDriversSpy: jest.SpyInstance; - let getRuleVersionTipsSpy: jest.SpyInstance; beforeEach(() => { (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy); mockUseCurrentProject(); @@ -34,7 +33,7 @@ describe('sqle/RuleTemplate/RuleTemplateForm', () => { mockUsePermission(undefined, { useSpyOnMockHooks: true }); - getRuleVersionTipsSpy = rule_template.mockGetDriverRuleVersionTips(); + rule_template.mockGetDriverRuleVersionTips(); getDriversSpy = configuration.getDrivers(); jest.useFakeTimers(); }); diff --git a/packages/sqle/src/page/RuleTemplate/RuleTemplateList/ProjectTable/index.test.tsx b/packages/sqle/src/page/RuleTemplate/RuleTemplateList/ProjectTable/index.test.tsx index 9ba298d6e..d4d94a24a 100644 --- a/packages/sqle/src/page/RuleTemplate/RuleTemplateList/ProjectTable/index.test.tsx +++ b/packages/sqle/src/page/RuleTemplate/RuleTemplateList/ProjectTable/index.test.tsx @@ -39,10 +39,9 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { const dispatchSpy = jest.fn(); const templateName = projectRuleTemplateListMockData[0].rule_template_name; let getProjectRuleTemplateListSpy: jest.SpyInstance; - let mockUseCurrentProjectSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers(); - mockUseCurrentProjectSpy = mockUseCurrentProject(); + mockUseCurrentProject(); mockUseCurrentUser(); mockUseDbServiceDriver(); (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); @@ -68,15 +67,14 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { cleanup(); }); - const customRender = (actionPermission?: boolean) => - superRender(); + const customRender = () => superRender(); it('should render empty tips when request not success', async () => { getProjectRuleTemplateListSpy.mockClear(); getProjectRuleTemplateListSpy.mockImplementation(() => createSpyErrorResponse({ data: [] }) ); - const { baseElement } = customRender(true); + const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(baseElement).toMatchSnapshot(); const element = queryBySelector('.ant-table-placeholder', baseElement); @@ -84,7 +82,7 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { }); it('should refresh table when emit "Refresh_Rule_Template_List" event', async () => { - customRender(true); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(getProjectRuleTemplateListSpy).toHaveBeenCalledTimes(1); await act(async () => @@ -99,7 +97,7 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { getProjectRuleTemplateListSpy.mockImplementation(() => createSpySuccessResponse({ data: [projectRuleTemplateListMockData[0]] }) ); - customRender(true); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); fireEvent.click(screen.getByText('编 辑')); await act(async () => jest.advanceTimersByTime(100)); @@ -113,7 +111,7 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { ); const deleteProjectRuleTemplateSpy = rule_template.deleteProjectRuleTemplate(); - customRender(true); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); fireEvent.click(screen.getByText('删 除')); await act(async () => jest.advanceTimersByTime(100)); @@ -144,7 +142,7 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { getProjectRuleTemplateListSpy.mockImplementation(() => createSpySuccessResponse({ data: [projectRuleTemplateListMockData[0]] }) ); - const { baseElement } = customRender(true); + const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(dispatchSpy).toHaveBeenCalledTimes(1); expect(dispatchSpy).toHaveBeenNthCalledWith(1, { @@ -184,7 +182,7 @@ describe('sqle/RuleTemplate/List/ProjectTable', () => { getProjectRuleTemplateListSpy.mockImplementation(() => createSpySuccessResponse({ data: [projectRuleTemplateListMockData[0]] }) ); - const { baseElement } = customRender(true); + const { baseElement } = customRender(); await act(async () => jest.advanceTimersByTime(3000)); expect(dispatchSpy).toHaveBeenCalledTimes(1); expect(dispatchSpy).toHaveBeenNthCalledWith(1, { diff --git a/packages/sqle/src/page/RuleTemplate/UpdateRuleTemplate/index.test.tsx b/packages/sqle/src/page/RuleTemplate/UpdateRuleTemplate/index.test.tsx index 9047a7d0f..ccd8caac2 100644 --- a/packages/sqle/src/page/RuleTemplate/UpdateRuleTemplate/index.test.tsx +++ b/packages/sqle/src/page/RuleTemplate/UpdateRuleTemplate/index.test.tsx @@ -39,7 +39,6 @@ describe('sqle/RuleTemplate/UpdateRuleTemplate', () => { let updateProjectRuleTemplateSpy: jest.SpyInstance; let getProjectRuleTemplateSpy: jest.SpyInstance; let getCategoryStatisticsSpy: jest.SpyInstance; - let getRuleVersionTipsSpy: jest.SpyInstance; const useParamsMock: jest.Mock = useParams as jest.Mock; beforeEach(() => { (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); @@ -58,7 +57,7 @@ describe('sqle/RuleTemplate/UpdateRuleTemplate', () => { useSpyOnMockHooks: true }); getAllRuleSpy = rule_template.getRuleList(); - getRuleVersionTipsSpy = rule_template.mockGetDriverRuleVersionTips(); + rule_template.mockGetDriverRuleVersionTips(); getDriversSpy = jest.spyOn(configuration, 'getDriversV2'); updateProjectRuleTemplateSpy = rule_template.updateProjectRuleTemplate(); getProjectRuleTemplateSpy = rule_template.getProjectRuleTemplate(); diff --git a/packages/sqle/src/page/SqlAnalyze/ManagementConf/index.test.tsx b/packages/sqle/src/page/SqlAnalyze/ManagementConf/index.test.tsx index 6864f1355..e6cb89ca8 100644 --- a/packages/sqle/src/page/SqlAnalyze/ManagementConf/index.test.tsx +++ b/packages/sqle/src/page/SqlAnalyze/ManagementConf/index.test.tsx @@ -16,7 +16,6 @@ import instance_audit_plan from '@actiontech/shared/lib/api/sqle/service/instanc import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import MockDate from 'mockdate'; import dayjs from 'dayjs'; -import sqlManage from '@actiontech/shared/lib/testUtil/mockApi/sqle/sqlManage'; import { translateTimeForRequest } from '@actiontech/dms-kit'; import { mockUsePermission, @@ -51,7 +50,7 @@ describe('SqlAnalyze/ManagementConfAnalyze', () => { let getInstanceTipListSpy: jest.SpyInstance; let getSqlManageSqlAnalysisChartSpy: jest.SpyInstance; - let currentTime = dayjs('2025-01-09 12:00:00'); + const currentTime = dayjs('2025-01-09 12:00:00'); beforeEach(() => { MockDate.set(dayjs('2025-01-09 12:00:00').valueOf()); jest.useFakeTimers({ legacyFakeTimers: true }); diff --git a/packages/sqle/src/page/SqlAnalyze/SqlManage/index.test.tsx b/packages/sqle/src/page/SqlAnalyze/SqlManage/index.test.tsx index 7e4b5b565..29562d40d 100644 --- a/packages/sqle/src/page/SqlAnalyze/SqlManage/index.test.tsx +++ b/packages/sqle/src/page/SqlAnalyze/SqlManage/index.test.tsx @@ -51,7 +51,7 @@ describe('SqlAnalyze/SQLManage', () => { let getInstanceTipListSpy: jest.SpyInstance; let getSqlManageSqlAnalysisChartSpy: jest.SpyInstance; - let currentTime = dayjs('2025-01-09 12:00:00'); + const currentTime = dayjs('2025-01-09 12:00:00'); beforeEach(() => { MockDate.set(currentTime.valueOf()); jest.useFakeTimers({ legacyFakeTimers: true }); diff --git a/packages/sqle/src/page/SqlAnalyze/hooks/__tests__/useSqlExecPlanCost.test.tsx b/packages/sqle/src/page/SqlAnalyze/hooks/__tests__/useSqlExecPlanCost.test.tsx index 2523f4177..ff5b4e0ce 100644 --- a/packages/sqle/src/page/SqlAnalyze/hooks/__tests__/useSqlExecPlanCost.test.tsx +++ b/packages/sqle/src/page/SqlAnalyze/hooks/__tests__/useSqlExecPlanCost.test.tsx @@ -17,7 +17,7 @@ describe('SqlAnalyze/useSqlExecPlanCost', () => { ...i, x: formatTime(i.x) })); - let currentTime = dayjs('2025-01-09 12:00:00'); + const currentTime = dayjs('2025-01-09 12:00:00'); beforeEach(() => { MockDate.set(currentTime.valueOf()); jest.useFakeTimers({ legacyFakeTimers: true }); diff --git a/packages/sqle/src/page/SqlAudit/Create/index.test.tsx b/packages/sqle/src/page/SqlAudit/Create/index.test.tsx index 130dce052..cfe59a672 100644 --- a/packages/sqle/src/page/SqlAudit/Create/index.test.tsx +++ b/packages/sqle/src/page/SqlAudit/Create/index.test.tsx @@ -351,7 +351,7 @@ describe('sqle/SqlAudit/Create', () => { await act(async () => jest.advanceTimersByTime(300)); expect(baseElement).toMatchSnapshot(); const file = new File([''], 'test.xml'); - let uploader = getBySelector('#mybatisFile', baseElement); + const uploader = getBySelector('#mybatisFile', baseElement); fireEvent.change(uploader, { target: { files: [file] } }); @@ -395,7 +395,7 @@ describe('sqle/SqlAudit/Create', () => { await act(async () => jest.advanceTimersByTime(300)); expect(baseElement).toMatchSnapshot(); const file = new File([''], 'test.xml'); - let uploader = getBySelector('#zipFile', baseElement); + const uploader = getBySelector('#zipFile', baseElement); fireEvent.change(uploader, { target: { files: [file] } }); @@ -723,7 +723,7 @@ describe('sqle/SqlAudit/Create', () => { }; it('should switch between different git protocols', async () => { - const { baseElement } = await setupGitRepositoryTest(); + await setupGitRepositoryTest(); // 默认为 HTTP 协议 expect(screen.getByLabelText('用户名')).toBeInTheDocument(); diff --git a/packages/sqle/src/page/SqlAudit/Detail/index.test.tsx b/packages/sqle/src/page/SqlAudit/Detail/index.test.tsx index 1ca96ef4d..71e22c20f 100644 --- a/packages/sqle/src/page/SqlAudit/Detail/index.test.tsx +++ b/packages/sqle/src/page/SqlAudit/Detail/index.test.tsx @@ -21,8 +21,6 @@ jest.mock('react-redux', () => { }); describe('sqle/SqlAudit/Detail', () => { - let mockUseCurrentProjectSpy: jest.SpyInstance; - ignoreConsoleErrors([UtilsConsoleErrorStringsEnum['UNIQUE_KEY_REQUIRED']]); beforeEach(() => { @@ -37,7 +35,7 @@ describe('sqle/SqlAudit/Detail', () => { } }) ); - mockUseCurrentProjectSpy = mockUseCurrentProject(); + mockUseCurrentProject(); }); beforeAll(() => { diff --git a/packages/sqle/src/page/SqlAudit/List/component/SqlAuditTags/index.test.tsx b/packages/sqle/src/page/SqlAudit/List/component/SqlAuditTags/index.test.tsx index 9d97d0f31..dbe8cdb5e 100644 --- a/packages/sqle/src/page/SqlAudit/List/component/SqlAuditTags/index.test.tsx +++ b/packages/sqle/src/page/SqlAudit/List/component/SqlAuditTags/index.test.tsx @@ -25,7 +25,7 @@ describe('sqle/SqlAudit/SqlAuditTags', () => { Promise.resolve().then(updateTagsSpy)} + updateTags={() => Promise.resolve().then(updateTagsSpy)} /> ); }; diff --git a/packages/sqle/src/page/SqlAudit/List/index.test.tsx b/packages/sqle/src/page/SqlAudit/List/index.test.tsx index 21e8b87d9..a7b733104 100644 --- a/packages/sqle/src/page/SqlAudit/List/index.test.tsx +++ b/packages/sqle/src/page/SqlAudit/List/index.test.tsx @@ -28,12 +28,11 @@ jest.mock('react-redux', () => { describe('sqle/SqlAudit/List', () => { let sqlAuditRecordsSpy: jest.SpyInstance; - let mockUseCurrentProjectSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers(); instance.mockAllApi(); sqlAuditRecordsSpy = sqlAuditRecord.getSQLAuditRecords(); - mockUseCurrentProjectSpy = mockUseCurrentProject(); + mockUseCurrentProject(); mockUseCurrentUser(); (useSelector as jest.Mock).mockImplementation((selector) => { diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/AuditResultList/Table/__tests__/index.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/AuditResultList/Table/__tests__/index.ce.test.tsx index 495250c6c..c31438080 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/AuditResultList/Table/__tests__/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/AuditResultList/Table/__tests__/index.ce.test.tsx @@ -22,7 +22,6 @@ jest.mock('react-redux', () => { }); describe('sqle/ExecWorkflow/Common/AuditResultList', () => { - let requestUpdateAuditTaskSQLs: jest.SpyInstance; let requestGetAuditTaskSQLs: jest.SpyInstance; const customRender = (params: AuditResultTableProps) => { @@ -32,7 +31,7 @@ describe('sqle/ExecWorkflow/Common/AuditResultList', () => { beforeEach(() => { mockUseCurrentUser(); jest.useFakeTimers(); - requestUpdateAuditTaskSQLs = execWorkflow.updateAuditTaskSQLs(); + execWorkflow.updateAuditTaskSQLs(); requestGetAuditTaskSQLs = execWorkflow.getAuditTaskSQLs(); execWorkflow.mockAllApi(); (useSelector as jest.Mock).mockImplementation((e) => diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/DownloadRecord/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/DownloadRecord/__tests__/index.test.tsx index f5023a0f8..626f8bea6 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/DownloadRecord/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/DownloadRecord/__tests__/index.test.tsx @@ -4,12 +4,10 @@ import execWorkflow from '@actiontech/shared/lib/testUtil/mockApi/sqle/execWorkf import { DownloadRecordProps } from '../index.type'; import { fireEvent, act, cleanup, screen } from '@testing-library/react'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; -import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; describe('sqle/ExecWorkflow/Common/DownloadRecord', () => { let requestDownloadFile: jest.SpyInstance; let requestDownloadReport: jest.SpyInstance; - let downloadBackupFileSpy: jest.SpyInstance; const customRender = (params: DownloadRecordProps) => { return sqleSuperRender(); }; @@ -18,7 +16,7 @@ describe('sqle/ExecWorkflow/Common/DownloadRecord', () => { jest.useFakeTimers(); requestDownloadFile = execWorkflow.downloadAuditTaskSQLFile(); requestDownloadReport = execWorkflow.downloadAuditTaskSQLReport(); - downloadBackupFileSpy = execWorkflow.downloadBackupFile(); + execWorkflow.downloadBackupFile(); mockUseCurrentProject(); }); diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/InstanceSegmentedLabel/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/InstanceSegmentedLabel/__tests__/index.test.tsx index b432d0865..996c1f4f2 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/InstanceSegmentedLabel/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/InstanceSegmentedLabel/__tests__/index.test.tsx @@ -1,5 +1,5 @@ import { AuditTaskResV1AuditLevelEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; -import InstanceSegmentedLabel, { InstanceSegmentedLabelProps } from '..'; +import InstanceSegmentedLabel from '..'; import { sqleSuperRender } from '../../../../../testUtils/superRender'; describe('sqle/ExecWorkflow/Common/InstanceSegmentedLabel', () => { diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.ce.test.tsx index 88db6c6cc..56c0415ce 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.ce.test.tsx @@ -6,7 +6,7 @@ import { Form } from 'antd'; import { sqleSuperRender } from '../../../../../../testUtils/superRender'; import task from '@actiontech/shared/lib/testUtil/mockApi/sqle/task'; import SqlExecModeSelector from '../components/SqlExecModeSelector'; -import { act, fireEvent, renderHook, screen } from '@testing-library/react'; +import { fireEvent, renderHook, screen } from '@testing-library/react'; import { AuditTaskResV1SqlSourceEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; import { SqlExecModeSelectorProps } from '../components/index.type'; diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.test.tsx index 42451e9b8..abf3f9dec 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/SqlStatementFormItem/__tests__/SqlExecModeSelector.test.tsx @@ -37,7 +37,7 @@ describe('test SqlExecModeSelector', () => { }; it('should disabled the execute mode selector when file mode execute SQL is not supported', async () => { - const { baseElement } = customRender({ + customRender({ currentSqlUploadType: AuditTaskResV1SqlSourceEnum.zip_file }); expect(screen.queryByText('选择上线模式')).toBeInTheDocument(); diff --git a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/__tests__/index.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/__tests__/index.ce.test.tsx index e7c2dfe05..03af2794e 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/__tests__/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Common/SqlStatementFormController/__tests__/index.ce.test.tsx @@ -6,7 +6,6 @@ import { Form } from 'antd'; import SqlStatementFormController from '..'; import { sqleSuperRender } from '../../../../../testUtils/superRender'; import { renderHook } from '@testing-library/react'; -import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { UtilsConsoleErrorStringsEnum, diff --git a/packages/sqle/src/page/SqlExecWorkflow/Create/components/FormStep/SqlAuditInfoForm/SqlAuditInfoFormItem/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Create/components/FormStep/SqlAuditInfoForm/SqlAuditInfoFormItem/__tests__/index.test.tsx index cdf043252..2917da9a7 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Create/components/FormStep/SqlAuditInfoForm/SqlAuditInfoFormItem/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Create/components/FormStep/SqlAuditInfoForm/SqlAuditInfoFormItem/__tests__/index.test.tsx @@ -5,7 +5,7 @@ import execWorkflow from '@actiontech/shared/lib/testUtil/mockApi/sqle/execWorkf import { MockSharedStepDetail } from '../../../../../hooks/mockData'; import { SharedStepDetails } from '../../../../../index.type'; import { Form } from 'antd'; -import { act, renderHook } from '@testing-library/react'; +import { renderHook } from '@testing-library/react'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; import { useSelector } from 'react-redux'; diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/Common/FileModeHeader/__tests__/index.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/Common/FileModeHeader/__tests__/index.ce.test.tsx index 126003307..8443a3fd6 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/Common/FileModeHeader/__tests__/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/Common/FileModeHeader/__tests__/index.ce.test.tsx @@ -5,7 +5,7 @@ import { useParams } from 'react-router-dom'; import { sqleSuperRender } from '../../../../../../../../../testUtils/superRender'; import FileModeHeader from '..'; -import { fireEvent, screen } from '@testing-library/dom'; +import { screen } from '@testing-library/dom'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; jest.mock('react-router-dom', () => ({ diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/index.test.tsx index 1a981e508..fbc001e35 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/index.test.tsx @@ -7,8 +7,7 @@ import { sqleSuperRender } from '../../../../../../testUtils/superRender'; import { AuditTaskResData, WorkflowTasksItemData, - WorkflowsOverviewListData, - workflowsDetailData + WorkflowsOverviewListData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/execWorkflow/data'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { WORKFLOW_OVERVIEW_TAB_KEY } from '../../../hooks/useAuditExecResultPanelSetup'; diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/index.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/index.ce.test.tsx index c25bb1429..49d556441 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/PageHeaderExtra/__test__/index.ce.test.tsx @@ -9,7 +9,6 @@ import { WorkflowRecordResV2StatusEnum, WorkflowStepResV2TypeEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; -import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; import MockDate from 'mockdate'; diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/SqlRollback/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/SqlRollback/__tests__/index.test.tsx index 1ab893acc..dc3343d7d 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/SqlRollback/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/SqlRollback/__tests__/index.test.tsx @@ -135,7 +135,7 @@ describe('sqle/ExecWorkflow/Detail/SqlRollback', () => { }); it('render navigate to create workflow', async () => { - const { baseElement } = customRender(); + customRender(); await act(async () => jest.advanceTimersByTime(3000)); const createWorkflowBtn = screen.getByText('创建工单').closest('button'); expect(createWorkflowBtn).toBeDisabled(); diff --git a/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.ce.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.ce.test.tsx index 3821e4b6e..001033eb4 100644 --- a/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlExecWorkflow/List/__tests__/index.ce.test.tsx @@ -7,7 +7,6 @@ import { useNavigate } from 'react-router-dom'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import WorkflowList from '..'; - import { sqleSuperRender } from '../../../../testUtils/superRender'; import user from '@actiontech/shared/lib/testUtil/mockApi/sqle/user'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; @@ -35,10 +34,6 @@ jest.mock('react-redux', () => { describe('sqle/Workflow/List', () => { const navigateSpy = jest.fn(); - let RequestUserTipList: jest.SpyInstance; - let RequestInstanceTipList: jest.SpyInstance; - let RequestWorkflowList: jest.SpyInstance; - let RequestBatchCancel: jest.SpyInstance; const customRender = () => { return sqleSuperRender(); @@ -49,10 +44,10 @@ describe('sqle/Workflow/List', () => { (useNavigate as jest.Mock).mockImplementation(() => navigateSpy); jest.useFakeTimers(); mockDatabaseType(); - RequestUserTipList = user.getUserTipList(); - RequestInstanceTipList = instance.getInstanceTipList(); - RequestWorkflowList = execWorkflow.getWorkflows(); - RequestBatchCancel = execWorkflow.batchCancelWorkflows(); + user.getUserTipList(); + instance.getInstanceTipList(); + execWorkflow.getWorkflows(); + execWorkflow.batchCancelWorkflows(); mockUseCurrentProject(); mockUseCurrentUser(); mockUsePermission(undefined, { mockSelector: true }); diff --git a/packages/sqle/src/page/SqlInsights/components/RelatedSqlList/__tests__/SqlExecutionCostTrendChart.test.tsx b/packages/sqle/src/page/SqlInsights/components/RelatedSqlList/__tests__/SqlExecutionCostTrendChart.test.tsx index be6b786a4..eceaec60d 100644 --- a/packages/sqle/src/page/SqlInsights/components/RelatedSqlList/__tests__/SqlExecutionCostTrendChart.test.tsx +++ b/packages/sqle/src/page/SqlInsights/components/RelatedSqlList/__tests__/SqlExecutionCostTrendChart.test.tsx @@ -3,7 +3,7 @@ import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import SqlExecutionCostTrendChart from '../SqlExecutionCostTrendChart'; import { IRelatedSQLInfo } from '@actiontech/shared/lib/api/sqle/service/common'; import { RelatedSQLInfoSourceEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; -import { Scatter, ScatterConfig } from '@ant-design/plots'; +import { ScatterConfig } from '@ant-design/plots'; const mockRecordWithData: IRelatedSQLInfo = { sql_fingerprint: 'SELECT * FROM users WHERE id = ?', diff --git a/packages/sqle/src/page/SqlInsights/components/SqlInsightsLineChart/__tests__/useChartEvent.test.tsx b/packages/sqle/src/page/SqlInsights/components/SqlInsightsLineChart/__tests__/useChartEvent.test.tsx index a31bac930..3096edfd1 100644 --- a/packages/sqle/src/page/SqlInsights/components/SqlInsightsLineChart/__tests__/useChartEvent.test.tsx +++ b/packages/sqle/src/page/SqlInsights/components/SqlInsightsLineChart/__tests__/useChartEvent.test.tsx @@ -148,7 +148,7 @@ describe('useChartEvent', () => { beforeEach(() => { mockChart = { chart: { - getXY: jest.fn((data) => ({ x: 100, y: 50 })) + getXY: jest.fn(() => ({ x: 100, y: 50 })) } } as unknown as LineEventParams[0]; hookResult = renderHook(() => useChartEvent(defaultParams)); diff --git a/packages/sqle/src/page/SqlInsights/hooks/__tests__/useOpenScanTask.test.tsx b/packages/sqle/src/page/SqlInsights/hooks/__tests__/useOpenScanTask.test.tsx index 3fa4dc8a1..24c52c5e3 100644 --- a/packages/sqle/src/page/SqlInsights/hooks/__tests__/useOpenScanTask.test.tsx +++ b/packages/sqle/src/page/SqlInsights/hooks/__tests__/useOpenScanTask.test.tsx @@ -22,22 +22,6 @@ describe('useOpenScanTask', () => { let getInstanceAuditPlansSpy: jest.SpyInstance; - const mockAuditPlanWithPerformanceCollect: IInstanceAuditPlanResV1 = { - instance_audit_plan_id: 1, - instance_name: 'test-instance', - environment: 'test-env', - instance_type: 'MySQL', - audit_plan_types: [ - { - audit_plan_id: 1, - type: 'performance_collect_mysql', - desc: 'Performance collect' - } - ], - create_time: '2024-01-01T00:00:00Z', - creator: 'admin' - }; - const mockAuditPlanWithProcesslist: IInstanceAuditPlanResV1 = { instance_audit_plan_id: 2, instance_name: 'test-instance', diff --git a/packages/sqle/src/page/SqlManagement/component/SQLEEIndex/hooks/__tests__/useStaticStatus.test.ts b/packages/sqle/src/page/SqlManagement/component/SQLEEIndex/hooks/__tests__/useStaticStatus.test.ts index ed76a5d3c..fa7993d58 100644 --- a/packages/sqle/src/page/SqlManagement/component/SQLEEIndex/hooks/__tests__/useStaticStatus.test.ts +++ b/packages/sqle/src/page/SqlManagement/component/SQLEEIndex/hooks/__tests__/useStaticStatus.test.ts @@ -1,9 +1,6 @@ import { sqleSuperRenderHook } from '../../../../../../testUtils/superRender'; import useStaticStatus from '../useStaticStatus'; -import { - GetSqlManageListV2FilterAuditLevelEnum, - GetSqlManageListV2FilterSourceEnum -} from '@actiontech/shared/lib/api/sqle/service/SqlManage/index.enum'; +import { GetSqlManageListV2FilterAuditLevelEnum } from '@actiontech/shared/lib/api/sqle/service/SqlManage/index.enum'; describe('SqlManagement/useStaticStatus', () => { it('render select options', async () => { diff --git a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/ScanTypesDynamicParams/HighPriorityConditions/__tests__/hooks.test.ts b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/ScanTypesDynamicParams/HighPriorityConditions/__tests__/hooks.test.ts index 8504de181..3876d3ab8 100644 --- a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/ScanTypesDynamicParams/HighPriorityConditions/__tests__/hooks.test.ts +++ b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/ScanTypesDynamicParams/HighPriorityConditions/__tests__/hooks.test.ts @@ -1,4 +1,4 @@ -import { act, renderHook } from '@testing-library/react'; +import { renderHook } from '@testing-library/react'; import usePriorityConditionsParams from '../hooks'; import { HighPriorityConditionReqOperatorEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; diff --git a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/DataSourceSelection.test.tsx b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/DataSourceSelection.test.tsx index ce3bd9ad8..eee47a644 100644 --- a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/DataSourceSelection.test.tsx +++ b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/DataSourceSelection.test.tsx @@ -5,13 +5,7 @@ import DataSourceSelection from '../DataSourceSelection'; import { ConfFormContextProvide, ConfFormContextType } from '../context'; import { URLSearchParams } from 'url'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; -import { - act, - cleanup, - fireEvent, - renderHook, - screen -} from '@testing-library/react'; +import { act, cleanup, fireEvent, renderHook } from '@testing-library/react'; import { Form } from 'antd'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; diff --git a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/hooks.test.ts b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/hooks.test.ts index 623ddf4f6..ddb591227 100644 --- a/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/hooks.test.ts +++ b/packages/sqle/src/page/SqlManagementConf/Common/ConfForm/__tests__/hooks.test.ts @@ -8,8 +8,8 @@ import { AuditPlanParamResV1TypeEnum } from '@actiontech/shared/lib/api/sqle/ser describe('test SqlManagementConf/common/ConfForm/hooks', () => { let getAuditPlanMetasSpy: jest.SpyInstance; - let resetFieldsSpy = jest.fn(); - let getFieldsValueSpy = jest.fn(); + const resetFieldsSpy = jest.fn(); + const getFieldsValueSpy = jest.fn(); beforeEach(() => { getAuditPlanMetasSpy = instanceAuditPlan.getAuditPlanMeta(); jest.spyOn(Form, 'useForm').mockReturnValue([ diff --git a/packages/sqle/src/page/SqlManagementConf/Detail/__tests__/index.test.tsx b/packages/sqle/src/page/SqlManagementConf/Detail/__tests__/index.test.tsx index 4202b64a8..488e6c568 100644 --- a/packages/sqle/src/page/SqlManagementConf/Detail/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlManagementConf/Detail/__tests__/index.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import { useLocation, useNavigate, @@ -10,10 +11,7 @@ import ConfDetail from '..'; import { act, cleanup, fireEvent } from '@testing-library/react'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { - mockProjectInfo, - mockUseUserOperationPermissionData -} from '@actiontech/shared/lib/testUtil/mockHook/data'; +import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import { mockAuditPlanDetailData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan/data'; import { createSpyErrorResponse, diff --git a/packages/sqle/src/page/SqlManagementConf/List/__tests__/index.test.tsx b/packages/sqle/src/page/SqlManagementConf/List/__tests__/index.test.tsx index 338c642e5..b3efc7348 100644 --- a/packages/sqle/src/page/SqlManagementConf/List/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlManagementConf/List/__tests__/index.test.tsx @@ -3,10 +3,7 @@ import { cleanup, act, screen, fireEvent } from '@testing-library/react'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; -import { - mockProjectInfo, - mockUseUserOperationPermissionData -} from '@actiontech/shared/lib/testUtil/mockHook/data'; +import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import instanceAuditPlan from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan'; import { mockInstanceAuditPlanListData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan/data'; import { sqleSuperRender } from '../../../../testUtils/superRender'; diff --git a/packages/sqle/src/page/SqlManagementConf/Update/__tests__/index.test.tsx b/packages/sqle/src/page/SqlManagementConf/Update/__tests__/index.test.tsx index 65440f6be..d801c9d01 100644 --- a/packages/sqle/src/page/SqlManagementConf/Update/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlManagementConf/Update/__tests__/index.test.tsx @@ -5,16 +5,10 @@ import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/moc import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import instanceAuditPlan from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan'; -import { - mockAuditPlanMetaData, - mockAuditPlanDetailData -} from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan/data'; +import { mockAuditPlanMetaData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instanceAuditPlan/data'; import configuration from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; -import { - instanceInfoMockData, - instanceTipsMockData -} from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance/data'; +import { instanceInfoMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance/data'; import rule_template from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template'; import { projectRuleTemplateList } from '@actiontech/shared/lib/testUtil/mockApi/sqle/rule_template/data'; import { sqleSuperRender } from '../../../../testUtils/superRender'; diff --git a/packages/sqle/src/page/SqlManagementException/List/__tests__/index.test.tsx b/packages/sqle/src/page/SqlManagementException/List/__tests__/index.test.tsx index e855aac51..ce496f35f 100644 --- a/packages/sqle/src/page/SqlManagementException/List/__tests__/index.test.tsx +++ b/packages/sqle/src/page/SqlManagementException/List/__tests__/index.test.tsx @@ -27,7 +27,6 @@ describe('slqe/Whitelist/SqlManagementExceptionList', () => { let getBlacklistSpy: jest.SpyInstance; const dispatchSpy = jest.fn(); let useCurrentUserSpy: jest.SpyInstance; - let useCurrentProjectSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers(); getBlacklistSpy = blacklist.getBlacklist(); @@ -41,7 +40,7 @@ describe('slqe/Whitelist/SqlManagementExceptionList', () => { }) ); (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy); - useCurrentProjectSpy = mockUseCurrentProject(); + mockUseCurrentProject(); useCurrentUserSpy = mockUseCurrentUser(); }); diff --git a/packages/sqle/src/page/SqlOptimization/Create/index.test.tsx b/packages/sqle/src/page/SqlOptimization/Create/index.test.tsx index ca61b84bc..f08a15e48 100644 --- a/packages/sqle/src/page/SqlOptimization/Create/index.test.tsx +++ b/packages/sqle/src/page/SqlOptimization/Create/index.test.tsx @@ -1,7 +1,7 @@ import { cleanup, screen, act, fireEvent } from '@testing-library/react'; import CreateSqlOptimization from '.'; import { sqleSuperRender } from '../../../testUtils/superRender'; -import { useNavigate, BrowserRouter } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; @@ -12,10 +12,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; -import { - instanceInfoMockData, - instanceTipsMockData -} from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance/data'; +import { instanceTipsMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance/data'; import sqlOptimization from '@actiontech/shared/lib/testUtil/mockApi/sqle/sqlOptimization'; import MockDate from 'mockdate'; import dayjs from 'dayjs'; @@ -47,7 +44,6 @@ describe('sqle/SqlOptimization/Create', () => { let getInstanceTipListSpy: jest.SpyInstance; let getInstanceSchemaSpy: jest.SpyInstance; let optimizeSQLReqSpy: jest.SpyInstance; - let getDriversSpy: jest.SpyInstance; const mockDispatch = jest.fn(); @@ -64,7 +60,7 @@ describe('sqle/SqlOptimization/Create', () => { optimizeSQLReqSpy = sqlOptimization.optimizeSQLReq(); getInstanceTipListSpy = instance.getInstanceTipList(); getInstanceSchemaSpy = instance.getInstanceSchemas(); - getDriversSpy = sqleMockApi.configuration.getDrivers(); + sqleMockApi.configuration.getDrivers(); }); afterEach(() => { diff --git a/packages/sqle/src/page/SqlOptimization/Result/components/__tests__/CopyButton.test.tsx b/packages/sqle/src/page/SqlOptimization/Result/components/__tests__/CopyButton.test.tsx index d31752388..fa9a88a4d 100644 --- a/packages/sqle/src/page/SqlOptimization/Result/components/__tests__/CopyButton.test.tsx +++ b/packages/sqle/src/page/SqlOptimization/Result/components/__tests__/CopyButton.test.tsx @@ -18,6 +18,7 @@ describe('CopyButton', () => { copyTextByTextareaSpy = jest .spyOn(Copy, 'copyTextByTextarea') + // eslint-disable-next-line @typescript-eslint/no-empty-function .mockImplementation(() => {}); }); diff --git a/packages/sqle/src/page/SqlOptimization/Result/hooks/__tests__/useOptimizationResult.test.ts b/packages/sqle/src/page/SqlOptimization/Result/hooks/__tests__/useOptimizationResult.test.ts index 931dfd925..0fab4d345 100644 --- a/packages/sqle/src/page/SqlOptimization/Result/hooks/__tests__/useOptimizationResult.test.ts +++ b/packages/sqle/src/page/SqlOptimization/Result/hooks/__tests__/useOptimizationResult.test.ts @@ -1,4 +1,4 @@ -import { renderHook, act } from '@testing-library/react'; +import { act } from '@testing-library/react'; import { superRenderHook } from '@actiontech/shared/lib/testUtil/superRender'; import { mockUseCurrentProject, diff --git a/packages/sqle/src/page/SqlOptimization/index.ce.test.tsx b/packages/sqle/src/page/SqlOptimization/index.ce.test.tsx index f0c75a2d9..62bf06e91 100644 --- a/packages/sqle/src/page/SqlOptimization/index.ce.test.tsx +++ b/packages/sqle/src/page/SqlOptimization/index.ce.test.tsx @@ -2,7 +2,6 @@ * @test_version ce */ -import { screen } from '@testing-library/react'; import SqlOptimization from '.'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; diff --git a/packages/sqle/src/page/VersionManagement/Update/__tests__/index.test.tsx b/packages/sqle/src/page/VersionManagement/Update/__tests__/index.test.tsx index 0b4a7c425..8de251007 100644 --- a/packages/sqle/src/page/VersionManagement/Update/__tests__/index.test.tsx +++ b/packages/sqle/src/page/VersionManagement/Update/__tests__/index.test.tsx @@ -5,10 +5,7 @@ import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/ import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; import { mockProjectInfo } from '@actiontech/shared/lib/testUtil/mockHook/data'; import { sqleSuperRender } from '../../../../testUtils/superRender'; -import { - getAllBySelector, - getBySelector -} from '@actiontech/shared/lib/testUtil/customQuery'; +import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import instance from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance'; import { instanceTipsMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/instance/data'; import { useParams } from 'react-router-dom'; diff --git a/packages/sqle/src/store/pipeline/index.test.ts b/packages/sqle/src/store/pipeline/index.test.ts index feb642cea..192d6248e 100644 --- a/packages/sqle/src/store/pipeline/index.test.ts +++ b/packages/sqle/src/store/pipeline/index.test.ts @@ -3,7 +3,6 @@ import reducers, { updatePipelineNodeTourStatus } from '.'; import { IReduxState } from '..'; -import { BlacklistResV1TypeEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; describe('store/pipeline', () => { test('should create action', () => { diff --git a/turbo.json b/turbo.json index e47bd1941..0f66be313 100644 --- a/turbo.json +++ b/turbo.json @@ -39,25 +39,18 @@ ] }, "ts-check": { - "dependsOn": [ - "@actiontech/dms-kit#build" - ], "outputs": [] }, "eslint": { - "dependsOn": [], "outputs": [] }, + "eslint:fix": { + "cache": false + }, "stylelint": { - "dependsOn": [ - "@actiontech/dms-kit#build" - ], "outputs": [] }, "prettier:c": { - "dependsOn": [ - "@actiontech/dms-kit#build" - ], "outputs": [] }, "base#build": { From aeb747a98f74e98aba617b62bd2287fe7898a560 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 18 Dec 2025 14:14:46 +0800 Subject: [PATCH 06/12] chore:add typescript config --- cli/create-dms-page/package.json | 3 +- cli/create-dms-page/tsconfig.json | 103 ++-------------- cli/dms-kit-publish/package.json | 3 +- cli/dms-kit-publish/tsconfig.json | 116 ++---------------- package.json | 6 +- packages/base/package.json | 5 +- packages/base/tsconfig.json | 9 +- packages/dms-kit/package.json | 3 +- packages/dms-kit/tsconfig.json | 14 +-- packages/icons/package.json | 3 +- packages/icons/package_publish.json | 4 +- packages/icons/tsconfig.json | 10 +- .../MonacoEditor/monacoEditorConfig.ts | 7 +- packages/shared/package.json | 3 +- packages/shared/tsconfig.json | 9 +- packages/sqle/package.json | 3 +- packages/sqle/tsconfig.json | 9 +- packages/typescript-config/base.json | 22 ++++ packages/typescript-config/package.json | 10 ++ packages/typescript-config/react-lib.json | 6 + pnpm-lock.yaml | 23 ++++ 21 files changed, 121 insertions(+), 250 deletions(-) create mode 100644 packages/typescript-config/base.json create mode 100644 packages/typescript-config/package.json create mode 100644 packages/typescript-config/react-lib.json diff --git a/cli/create-dms-page/package.json b/cli/create-dms-page/package.json index a875171d4..50513a934 100644 --- a/cli/create-dms-page/package.json +++ b/cli/create-dms-page/package.json @@ -20,7 +20,8 @@ "devDependencies": { "@types/babel__generator": "^7.6.8", "@types/babel__traverse": "^7.20.6", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" }, "dependencies": { "@babel/generator": "^7.25.0", diff --git a/cli/create-dms-page/tsconfig.json b/cli/create-dms-page/tsconfig.json index af9c7a141..691d3de44 100644 --- a/cli/create-dms-page/tsconfig.json +++ b/cli/create-dms-page/tsconfig.json @@ -1,106 +1,21 @@ { + "extends": "@actiontech/dms-typescript-config/base", + "include": ["./src"], + "exclude": ["node_modules", "dist", "./bin"], "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ + "target": "ES6", "module": "CommonJS" /* Specify what module code is generated. */, "rootDir": "./src" /* Specify the root folder within your source files. */, "moduleResolution": "Node" /* Specify how TypeScript looks up a file from a given module specifier. */, "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [ - // "./src", - // "./package.json" - // ] /* Allow multiple folders to be treated as one when resolving modules. */, - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ "resolveJsonModule": true /* Enable importing .json files */, - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ "sourceMap": true /* Create source map files for emitted JavaScript files. */, - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ "outDir": "./dist" /* Specify an output folder for all emitted files. */, - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */, - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "exclude": ["node_modules", "dist", "./bin"], - "include": ["./src"] + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipDefaultLibCheck": true, + "skipLibCheck": true + } } diff --git a/cli/dms-kit-publish/package.json b/cli/dms-kit-publish/package.json index 890fc61db..e838f208b 100644 --- a/cli/dms-kit-publish/package.json +++ b/cli/dms-kit-publish/package.json @@ -31,6 +31,7 @@ "@types/node": "^18.0.4", "@types/nodemailer": "^7.0.3", "@types/semver": "^7.7.1", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/cli/dms-kit-publish/tsconfig.json b/cli/dms-kit-publish/tsconfig.json index af9c7a141..9e016fe9a 100644 --- a/cli/dms-kit-publish/tsconfig.json +++ b/cli/dms-kit-publish/tsconfig.json @@ -1,106 +1,16 @@ { - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ - "module": "CommonJS" /* Specify what module code is generated. */, - "rootDir": "./src" /* Specify the root folder within your source files. */, - "moduleResolution": "Node" /* Specify how TypeScript looks up a file from a given module specifier. */, - "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [ - // "./src", - // "./package.json" - // ] /* Allow multiple folders to be treated as one when resolving modules. */, - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - "resolveJsonModule": true /* Enable importing .json files */, - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true /* Create source map files for emitted JavaScript files. */, - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist" /* Specify an output folder for all emitted files. */, - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */, - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, + "extends": "@actiontech/dms-typescript-config/base", + "include": ["./src"], "exclude": ["node_modules", "dist", "./bin"], - "include": ["./src"] + "compilerOptions": { + "target": "ES6", + "module": "CommonJS", + "lib": [], + "allowJs": true, + "rootDir": "./src", + "baseUrl": "./", + "sourceMap": true, + "outDir": "./dist", + "noEmit": false + } } diff --git a/package.json b/package.json index bbfd691b0..5b9b9922f 100644 --- a/package.json +++ b/package.json @@ -15,13 +15,13 @@ "build": "turbo run build --filter=base", "build:ee": "turbo run build:ee --filter=base", "build:demo": "turbo run build:demo --filter=base", - "prettier:w": "prettier -w packages/*/src/ packages/shared/lib/ scripts/cli/*/src", - "prettier:c": "prettier -c packages/*/src/ packages/shared/lib/ scripts/cli/*/src", + "prettier:w": "prettier -w packages/*/src/ packages/shared/lib/ cli/*/src", + "prettier:c": "prettier -c packages/*/src/ packages/shared/lib/ cli/*/src", "eslint": "turbo run eslint", "eslint:fix": "turbo run eslint:fix", "stylelint": "stylelint packages/*/{src,lib}/**/{*.less,style.ts,element.ts}", "ts-check": "turbo run ts-check", - "checker": "turbo run ts-check eslint stylelint prettier:c --filter=base", + "checker": "concurrently \"turbo run ts-check\" \"turbo run eslint\" \"pnpm run stylelint\" \"pnpm run prettier:c\"", "test": "sh ./scripts/jest/run.sh", "test:c": "sh ./scripts/jest/run-coverage.sh", "test:ci": "sh ./scripts/jest/run-ci-ee.sh && sh ./scripts/jest/run-ci-ce.sh && node ./scripts/jest/merge-report-json.js", diff --git a/packages/base/package.json b/packages/base/package.json index 237a02ec8..2f8423d37 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -10,8 +10,6 @@ "build:ee": "node ../../scripts/getGitVersion.mjs ee && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ee,SQLE vite build", "build:demo": "node ../../scripts/getGitVersion.mjs trial && tsc && cross-env NODE_OPTIONS=--max_old_space_size=102400 buildType=ce,SQLE,DEMO vite build", "preview": "vite preview", - "stylelint": "pnpm -w stylelint", - "prettier:c": "pnpm -w prettier:c", "eslint": "eslint src", "eslint:fix": "eslint src --fix", "ts-check": "tsc --noEmit" @@ -22,6 +20,7 @@ "babel-preset-react-app": "^10.0.1", "sqle": "workspace:^", "@actiontech/icons": "workspace:^", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/base/tsconfig.json b/packages/base/tsconfig.json index 740aafa02..dd8e4282a 100644 --- a/packages/base/tsconfig.json +++ b/packages/base/tsconfig.json @@ -1,10 +1,9 @@ { - "extends": "../../tsconfig.json", - "include": ["src"], + "extends": "@actiontech/dms-typescript-config/react-lib", "compilerOptions": { "paths": { "~/*": ["./src/*"] - }, - "skipLibCheck": true - } + } + }, + "include": ["src"] } diff --git a/packages/dms-kit/package.json b/packages/dms-kit/package.json index 6878b4f30..4570f7516 100644 --- a/packages/dms-kit/package.json +++ b/packages/dms-kit/package.json @@ -57,6 +57,7 @@ "father": "^4.5.2", "dumi": "^2.3.8", "babel-plugin-import": "^1.13.8", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/dms-kit/tsconfig.json b/packages/dms-kit/tsconfig.json index 83e2e925a..62cda77d1 100644 --- a/packages/dms-kit/tsconfig.json +++ b/packages/dms-kit/tsconfig.json @@ -1,15 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "@actiontech/dms-typescript-config/react-lib", "include": ["./src"], - "compilerOptions": { - "paths": { - "~/*": ["./src/*"], - "@actiontech/dms-kit": ["./src"] - }, - "declaration": true, - "declarationMap": false, - "emitDeclarationOnly": false, - "noEmit": false - }, - "exclude": ["node_modules", "es", "lib"] + "exclude": ["**/demo/**", "**/demos/**"] } diff --git a/packages/icons/package.json b/packages/icons/package.json index bf7501fbc..0a9718e12 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -23,6 +23,7 @@ "@svgr/cli": "^8.1.0", "dumi": "^2.3.8", "father": "^4.1.0", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/icons/package_publish.json b/packages/icons/package_publish.json index c2bfb7ffc..4b3191d6c 100644 --- a/packages/icons/package_publish.json +++ b/packages/icons/package_publish.json @@ -37,7 +37,9 @@ "@svgr/cli": "8.1.0", "@babel/preset-react": "^7.24.7", "dumi": "2.3.8", - "father": "4.1.0" + "father": "4.1.0", + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" }, "peerDependencies": { "react": ">=17" diff --git a/packages/icons/tsconfig.json b/packages/icons/tsconfig.json index 6cec366d2..d4b882628 100644 --- a/packages/icons/tsconfig.json +++ b/packages/icons/tsconfig.json @@ -1,17 +1,13 @@ { + "extends": "@actiontech/dms-typescript-config/react-lib", + "include": [".dumirc.ts", "src/**/*"], "compilerOptions": { - "strict": true, "declaration": true, - "skipLibCheck": true, - "esModuleInterop": true, - "resolveJsonModule": true, - "jsx": "react-jsx", "baseUrl": "./", "paths": { "@@/*": [".dumi/tmp/*"], "@actiontech/icons": ["src"], "@actiontech/icons/*": ["src/*", "*"] } - }, - "include": [".dumirc.ts", "src/**/*"] + } } diff --git a/packages/shared/lib/components/MonacoEditor/monacoEditorConfig.ts b/packages/shared/lib/components/MonacoEditor/monacoEditorConfig.ts index 5154e23fa..6e35877d4 100644 --- a/packages/shared/lib/components/MonacoEditor/monacoEditorConfig.ts +++ b/packages/shared/lib/components/MonacoEditor/monacoEditorConfig.ts @@ -1,10 +1,13 @@ +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + import * as monaco from 'monaco-editor'; import editorWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; import { loader } from '@monaco-editor/react'; -self.MonacoEnvironment = { - getWorker(_, label) { +(self as any).MonacoEnvironment = { + getWorker(_: unknown, label: string) { if (label === 'json') { return new jsonWorker(); } diff --git a/packages/shared/package.json b/packages/shared/package.json index 16e0ed1ad..5d6f95822 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -13,6 +13,7 @@ "@actiontech/dms-kit": "workspace:^" }, "devDependencies": { - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index ee6467a89..174fff8e0 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -1,9 +1,4 @@ { - "extends": "../../tsconfig.json", - "include": ["./lib"], - "compilerOptions": { - "paths": { - "~/*": ["./src/*"] - } - } + "extends": "@actiontech/dms-typescript-config/react-lib", + "include": ["./lib"] } diff --git a/packages/sqle/package.json b/packages/sqle/package.json index 2a0b55a7f..c53f70534 100644 --- a/packages/sqle/package.json +++ b/packages/sqle/package.json @@ -29,6 +29,7 @@ "devDependencies": { "graphology-types": "^0.24.8", "jest-canvas-mock": "^2.2.0", - "@actiontech/dms-eslint-config": "workspace:^" + "@actiontech/dms-eslint-config": "workspace:^", + "@actiontech/dms-typescript-config": "workspace:^" } } \ No newline at end of file diff --git a/packages/sqle/tsconfig.json b/packages/sqle/tsconfig.json index a4cb7b26e..c5e70b900 100644 --- a/packages/sqle/tsconfig.json +++ b/packages/sqle/tsconfig.json @@ -1,9 +1,4 @@ { - "extends": "../../tsconfig.json", - "include": ["src"], - "compilerOptions": { - "paths": { - "~/*": ["./src/*"] - } - } + "extends": "@actiontech/dms-typescript-config/react-lib", + "include": ["src"] } diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json new file mode 100644 index 000000000..012ece08c --- /dev/null +++ b/packages/typescript-config/base.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true + } +} \ No newline at end of file diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json new file mode 100644 index 000000000..068fc9457 --- /dev/null +++ b/packages/typescript-config/package.json @@ -0,0 +1,10 @@ +{ + "name": "@actiontech/dms-typescript-config", + "version": "0.0.0", + "private": true, + "license": "MIT", + "exports": { + "./base": "./base.json", + "./react-lib": "./react-lib.json" + } +} \ No newline at end of file diff --git a/packages/typescript-config/react-lib.json b/packages/typescript-config/react-lib.json new file mode 100644 index 000000000..153e9caba --- /dev/null +++ b/packages/typescript-config/react-lib.json @@ -0,0 +1,6 @@ +{ + "extends": "./base.json", + "compilerOptions": { + "jsx": "react-jsx" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bff597b91..ceb79648d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -355,6 +355,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../../packages/eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../../packages/typescript-config '@types/babel__generator': specifier: ^7.6.8 version: 7.6.8 @@ -392,6 +395,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../../packages/eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../../packages/typescript-config '@types/archiver': specifier: ^6.0.3 version: 6.0.4 @@ -413,6 +419,9 @@ importers: '@actiontech/dms-kit': specifier: workspace:^ version: link:../dms-kit + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../typescript-config '@actiontech/icons': specifier: workspace:^ version: link:../icons @@ -510,6 +519,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../typescript-config babel-plugin-import: specifier: ^1.13.8 version: 1.13.8 @@ -527,6 +539,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../typescript-config '@babel/preset-react': specifier: ^7.24.7 version: 7.26.3(@babel/core@7.26.10) @@ -552,6 +567,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../typescript-config packages/sqle: dependencies: @@ -607,6 +625,9 @@ importers: '@actiontech/dms-eslint-config': specifier: workspace:^ version: link:../eslint-config + '@actiontech/dms-typescript-config': + specifier: workspace:^ + version: link:../typescript-config graphology-types: specifier: ^0.24.8 version: 0.24.8 @@ -614,6 +635,8 @@ importers: specifier: ^2.2.0 version: 2.5.2 + packages/typescript-config: {} + packages: '@adobe/css-tools@4.4.2': From 94af6fafb417aa24f8c571c79b5d24a374acc90e Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 18 Dec 2025 14:49:24 +0800 Subject: [PATCH 07/12] fix: typescript config --- packages/base/tsconfig.test.json | 6 ------ packages/dms-kit/tsconfig.json | 12 +++++++++++- tsconfig.json | 26 -------------------------- 3 files changed, 11 insertions(+), 33 deletions(-) delete mode 100644 packages/base/tsconfig.test.json delete mode 100644 tsconfig.json diff --git a/packages/base/tsconfig.test.json b/packages/base/tsconfig.test.json deleted file mode 100644 index 7b9149578..000000000 --- a/packages/base/tsconfig.test.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "esModuleInterop": true - } -} diff --git a/packages/dms-kit/tsconfig.json b/packages/dms-kit/tsconfig.json index 62cda77d1..f2fec7a77 100644 --- a/packages/dms-kit/tsconfig.json +++ b/packages/dms-kit/tsconfig.json @@ -1,5 +1,15 @@ { "extends": "@actiontech/dms-typescript-config/react-lib", "include": ["./src"], - "exclude": ["**/demo/**", "**/demos/**"] + "compilerOptions": { + "paths": { + "~/*": ["./src/*"], + "@actiontech/dms-kit": ["./src"] + }, + "declaration": true, + "declarationMap": false, + "emitDeclarationOnly": false, + "noEmit": false + }, + "exclude": ["node_modules", "es", "lib", "**/demo/**", "**/demos/**"] } diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 7cb34100a..000000000 --- a/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "paths": { - "~/*": ["./src/*"] - } - }, - "exclude": [ - "**/demo/**", - "**/demos/**" - ] -} From 378607a231e0e534b4c36940cbe5116aa46b97e2 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 18 Dec 2025 15:56:15 +0800 Subject: [PATCH 08/12] fic: checker error --- .github/workflows/main.yml | 47 +- jest.config.js | 4 +- .../BasicVersionModal.test.tsx.snap | 4 +- .../test/__snapshots__/index.ce.test.tsx.snap | 4 +- .../test/__snapshots__/index.test.tsx.snap | 4 +- .../__snapshots__/index.test.tsx.snap | 8484 +++++++++++++++-- packages/typescript-config/react-lib.json | 7 +- 7 files changed, 7735 insertions(+), 819 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 31b643b30..22cfd03ba 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,6 +10,9 @@ on: jobs: checker: runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} if: ${{ !contains(github.event.pull_request.title, '[skip checker]') }} steps: - name: Checkout repository @@ -18,13 +21,15 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm - - name: Cache Turbo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-turbo- + # - name: Cache Turbo + # uses: actions/cache@v4 + # with: + # path: .turbo + # key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + # restore-keys: | + # ${{ runner.os }}-turbo- + - name: Build dms-kit (required for checker) + run: pnpm turbo run build --filter=@actiontech/dms-kit - name: Code lint checker run: pnpm run checker @@ -42,13 +47,13 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm - - name: Cache Turbo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-turbo- + # - name: Cache Turbo + # uses: actions/cache@v4 + # with: + # path: .turbo + # key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + # restore-keys: | + # ${{ runner.os }}-turbo- - name: Build dms-kit (required for tests) run: pnpm turbo run build --filter=@actiontech/dms-kit @@ -71,13 +76,13 @@ jobs: - name: Install dependencies uses: ./.github/actions/catch-install-pnpm - - name: Cache Turbo - uses: actions/cache@v4 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-turbo- + # - name: Cache Turbo + # uses: actions/cache@v4 + # with: + # path: .turbo + # key: ${{ runner.os }}-turbo-${{ hashFiles('pnpm-lock.yaml') }} + # restore-keys: | + # ${{ runner.os }}-turbo- - name: Build dms-kit (required for tests) run: pnpm turbo run build --filter=@actiontech/dms-kit diff --git a/jest.config.js b/jest.config.js index 631a7d8b7..20cbc09fc 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,7 +2,9 @@ process.env.TZ = 'Asia/Shanghai'; const path = require('path'); -const { compilerOptions } = require('./tsconfig.json'); +const { + compilerOptions +} = require('./packages/typescript-config/react-lib.json'); const { pathsToModuleNameMapper } = require('ts-jest'); compilerOptions.paths['~/*'][0] = path.resolve(compilerOptions.paths['~/*'][0]); diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/test/__snapshots__/BasicVersionModal.test.tsx.snap b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/test/__snapshots__/BasicVersionModal.test.tsx.snap index 5e617ad54..71dcbc4a8 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/test/__snapshots__/BasicVersionModal.test.tsx.snap +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/test/__snapshots__/BasicVersionModal.test.tsx.snap @@ -110,7 +110,7 @@ exports[`base/Nav/SideMenu/UserMenu/BasicVersionModal render snap when open is t class="ant-typography" > UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
UI: - feature/add-make-command ba9c9c5 + feature/use-turbo 72cb26c5d
@@ -683,110 +684,23 @@ exports[`sqle/Workflow/List render click batch cancel btn when has not closed 1
- name1 + mysql-1_20240105013651
-
- desc demo -
- - - -
- - -
+ - -
-
- - v1-test - -
-
+ - - - + 2024-01-05 13:36:57 + > +
+
+ + + T + + +
+
+
+
+ + + A + + +
+
+
@@ -878,88 +829,13 @@ exports[`sqle/Workflow/List render click batch cancel btn when has not closed 1
- name2 + mysql-1_20240105013149
-
- desc demo2 -
- - - -
- - -
+ - - - + 2024-01-05 13:32:02 admin - test + - 待审核 + 上线成功 + > + - +