Skip to content

Conversation

@afc163
Copy link
Member

@afc163 afc163 commented Jul 4, 2025

用 biome 代替 prettier 和 eslint。

Summary by CodeRabbit

  • 新功能

    • 引入 Biome 作为新的代码格式化与检查工具,替换原有的 ESLint 和 Prettier 配置。
    • 新增 Biome 配置文件,定义格式化和代码检查规则。
  • 样式

    • 大量代码、导入语句和 JSX 元素进行格式化和重排,提升代码可读性和一致性。
    • 多语言资源文件中的字符串格式调整为多行,内容未变。
    • README 各语言版本的徽章部分拆分为多行,并新增 Biome 校验徽章。
  • 杂项

    • 移除 ESLint、Prettier 及相关配置和缓存文件。
    • CI 流程中移除 TypeScript 编译步骤,简化 Node.js 版本矩阵。
    • .gitignore 现在不再忽略 .eslintcache 文件。
    • 删除 jsconfig.json,调整 TypeScript 配置以支持 React 17+ JSX 转换。
    • 更新 GitHub Actions 工作流,采用新版动作和工具,切换为 Bun 进行依赖安装和测试。

@github-actions
Copy link

github-actions bot commented Jul 4, 2025

🎊 PR Preview has been successfully built and deployed to https://ant-design-pro-preview-pr-11496.surge.sh

@coderabbitai
Copy link

coderabbitai bot commented Jul 4, 2025

Warning

Rate limit exceeded

@afc163 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 16 minutes and 40 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 1a60a7c and 27fa371.

📒 Files selected for processing (1)
  • package.json (2 hunks)
## Walkthrough

本次更新将项目的代码风格和静态检查工具从 ESLint 和 Prettier 统一切换为 Biome,涉及配置文件和依赖的全面替换。同步调整了相关脚本、CI流程、忽略文件、格式化规则,并对代码和多语言资源文件进行了大量格式化优化,未改变业务逻辑。

## Changes

| 文件/分组                                                 | 变更简述                                                                                           |
|----------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `.eslintrc.js`, `.eslintignore`, `.prettierignore`, `.prettierrc.js`, `jsconfig.json` | 移除 ESLint、Prettier 配置及 jsconfig.json                                                        |
| `.lintstagedrc`, `biome.json`                            | 新增 Biome 配置,lint-staged 统一用 Biome 格式化与检查                                             |
| `.gitignore`                                             | 移除 `.eslintcache` 忽略规则                                                                       |
| `package.json`                                           | 移除 ESLint/Prettier 相关依赖与脚本,增加 Biome 依赖与脚本                                         |
| `.github/workflows/ci.yml`                               | CI 流程移除 TypeScript 编译步骤,Node 版本矩阵简化                                                 |
| `.github/workflows/coverage.yml`                         | 升级 GitHub Actions 版本,切换包管理和测试命令至 Bun                                             |
| `.github/workflows/preview-build.yml`                    | 升级 checkout Action 版本                                                                         |
| `tsconfig.json`                                          | 修改 JSX 编译模式为 `react-jsx`                                                                    |
| `config/config.ts`, `mock/*.ts`, `mock/*.js`             | import 路径标准化、类型导入优化、变量声明与格式化调整                                              |
| `public/scripts/loading.js`, `src/service-worker.js`, `tests/setupTests.jsx` | IIFE 语法、ESLint 注释、格式化微调                                                                 |
| `src/access.ts`, `src/app.tsx`, `src/components/*`, `src/pages/*` | 函数参数、导入、JSX、错误变量命名等格式化与风格统一                                                |
| `src/global.tsx`                                         | 可选链优化、格式化调整                                                                             |
| `src/components/RightContent/index.tsx`                  | 问号按钮由 div 改为 a 标签,样式调整                                                               |
| `src/locales/*`                                          | 多语言资源文件大范围格式化,字符串拆分多行,未改动内容                                             |
| `types/cache/mock/login.mock.cache.js`, `mock/requestRecord.mock.js` | 头像 URL 格式化为多行字符串                                                                       |
| `README.*.md`, `README.md`                               | README 中徽章区域拆分多行,新增 Biome 检查徽章                                                     |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
  participant 开发者
  participant Biome
  participant Git
  participant CI

  开发者->>Biome: 运行 lint/format/check
  Biome-->>开发者: 输出格式化与检查结果
  开发者->>Git: 提交代码(包含 .eslintcache/.prettierignore/等已移除)
  CI->>Biome: 执行 lint/check 步骤
  CI-->>开发者: 反馈 Biome 检查结果

Possibly related PRs

  • chore: upgrade workflows #11356: 更新了 CI 和预览构建工作流,涉及 GitHub Actions 版本升级,与本次简化 CI 和 Node 版本矩阵相关联。

Poem

🐇兔子挥挥爪,格式工具大换家,
ESLint、Prettier说拜拜,Biome登场乐哈哈!
代码整齐又清爽,多语言也新装,
格式规范齐步走,兔子跳跃向前方!

<!-- walkthrough_end -->
<!-- internal state start -->


<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEYDEZyAAUASpETZWaCrKNwSPbABsvkCiQBHbGlcSHFcLzpIACJ/ADM0MXwKLnhmbmTQtRYPTHoGWFEAa3QfSDj4SMRoyAB3NGQHAWZ1Gno5MMLIbERKdDiGAEYANgBmdGRbSAxHAT7BwYAWAE5h/ixcLsxcMCVEeCIMMF58PxIM/YIXDRgu5m0sAsxSFAxcCkVsBij4DYRJuyoTYefzcLyJEhsN78OLWfy4cR9PKQACiAGUADK/UK1dSwSAAIXgOXKyQUSlJFHuCN+RHQGHoXmxtM8FAu0hu7kgewYFHg3HE+CwJwk8CU9EQuGo0k61EJxLYKGQPR+GElJDQ9HwsKs8MRfGR6KxbwANCh0l5ZCy0Ao1fgmbRqMSsGSnhgXr9Oh4CPaWXFXYoPEE0EzcPICsVkIkPohkMCeB8RGJypUObcPFMGJhIHNIKKSLUonLYAjuIgOAB6CtEPHYAQaJjMCvbXbSA4YZtvVv7Q7HD4V7jeLwVhYrYYaIz6YzgKBkLWwtB4QikchUNoKVjsLi8fjCUTiKQycOBqiqdRaHRTkxQOCoVDZxcEYhkZTrxtQzh+NC1eyOe4uHNjyUU81E0bRdDAQxp1MAwNGkJk3nbZISA4AxonQgwLEgABBABJZ9V2lCU/2ceRtUYWBnmkNwugAAzgxAEPEQ5kNolNIjqBoNzBEgaEtM5mHwKRaE5f52I8XgSFFfAen4xBuFEeAKiiWh4H8JI+RlZEKiqMJTlzJD/HaeQjWxblsD5d1ICY2lRI8Qyom4ahYGQX4GC8bBxUgWiK3BZgBEdCtaLNHzEF5flcEQYLvIrJgMAqIhovo/4rlkJLBwEJkGCS1TJSSjRHHgaLkVowSGCKejCXkfxBNFKzNlQHSSDNUzoVxMoMFOLwhVIPgSAAD3czzvUKXpuTU/dkngLSGXE5A4g+ZhrOZd0JyMTDLGwrwaDXZ041OeMlHc5wnSFZByIGjIKHXMkMqyyB2HUabECMAA5IUSAndDoknGCGKYigGA0IRyzQjCsLwgjXyiBwnAA8i3VIF6DC5JRInXej4OxQHgai8SEyEsUola0I4oSizTqwf0+HjE4k00SBcNCAaaAZIscwaDwSdtcndqFcpFq9byAAFCpB3zsTYpzyrQUgbmw2hVMFDAQ0tM11G5URwSMsJalOIhuoEEM82ceAVCqEKnNINiSpsFFsIAYWgAB9bCrCsZ2UVegA1YrkFqPkpUy+y/g8GyrLIUUPgwD9RNQXpcGwbhSm6wt6G5ggziYQ54AALxG6QPANwQQ39vEZNCOJwSIGt6sKJauOwNmKnIWgzTIBxLLpOL9nVaFw7pOZKOkg0mUOKJcU2IW6f3AByZBI7UoUP3pfJFBZSU8mcWhEDW8xNu2189r0oWju1ynzthS7MiiW663ux7EWR97yC+jCDAgMAjA0GtNjrCs9YUCKFXfAtRECxXgBoWQzAvCoW+htHC+EVzQ2InDMisJEbURRl0B2uE6jJGAanSA1I+T9U4o0NIYIlLTWMgJQmVl3pKFxnmSg+x+YjDNJENAdU6RCn4lICgbCsAACYAAMlIwghGtLyfAsZIAAFUBBN0TmaAA6r8WgoDEBmmRPcBgAB5NE8tFZPSFKrWQZp4zqmTgNUQeAWTxmgLIBSaJwoCm4qmPgAAKWiSisAUCbmEMKtEACU5C6HCQFiwIWSjKj0CEIIM0tQEAcVVvwYEfBrGuQwENVSVkB6rxzNgOJLIaoPG6Dkyi7o6B7wQVtHaF8T6HS1idZWl8Hr9SujdPgd14AMAeohJ+b0Ppvx+h/P6v8HJwPBptJBL41wwxIvDDBVSkY0Q8PRSZLF/BsSauEwSqllK0JqvQuk8YEIjTlA5egmNGLYizBGXZqZd63FQJg4hGo1TeX+vcxIhQnm6Xar4Tq1kep9FzANXJUQOibKetskgNtZp/zLmUXM7xEhFGhfIARQjbTvHtCgWEklehvBuO9dJhQ+CYP2igeFPBqA7S+WSPZkKPJCP9pQDw9wmHrTqYfPmXzM7NOOgK9p19rq3x6ffPpAzwjPWGeQMGYzP7fyYpvUgtBAbTJ+hDOZhF1yw3/OgiiVFkZciYmAdVUQyYHApsrcJ+wLTUKxRE609hzitLDmZd82kyQACluFoFcXydxyInEuLcZXZ5hTQTggYA4roklpI9DhLxfUlJqTiCsj62ak98Q2n2O6DiOb6CbDlAEr5tEMDcDIcLbIbBxb1o8BGcqEEA7qAResdAOYPiaj6AnGE+MWYdz2urHJHk8l0gdmiNErx0AmPtUKxN/hk2MWPAIqIYYFIvK5OQH8JbbSIF9I6Gg81kiZutLNFtRQWTYlOB9ewNBuBmhOTwoWl0soaxVIO3UabpoGiRV0XoTkFnTG4EtMKIbK7+rRBWaAs6B61IhvyxpS6PBn1acfC6nSb5ailZlGVj95UGBfp9JVv0v6wUkjSSgUzyO6qhgs1BRrB3UvWd86j+oHIAo8PUZAaNeJREev4S0cd5qpgTFJYksljxvAeOzJkkpB17KcgiSgXzkSqXUlcZ6J8IWDQnVEBa0TqYXqsh0X9NGKB2VpZ1HWqnGXZKhfQCQpsZLiY4lumUDgCgTEgGib2ABxM0VhXrBZgPogAshiTh+BW1NW0YU7qdIEs6I5WULiWnJqaSjLNBLZxwTrkzrErwWo8CDkimaG1RA7XOjNDi50eKPheB0bNOg6hXR/LTASaqkJTmdEaqmM0IKP19I1qynox9qapqsxmhlpTIQPCQwfBpbSmldAw6Kwd4rumeAI/0ojWDSOjIo9/Tj/6cYg21XUvVKDfxoNY6srBqMSDoyiPRc7lBLt4z2XFKUvxrVCl5pTd1NJ3Rnppl0Sz6amAUlMwyygNwmb2AUvGo5c2wd0gCbpNyE6WRkGpvGqyhaDZBmwPgU9EjJRd0S5qSdYQqCVBZD67JKceCyP2MHHgcbpBmgTlms5dw0D9TSI4Za5A6hiinpnQYojxFPCoGIVhZpcrm2tEuakMqA5oG4NwFk5ETi9Fa/QAnyQid0guQMydNLcwYgAGKQC8ZbuIJA6AhJs9V2r/NS6nFx8NLUAi+R7Cp6j6h/S9lefLCgUIA7abOF6DTU4fq0T6NehIj7eoLvZTmoUzOAAJaA0X0+aIYI4dgcEQY8Z3WJT3Aqmv2kiPQWAoCZvpvh2pteFJkTfGuuU/LnpaaJn3MtnCKG1toc1iKxp2GumSr2w/QZxGoA2D65EnbgP4q2rr4IemUSloZ7/V9oGlfUKQF0N5A53hPo7bxjv/ckup4nAUtdZ6p+z/n9oiTyIABFcnNAuDvDBC0QGDv4f7opM7ugOwsD3BcCzyqyzzAGgFQC0S8DYjqK0CbBcCy6iKIHv7IGG4kCqJUDcCwHkACIIEgF4HeRzj6JxDGgoSQCzxeBxAUFIHeRCRfZEx4zOBUDyDySKRxBWhWQgYJ78AChTZkgH5WaAyIo3Il5l6kokCV5zTkbjKUZNq4xCjXYMbIJMb3YsYIxPbIzYTTAFjeQaEgxChsS14g57KUQyCu5YB041KMyhBKAtzeZ/rg4SLxhEgkg+gtYo4CFCF0hhT1w2gNb8zCIaCiIaDjjpg8xb4g4JweYhxDS4rY4yiZx+5d5lD5bIiRbOBFCaK1BUzPJJIpIeATb078Fo4ypZYaS6bIgObqaNBfD5rID0SFT5SFR9ifBiDOg9EtBgCnq4BDHwAjEhB9G0BfDKxJSICAwVgJ6ijfBRQhRlQVQhS5RjEhTLGUDpTSrZTG5Cy+IKifSWEYA8bR69DME3DyIYBFCdSlE57OD2TwoiQJHt47RKgDLmwTx4go4QivBKByb2rFxGw+CyA2ZMR9CoBkB/H0B5pZzQFzhRCZGJaq7Bxxh0SdQoidKfq4DYQYBpR+BX4VLAS/jyRjbuYUSRjHGYm6RVr4BohSjiAMAoiRAfi4RvDKADFnSyHeQqjewhhihEkFDJBsRNwUmJCrGc5M5hiO5oALCyBhLok3B27+qBrBoRRzSWJdDJ4AAapJiEio8cvEJ8tE/giQuADs4IsYfSAp8YXxfQKoFCRaZOFOHI+8o+q2x8E+m20+V8OGEqeG8+hGi+WCUAr0ZheyzhtAXApxOQmhlxD++INh9q/OtIEOGOAunCK0RAZoeyfuQixxAarm2pAolqoeFQ/S+A4hZ0J2ahRg1WsUQOBwGgkU2hsyjGRE+hpEj2pq7GlCmQj60oK802tECSvwbEfGJq1S9AxmS0w5L+Vki53ks8qmsACBFps8nUSgHAm5CBxiSszo5iepGyYRi2VgzkbE1Ot6oc7BCkGAbsuE1hbZNWdes58Q56COC5gsBatIHElumcNouAesYAlud5+SHaVAvgeaFcc5tcdI6gyArmHkHgZIbAmAtk3p9SR8Z0626GLSW2M+uG/A+GC+cqkZkA5K1KdQnKxCfahF9g7Y1AFkMopFIZ5FYZB2EZrODUqRjZKqBgGxEsko0AfxWIkoHZoM8COh8yvZhq/Zhhg52C9k6QI55EKB8enas5mCf50StEs8FkXg25mcRle5KEJlR5CRtEK+QQIQApdl0gGQaonay5kUe+65l0/gsY25hY/giFm6B0ziJAYAfC8gHl1eGySkb5DIpiXy16LIlpGoXg8iFAXgM5DF35VIv5J8zA3g4gzuZIVpjoagoY8gSioQmK7iViaAioyWfSNwwpfIfxk+58a2E55A/UuAaImQTlkkfV10bEA+QGmQLIjV/SAVzaT2Bl++6MbE5lPcYxNmOk3xWYPgRsraX5JAzppapw36NoBV20EBuQFAHwP4cQTcfJWASJ2Yo28aoQ4BCE3c0BaASS5ceAiFE1+ANYQMnxlQO0+usItEJ6QaMkgMnaMKKsbAM5XEOVmawV3ax1RVAO6A51LeV1OSysNmDQPYMc7Ag6viigJJnoKBsiuANgV+cNyA+lJ836dZysxsTwvwLIPiAgAA/BoAICTaEq8OqJqIOjaJNcbNhK9AACK0nlQ2a0RByRBSW4Di3UDg0WTfAaBrX7GMBpKjUbKzwCY0DblZhjQ7V7X5WFWnWpnTBdS/UyqYI3BQGbhvC5YSjSwsjTXzpCA9DrjTYirqAWJFKhAgpY03XM1GH0WBXYz9E1K4Vj5+kHQbbEWBkdKz6hm9K8VUXPwjIJF0WaJW2hAHJKTyCYDyDr6p2HHlDXX2pkiuatVc741sW+V2RkQYD8RoBxAu7JjYjqbGyUKcnsAg5KD/ZeDO05k4XwJNkiVxZFAVidRskcidn0bdm6GKVLLGpsZqXmhdKjk0DjmSH2XBB5SFLOXyRnSdprmzw+XSCICzzhJ00gVhChXhUt2RUaXXQ2Ygb1WCZ8ApUBAjUPm0SkC4DvRz0/aV2NY7Uw1I20TOz+C/0nwaJ9LSjR4/FNwqgfHQB6zELm2QXvATUwWlw+F0Q8hQaDEpivY7xzrxiz19IyhIm4Ti3ICzxy7MNy6y433IhMMsOsPCI33u0I15Vrlf5hU4M05m0nUiNZmpkIWIwJokBqR4rl40WnB0Xu3crejx1hw221l8Bg1nCJwUCtyARCzB0428rIa+kEX+mJ1racW7Zp2ypPTUXXlUBsDfGQNBXxneSAPAM0OIBeKwNcD70hAvrSCBMuWn0hJsSABJhF47xD46sV4jA4EGEw5ZKCE1HivifW5ZE3OqVFPTPRTr4zJcAePcJaJbAwfZTaIMkCJBsbjF2Ygj2QaqvQOdUmal0HRT3EgMzAZpNlIPxORF8daLQJ7ZKB+DSvGIGlKHwPIjYBiI+l3MtA0sPZQ3cFPdyMrWcFk70C8miNWYg5CTohlq5tMwonM9iXKO7UmtJmunUIHKzH5kIxBWjVBRbvgys8PB4HMGQGcKbXelgydc8xLq82XNLl0LM/M97qYT+BouwFEBcnZIFa8VbUFRMxtps39uwHzoAWIOxWaGSJNQANzrD8RWJhgcTkSvNLPKC+BDNWT2E5iOGlA7SbqwAfDYBEDN5fVOmpgj54VbZWNT42NBkp3cX2OHaZ2vyqFlP5MqjWYL1yVL0KXNMPYqVtNDmv0x6smQiE0TlBOH22zhNuW7KCwX2dK+XX232zUnygWP0RWb2ZAy2AN25oCYoOw664BPC7JgPe6zRpLss0CQBVK0CRB8AmPHw63J1kXuGLjbS7i77u1JwnpI2SQVBkLxg/1SwnSuN9B3VYBSmsJMD+BjqqRZgC7TzZtf0oMzC9DoN0QylX1sQ11mxc543tgrwm0/kd42sAviBAtVHmtX3gOfWkyrK3qeWTW40nPOBnPzNUuRtysbNShbOuXG1cTyShivBCqYMXLZl0tEBkrKNh2qNMUT6TXtwY18DBsvX4tUpCj4q0tELkTF0V3Y1YZ8ABtenrTmP4WCoaPtWYYEW2Nz7it8WTiQB24+tYD136MeBJtEQJkNCyA5Kvs3WQDOuuskDusChPD+PJOQD6u4DpNhPbMkA5MxO0RIcofhv8wYduseu4dJMBApOVPEcEdGu9A5Nk2iVyvFMfyj6+CftBt5ChuodraRsxuFVRvXTCelqFDyMVCCKhAf05sfvwlsBzXeSwOLWnDQPafwPxVltwc1uOSVs7SJafQHshSzyBYojQCQDNh66xQWT+BvDyIJ6zxcB4fMfsepNEdbMkertkfRPrm2f2eOfwDOfnXsDueUCeeO5McsfBMBfsekdcdYB5PlQVi8eRQlPvzCXSxFCyznFHoYANOQzL0qsGErKqXmr5mFL7ug5Jy5OFfFfJk00eNeWTZWTczIjQ7/r00k7yhJm2VMS3mRpW0/gVqdFNocDXq7IN6gIurhokAVmkwsB66FZ1ZnBgiJCyOSarruoOU5IYWwi9ezT9d9DXoj3AhYArdrceJbdCg2bnf0CXdqeFYwyRrIA+JMQcCV4hR/dptJR/efYUDFSzQoGZ77FhJ8Or5FizSxoQiIkAlgWnB+GKiQYRRR6JlsAcBjdH2zfzf23JC+WuWTpqxCwkwhbQ8UDHG0SiwtDiwE+tdIzh0gjw+aeg1STi3nCok5LPQQ9yceAY8SQYrFcixNqNpnEddxnHkJVnlCwtAYCi5LQVMTT0CMIlcsKCLgNcRuRWm1teWDDRGxHiKZxiIxFW8x0WN/unzWNYYitkV3z7YONDL8e0Vh2Zyl1ivl0Ss30BlrYntKDEv2vaUyxywXHjdQYYl89swC+86FJkC1wc9BATTjPs/ELrxHJCUwRp1LHfe+T4Cai2RXaL2NOVeLKqs1fqsb3vIF3KTYnqUadmx8SRUYASD4CYoLlQfJ0WuNZeK4S4R24ohhKIDIdShkJrkPgY2XW99D8j/eReJeJhIAC8egkAAA3pABoLv5AAAL4hIr+Es6fdroonlmK0vz/D8ohL80dYAr9b8797+H/H+VTmpaP81EzGO99lK/DKiVIqInjDWDcX3BN8HofdNqACTFBad8AFOWQurFhDjYRckoEenCXSBhgx09MKMI+lkCN5QUJfYQjzmbylY+gmcJNITRtDJIO09gXkEy35is1xAxsbqJqEPYUo+g57evI+1AS3sHol7YTgyBeo/EQwLLESGYxWy/s0WRFIVo72k52M/eYHEjCMmlYwQFiDAZsAwFlIyVyut2PQkpWWSot2M9/FiocAbqnd7eCQKTj70o6aDG2YnPXrTWtbT8WK7pftvShcZVtA+jWe+ijQmKW4VOngh3vzDzbzovIz1ZnG9VWpQd547gz+t8WRA81aA8gSagJHKTXVZqH1KeCCgb6INx8/7P7M1nKBPs+o/A69jhW/YSCBW/7LwUByd5cUXelFRxsjCgCQc32/MGDuxW6DcBk2njWiDtk1iWC42xghtrGC8SMCzYXgFktKC4Db9S80XNzgng5pcAXyGgB2C5xi6iF9+kAAAD7kldqAOWgOR0gCUFaIpwygv0Mk5DDe+IwvxpQTPzjCQwUw//E/zmGudcAsXCgEsJwhWBcIqw9YQsL6BbDdhBbDwm3EoIhIThZw0pqoMWI65uAMlfqDoKaZV9quhgjeh5W3o6sna6ebCNOwoDi0Pg3Q0BJcRCi4jlaFAV6J/SSgalPS4PEKL/ikRWEQoaIV7PuAxDPA3yGlcgNiORAZtXhGwzWi+XsHBCGKdNQRoBWEZo0oqYjPtpbmlHTZKEHwSJKVRUDykoStlbCLrhGqasvKlHN4LQA661QjM/5LABqAyoDcLgCVG1nEG+JHpFQFOSlA62uiJYqqA2fjPgBlCz1+gHdSuFBxFJhgkc/9QBtySeiPDtWNscftRyg7nktanrfEJlHWYBDviEDT+lzy+wSkLSzsdMeDykZfUZGdcKoqUJE4/U/qFRPpPiElCVBBO7WbTFINBS1x6UU8fmAkEqDsUZa4IWQBXDYj9D7+MQpMX0D2A4t9GbteGrtS7be1/yLg0nOLnUbI1zabgyUHgM+iMw1Q3/eMPCAsiGMOx0jd8l7hdB7gxAMYmwW0hXxswcxT+SgAqT0pODBYG4gxpeleCW4eCaANehtw+jYj+YD6YCqcCOrzinx51F8RjjshjQ6KyLQcCJj4LktumMqTTKcC9EiCyBXQe/sbCHjcJiQfAAMG8EKEgIfw5EeMLDjIwVCfSkg5ijUKZR1D5BrvCVuB096mpmKHQ3yttmDKUTGhT8TPmoxsw+97+nRYMSryYGTDwxR9bcXgDYjwhykwIeRlNFrjGwGJM0egHeI2ChVd4KgyjGoNbJcj2A4CPPBqGAgEi6yJRDsLC36gIikRlfZjMpRr5rJ0ROozeDvV1aSE6B0oFkkuLxg7UamnKfaugF1xmj+g3xeMF5idGhAtKek7gOLWJG6g6yUUGWrt2+AfgpYhIy8e3xOLaS+0+IwkQZIillhFqoVcJPw27bOCnmluJuN4Jyk+C/xaNYqfzACnwU8xY7KyChXdT3BEIDAaKt5BSm6T0pxI71m0JVi+BGwrldgH2MJH8YQgASXFos07a5V8pk4wqWjTKmAscGS4mzIaT0abjMRHbLiGKJmkSiFxr2OIGAHciyIHEssHtr4N2nMEDp3UIblKDpBIkHqGsEDOwFGhphaJbTdiae3yFvjuRuAGIZwNQkjxeBkeRlp2LyzjjL09ADEYuNSQjMva4zPlrHUsbVCgh5EuQSBwUEZ0aJR7OiRPlknnQdGyMsVMxLRlUS+KofZ+qPSsjIhIZ5LGanROD5kZoRqkxYv1PfGRQKwNgA4CWCgI8k3gFYMkdMxCkGSTJ5fCrsqxREWS0RXIOiv4GSBEBsK+cQKetM0m5N+ZzgQWcSIRFsQOgRAdlnrgLEoA4ogU+aILAZ4tg9g7YCsH0n5JbsfxvbPwWjQTGtpdE/WDNhXAxA20UyGItcv5LrJ6ZXsLeeMCvmtKBSbMGIrSns2nK6jtgBon4jLIoDARoUX1P/l8nSFADhRvU0TNnS+mE1ZJOIvEerNKIjVkAeUicdEgAquDLcg4sacOKsgG5hpp08qRLirmzELIG8GmWwJUYMU1GzFLugY2YFaMqs97bCanF4HZiBBIbYGkLBZnfS1oP7KofbxkG1DUZZdEmRjI95Yy3pOM1irB0JmisGh4ZDOjLVVlpT9JXU7iKzJiG5zk5nRIOWIA0B24HYwAQLIbBDDtTKAHMzlrgEymIA9A0Ue1iXKMxkgoZDM/LjCPUHTzNJ7MzmTaXvbsBLZbMYyZFEREizdBK9avpLLogsjIgYgdke6CcoMjKxVhc+d9I5SBV4ORWU4PdIiDyBNsBceRkDK4jOVrS98h2O/zogEK5ixCwmteLTlrlXOwEN1LRGACqQJAv8y2tmCFC2k+kJQa9ohLlB1kXw9AG0HuklwMgA5pwfhbRkpkZdgAaAMRZgHFJ9RIBOIAEvdXxJjZQgtENlrtRtgIg+QVVCSPgHq44zP6s7XGpUjJCulvI0zQBqv2iDOxMomAIoNECcoiY/FdmXal9koAhL0Adi+AA4ppQKKHyCEEoJ6GUVmEg47qOYa9nVFchfgi03SBOQ4WkN3amoUZqXIbhFCBoeKeTHwCRJpsog8nT+TaywD5KAcYAKuNUr+y1LLaTkExO6ELL3sWK+cY4kwG6h8BfglKdQAYsIlzzUMSMxeSjJ977z06TQ8DrRCwVsiORXC6ELnPIXGjDKj/dfpAENIaAOSWIsYhaVvmaAH5f9byGpIgVO0oFn87mazFwDwKlAiCxAP1GALIFilRCx5THm3mdD9lXPI5Rv1OXnK4pVyjUHfNuW5MHl2cp5R/K5mwLeZRkzWSpKMBqTwSIYYWYqwr5izzJBg9elLMDC/NrSyQOMJg3/5SgTu7SC8ddCLq2C5EVUuiJ9EHraBMq8be/HmkjZWBVEJhZYjQ3wRAIXS3QpBlJEJqyLrMANJTkFR2485wBItXwGLUlrXpqCGgTlZUEgAAAyXVQ9C1W8QuVGgeoE9DwWW1Gap5PqZRFZpWQ+hRqoelzTNUC5T+iANujkvQAsrwBtEF1bSHikKKmVNmXoHFHyBPZfmXbcARtV8DmUVQ3JCICv3VpdtIsV9Yrgt0hweBqGNZAetIEjSNYOgl0PIPt2cA1YV4d+ZMNGA5x2yeIM40Fly1CAITFmDUzFtCDJD/T0JHc49l3I+lTyh5BKHCRew+BXtixAy7ikW00Z/V4ZtvOsWRN3nO8KKB8tZUoMVSMzsVixbqBtWkAVgBARwAkOLQHDFdd4CrGZISv1TiySVRhdjHRQb7yAnSYM2ubCF6ACIZJuDKyGhQPqrMReyfEUqCk3X4xpsVsMKiJl7LyI8ENAHqjcD2YCEDmlPKlqGBpYXMcQDFa5u5lbr2lx4WoJwlOKApo1kWTxFHJu3+a+Ca1u7S2mS0WYtrQgsLHkphqFjdVQgCLV5OdE0EWRsy8YTFLICjzHDkCG5Q9RoEaoYAtAmgmSG8Hdm1w4Il7FNbGGK7bluN65QDbvF6DOACgElYOAVAlU0ANSVIDQJkV55hQjVYUKwMQPtDARZN/HIygpo0BKbAYsAVTZEHU3JstNzAKzRGBmIvUrAtGRQB2TSAkAqaVQMzUoNRbvSKQE+a0tgBfUUa0VQUvgBxumCf1Es9rCfI1zwlbB0NBNaEAqPSBKi0SOk1URVTHVnRumZABgLkspRnVM1G8tnpnE4EFD+1I87imPLKHE43II0O8DgI3Uilc4IOXyhDW+DiQp1JEwVh1VkHLKF1qy93sdgSIXDdqsbIKQeNCDXyKkdNT0BxpHrvqZQkKc4NBjDb3reEj619XSDbaHA4ZWKgwGpI61VBt1u6/dZmXdAEjvwiOY9TqiVZnriVa9S9XX3DV5TwB62wdOxpIDyAjKcIqzV4QPZMBuAQhf0NuQKk7SJG9UW2WdLh1vNlmuYhtfyn25UtKNiLeyMgGyHZ9ch3g/9mFuNjgbot9YvpPi3JkFooJlY/pGUthmE1PQzeH8ORtvT+x7mPzSNkelVrNpAwA2+ecKmG1LzRtPFN3sRmOynbztcWEMFup3VgA91SxUHUetkonrRZr2vshetq4dNw1OQrIkhN21/augv26bP9sB1wFdcIOzHLvCzUE7nuBATRN2DzVChtykbAkN+qZC/qZdoOAXIJQSJSTfgMk2HS8wO0TB8aK8VAEj2+C0JfxC04PYsyO3paTFYLDwO6sVBY70wEdXHZVpDhCxMdUW7ipwPtY2hGu9OsZuXnEHESBdCdRZXOvqFjaxdR2ZQaurO3rrpdl2sgGAHkRGIntN2ZEW9taZWSpZOu/HXro8DJbYQrOt9SGGCCEMPAsWoHRbsLBeBGwn0FJdzQ3VFBnmkoF3Q+R96XC5tu+FLReVb2brwEHervcU360JE89PMhbYtn/4dJrSpLIDJ/TNCuiNY8cKhFRreAHQd2AOKPKbp+KfiJcxVHwEt2j0KBuoGAY4pPrpC/bUAMU2+A+Xo0zjLa1G1ks6Gx0/EQU7ySNsTpjUswC9A8klkXVwGKY2SHtBndCCZ0BygMIe1AO2jUyCaK9/LeZQvKF1LKiZK81ieLqb2gKmZ6gi7VuvP2wZcVXgN+fKxV3PbT1d2fQe9q120zqkWfQ5LpjvVTTy2R+hZiyGN1khADRlQFT/BfniGdJiOG3WW0wOQgBQsgbch0A3atAMdIe+9rbJUWW4kS6BymJkPrXMstFguXILiwi0RDb93FBqVhRV6rQWDCMu3oLsA6cG959e6icupAXKowFRfU/RWBEMHqkY2glBX3o13yHa+Q+uicVNMz8Q8p7qZ9b4Cpbrb+KXQPfTNqk7lrK4gsWaRLkziI7g9S4oxgICtI3p9ZVLBPWWp/26wuo/+sTN6LAHVqgKbevOCDlW0FZey1Wj2XwKHUfJpNSMJJK9hX2lBLxqx91esfdTKb8QctMfeemsgqBXstOWaJeTc0shn8xIRkOceHqdq6Z3akLUTv8OVGQ9lG7iqtsp2kt/24+3PSHvg2wUajKe3rbzp5RETWDeQ9gzEdr0sTF1E2rOlyGm2DCD99+KmZ5TmPJylt1rT0LnO7xRabg+icmVS0a6zlG1qoRlOYlz4CHUjMus/UcC70Dh6g2RglWrtkMtM1Wg+7XVRAjVTSft0+8wXofN3wjuAbJ4Vd8EASYprMoKjQAgDeA7730XBgYbNp5XJgYdFcuPdaDS0rx5psonU5TL1PcKR23hxZrAYUakoM9OOlFrgYfL4HJEPVbishIqp/HSDUM6CXTphll7qDjwclfu351sHojJFCicTJ4ON6pWzeqXWkYyO3aiA92gKuydV2oKquEs0lXyaUO67wBgJy0zoYzWQB59Ypy3QLgbB1lId+AZU/GDqPomNTDMLkP7t6nYbJRwLEPQMe4WjjEDEB9o62fj0mmoBmwBCo2ocORagjZIBqb0CakUHQjtkJRunONgEstGodF44FQ4kRHp1pEgmUxLiOi6EjEu6MyfsZPpHmTsGeM8rtMlEq8jA+57JmZeDZnjGBuzQ1UeFOz7CzAO9csDrPPc0EGq0SdJOkd0kNnddy85NMa632omowar4/nsW11VFQXiaIGsPmHUKKkPNKUpAHFq0gJKXgEoDKRE24BogISN/V9Q/2NAv9Ns4Y7Wv5o0BBa5EOYPriw1CMZxWB1ADgfDV4GPjTpsnYXqp0UzDtPp3ALHHXODaFlHBhE+GaRO8Goz/BtdYIbb1bqEgYAXCDYGTPSHOTeg7k5ZJvOKG7zI+nM4+Yn1dB0UaoJ7tBxD0m6ugRZ4HUvpX38bfgRQdfVPS30/TgLUOVhGbCwBCGr9XIZ8+hVSEP6iYzUkMERao1UbSLhGoY2j0ou0qdJg6Oi7XIYsSimLNp7A9ns/VerE4JOwg4udLEkHu0np2nZQd9Pf6g2tBlPfQfZ2tBOdD5bnZDXJCESbewluE6GeXm+9V5S6/c9JZb2yW0jClpS9WCMMSGVLvesyVeZ5NaWFV95tQ2Zj21Cx8zQsIswYbEODWzDlMOCBgOsMuWMwbl7MF4l6s2AwknliC9fqgtBHFtAVtkkFYDrINP94V7diMfIB1rZrL5rs12nSU/gnxs0dAy4VelVb3jGVgg86bJCxbIGpCrlH2iDOwmQzSdEXaBzXkdXkj9JoQ+Aj2uZH56Uh4a5ebkPXn2m2lmUMUfPSlGxxU08ozSy0NT70KYJz3UyDAuNY9kthr/eWygOhFgT7zbJG0fNokb/9aB+PhgaFDqwst/WFUeVT9qo7zTxaji6TqtMMwoNdRaNf7XjDVGJEcxnzB0Xk18bhJkUAqAnnZGdi8A3miICQAQLWdLNAmoTUwGURibfgEmodVJr2OG2kovGrI6bZbEeR/ARttW1kes0qa/iDm6UE5p01X5KRbADQJAz83SB3bFmvjV7ds0+39l/t3TbmoM0MAjNEIEgaZqF4e2OQ0duzZ9DjvnoXNhQG4+6A818gvN4gNgGHevpZVAqW06JC0bKuiN2bse3s1mWeNvT6ZzFOY7oboOjm3l1xPae6eYq5me7eDZZspOhORGZ1W54DtwYkuRnlxqJ5iWqYaPzbCkDUnE/fvzaAD5yc6Qk1eii1ky5IZlg3bOV11iCDz3Vo8yja/M975K6urG2NZxtBab1D59Q5PKfWk2fLH6/ldtYf57WDroF2whJmmxfn/M+zOW9i0WYgmCGZaJDYFRQ0yY7mlVl0AlfdKoHPmjLH5gAs8nfpfBkFCfsLjI0j3s0+etlZmsIMXIzQxKSgG+mrP9Rg5qe70CzDbts8O7oWjizfr7tA2AdCW8mRPnqC3riHRAKMIFT+bVWITdV2eZUODPV7RL25+dbucUGTbF7W9ffXWbXvYmeHflre8tug7AqkW+92/SSfJm9ymzgJr+7Qy4hUnz7nVmM0ebFCKX91S1kw5IYvP32NLGC3GwKepBCnfLmhha0is0DOPUpIdwptmpxqWGww0O7adqZbvGmw9hNA0/bLieHb+zSerw8Ob6MnW3lzFrPQqvYv/XOLLpv0W6dyvU68BXpwqwJcZ1UxdtENuOk1ehuqmVlDeyVkkdOxdWGTl2hx/QwrBQhsAQ1u+1yfQUZmvH32p6344Mtz73zRlfp0mu03WIOl+dm1FSGidlzmzC4ts2k4bnN2G7uphJwOYyfo6snvdxRu4Ez12m2LDpiW1lb4DcXW6vFqp/qdOB2GnqQj9YPfRcMA56niMxp8KxastO9zfBhGzJa6dbqen+6yzbfZe3DPURozoLb8E75eApA3j+bMTilWwUybcB4U5Te5KaIHr7lqm2PuAe3RiuYAYDeuFA2cXIN4DxXpsH8B7OI4WE56IABQCbSk7Y9lm28LltwTdmNttprLYUds0d7bU153tNmRIO59FDtX41iR9SzdndjsaaSA/t6494FpAl37j3miuzK9ogsv3atdiDEHpSeh722yspu4aeNftnsRSJWC7zqMdznO5q5ntZMw4fZPCa3DzjYPaS36Xe1UJhq1XukFyOZ7rViM207pOgukbls2gI48V2Y5Ezj29G0M/UsjOPthRrM7pdfvTXDdHgOa6Kc/Og6FTRMQoCE8VPOW0reLj6PsGzCeWzzXl9579sW2pz5ywV662FY/0RW/9D1ohynuqazQ5RPNugGOgFrzhGW9FvK4lcY3nPbTrF/kwU/C0A31uY5u58QaL1kHKnpe6p36ZKss73nDBjna0vEc87JHQlgNwB2asw30Z7V4Fx07sfdPo3vTm+4m5hfJu4Xqb28zKBftTW0XM1j+5i4se4u1FBL6t3Je92SMjrMtsPHS/efQOVm02ZW+0T8wL74RX5o2PsCBgnAmoxwYzaQIoAR3izKHhoE1VIC/ViCCABgGADYBrH7b1nfN1bu/PxVVoUoEuIQGIYRRnQ7tkqPh6V30fJ0WgJkE5FkAAW2PQFzPga42dI6aUPZxl8I+7f2BXF6en67Q1eOziXXhTzh+65i08OvX/7AR0CdEbIsxHueiRwRJ+dRHZH8J+R3XsUdw3r3E9W91uqEBoAwAfqKwIM+fdoLX3Chiaxm6/eY5s3JsXy+Zemdm7gd1zAsFqo1mOyigVZ/UjrkwCFwiXdb6TwF5n1nWQSF1wIu/tCuovpp6z+uya+O2JOEdjc3INs5tfvOyHphZ05O7K0pX8n1zwp98eysypNDRlxiAPWVqmep7Neyz4ifG2SX2ndnw85dsc/OerAqN88zkZGsP3NLT9uivjapCE328QsANE5AeuaMNqMxjMgdtZyf5hvDnpzy54m+X6Og3RjUL0Ytw9QsXKXmUERo5s4au3mWkUDls1B5a/abA0nfO6lvcU2vJl0G+aboCH3BHJxt+w+uu8wf/Ym0m8XXaNezipPZBhe2JDhFMgsipwYjRxDmM5EJqL4hCuEAtj0Vl9JISj3bcSyLBREiwX8AIDx+J9TMZxuYMPSofYfgIlxlzCKRPSNZiffG5K3huz00oatfa7gbUFHlFjBBG8FrW6Pxj2tulD+2yTKgu1bfGsYNLr5uZ6/BvAXSjlE7UaXtqPGj2jgAbo8kRUh2kcx5ENUcHvmOWbY9/ZCPpscgvOnkb0b0d/jPxvXHU3zGx4/hfXrs+wPx53hMwb/u0rq3+L2NBrdK6r9EH7NYcwmcfqgvb5zjR+Yt3xnC3SgYt8BELdKmnKXHzHBoBOAzEbq6fst/q+h+GvYnyXq155XNfJOy/aT5UEN0txnfXWaAnm6tYdddqnXbxoWI6fU+trl3OVxLTp8AmwGRHIPxGhDMPe1WTPJ7mR4G4s9q/4jGvqS3b/s/gJHf43x9249hfpm33uN5AJ+/12g+f3GL42EH/W9U2Ff7QkPYrbJrL+Kwq/2Nz7uKY0voNEDvT9oZxdK2tHFLpGmoAY90hWP9ZL5B8RaPB/x/9ePJjyNgWPXNUAsSRbyGADW7UANsgRSATyE8AApKDgDwcHj1sg/zWkBQC5iMJF5EugFa0XRFAU4H/97UIAMT9uPIgMwN7dSAKx5UA2HlFFi/cTyNNUnA5wr80fEr2u9y/VqUdNJbJrymcxoEFj188TIATYF+fLCTq0eBBrRF8J5eqSjB26fcBdRgQECSMJlfIbVn8wzWe36957cN3t85LcBErICQGwH6sS4YwxCdoXGQxfct/Lz3r4fPffyzcnzS/xfNY/AJw0lSUYJzT9qA57kicNrNKysBMgDlgPoPALxAJAqAXOEqAAHP9SOtvLN12hBG3bew1QW3Ei0m4CNdtzutKLcrxzcXzL61o0qGCh2+dkrFi1Ss53TK0Bte/CnTKc13Aqw3dw9LAGZ1X/eQKQcmDNKxqs+tSfwnsNzDQPPdmnefxs9F/G9329DAnYGMC+nMgAGdLAtSw88bAgo3fccvalRecQ9dgByw0reXxptmxElz4AAg66CCCEvUIPCDIgj5BmA6fC4yf9ZbKD2yCKbV8zmNZncYPmdnNRZ1MwNAX4Ch1M/OZyeDHg5ZzbJVnau1xtNOfL36Ma/GUSr9uAoEKyC5PNPWJNW/FczBsO/PM3f9gQZgBuJDwbTy9AFOA3S51jPPnSn9Ibczx6CdzWGyvcBgob0vtLtIwJMCoXJ9ysDpgzXVmCd/CpCUgCbXrGW9f3AI3Jtv7B8m2DE4GrAS9DrTYPpRSAcl1exeyTnzZ56bUMEZsrvODVZtyLdHy9QHrMYzbofRZAHg9fMLiAE1ljTClTV9jLMBw5KIM4DT4aoTSQ2NCfRUBl0ZOUUMT5MiOLUVA0KMUBBxLQln1oFC7NV2EJPNUtHUAqgNgRyFzDAijYc/rL734DSHCoIYAgfTN2/dB0QEPYDIfKMH5QkaXB2wYOjDiGmw5gNTDU5XvYWwVJMJXuFZgStdQJEtNAgFz6CiQwb2Eob/ckPv9aQF3zc9qQtM1pDeTLx0mtDLKgGMtkiY+wLNLLSgOz8EAFPxccC/Gwz4IGbfbkbNA9Uv2u9/mGPQtdkvZbxqk0dIGn1k+Awg3T0p3Or3tNGg7Fz8cJlTyhnNR1VdxL1+LOoKM8j3DoP9dp/M9yacCQy92RNiQssKGCBwEYJMD1/N33ccU3WwLDo9/EfwjDKWI/0+NFmK/05DAgnkJD8QPWt3A9aXKP2lCrfWB0z4EHW5gT0iwN0lJw3BRWx58fwV51lCuA4QPBDGHKWxYclPdvxU8tgG53KC4/RADDCyWTo0pYtndgPCRrHV839AwDXECshVtLgDk1KOLsJADCPIGBV5yoSBgo9tQztDYj0A4R25ouIn+BIASPHXDI9+IqjzYghIjiPgCxI7gGbxyAGSLts5I8zWEjd4BAMY80AZj1wDSGeSOQ9uPHSIPYkAl8QMiiFIyJLN4An8wPZsA90EsiUyY4UC1XTbiknNtgW2i95/2NYJBwmvTT3j84sfkTEFOgxqyht/nC9zatrwxHwHZVHeozjZdfE31mhFbXEybcNUDpG+B3EabAt8oHVmz0Cb/XOFgAwAB2FehjvSYNTNz1fIwbDn7b33DC/Pb8IqNrvf8JVNRWHX1XtxQ+w3yQpQy3wQ0MI3Zyxda/PBglwG/IoCb90vFv3JRu/MnRN8kWOMNoByIug0oj9tRZjIkfiMT3y9K/NwRTC00PoCFs1RLAx58gtRYxytatQX2F8VjJrVCJxfASkl9yZaXy+RfI7bxpx8wv5xG1eg6zxLDOJbX3iiMTZMASCDfJKNZ8KbMMPJMMQqMH4to6C+zBdwEQqOKjSo53yoAkzcqNyMZvTx288VDUfV98pnG72uCZnLP1LNwdCsxi9Yo6Nh+i6zSCz/CXzRbQGgn9H30Ydkg7L3QitTJCKR1yLScJBDQYqaVydLnWdwfJ/I8nQYBB7cp3IMYJA8Jqdt3dcJ+JGDVmBejwot6MvCoogb3yi7w2GJKjKwjAORjpvD3238aow5D4IfwpqPf9I2R6Npt+Qh2EVM9g1WNegx+MPw6i/PO0QkgV0G5jkhYfUEOjC+oqcKAkwHZ/wuDNYegM6ogFOxEDh5APzlHRIASLDtwTCJQBWJmoQpG8CsAR0OE4UXb5n8QibUfy8oAQnb2BDNnURlnCxbAsXkZ+YncIPZoQzeQDCygri0/56ZL1wcCvw5aNHteoykwhiQo08NxCZ/fEIUdCQ6KOVjSQrdVhjoAVRDKiqQqYLrCqo8ay989YuqI0NH1A2ID9jYwB3At+Q6ACoAL+Js3Nj/9EIP7jVEWHjNNMnXw0LioQiPxg1/aSCN6joIq5idjUNIujS0kDcdzQd/xCrTQiyLO7xOpObLt3BD4DAdzyDCAgoNfgmNJ50oFFAsQBVCtHFW0Q9HbDkA1td4OVh1sK4fW0iA8PE205dcLC205c+XASMQS+NTUGV4rNOsGvI5Yc0NwB+XUgA49IeCBMU1hXGO1FclXeOyvw9NIGB5BK7GykU9/vbuXYdCnSWw9deHf4yFhdPIf3RpPw7tkxDjw7ENCjT3WdV69xLHQLDcptb6NrNdfLExAT4/VKMSDVQQ3yRDIw/Rw4pMkIcXYoQY9sKzcm48pUhjbHFWKKiB49WITNEYhNw39rA+sPHjh9DGL0sD/fz1zcLLPGOEiyzCHReDKzTazP91gsomTCyQZeJL4maXwHXjT/HxC3jQkGzBHDKjV2IsdY5c4B5xuzTCJ6jMXbCPk8oQlcOKD6vTv2IiydV0z9ohY6oIoNag8WIaDLTCPXOBfKOFjH8jwif1ETW4hpzljhdd6K7ilYyXTMSwACxKfCOTCqP71H7K9XfDao3z2niSbP92cCrg+eM28Ak/9WCSV4hXnCSLYsaC8Qt4m2Lo9vY84Kj9LTCHw/9lE4UIoUslVuQVJQ4/mDIDtuCOKjioA4T2gM44sJ1t0sAC5IIoANPGkAQ24ewE40d6XY0PUk4r5iZZ1ohJKzjNoiT26BrpSw0+5qWSZM6MvEdCMrU5ESK13Z3cUuNYdlPZii784g6aK09crfh0H8hHYfxzI1EqxCxC/XPlC6CCwjuKs8Ok3QK6T1BBTT5laAHBKQVbEmkLHi5vMOjAl2KI+wqcag0GQP8hQz7jrYiKdE2ITkvSNi2gdjQFQdRn4jt3utaGXeOOdkKTynT1uSIWHDRJI5SKhJoAT0N513A/zjMUqER6kBI+tJuK8hUwwsB+ZIrNpQlxWRDPm65DtE5TRAjSS+ntJnuBIgMVm8GmBOltcXXH25ogb9Ci8agSW0ml045mIe84fe73lDE+O6T+RYlXBgcVHcaxTiBLEEtV4gQmLwDCQXrBgU8piRJKxXDDouignxAVX6WINToooWkCyQRrRHUD2HEJaS8Qi8M7irwzpKhj6UnOwVoPlAaHxUUzFGO1i3wuiTjk5ZFXgVlqZMcmVkOgWqH24hRKUzH0oOH7ko5FYMOyShX0XzWpoQoTIiSh9lRdLCQw09Si3onxN53UZk4e+h1kZIBSAhkdRNum+JrlI2WOJC1QDG9AcpeURNlhYM2TbBDgAcA+ADpQJzxgJwu2WKouYlcU79IxA7FkChBKL3aQrFEThIAFYA0RChZFeRCVcM7SDMEFfNeHmih8JRcGaUx5ZtjapqkyBjTFL2U/mgZsxU/gQYjOVtwqQ0GTw2kY6pOkCrTRfczBIBh4DtQE5HUo0h6BfkrSmAAnNX8lFSxFQFX4o2qMZUcANgHVMSxbJFNFJ0EtAAJOCGfAOgIAPLR4ydD/QWkT0h7QI2D4BE45FmwcM412Mr9XDAEioVGAK6WOkZPJ72y15JXLUzD1RVVLvVVMgIg0yYxDalLwTLfzwIApQYFFmA+gb8IoAY4rWh8BXIXfxt8T4d1Rdx+IWRXZx7SLnBBEDhbyGjV3oJtnf8Oge1OmAhwJADTJi+KoHNxHcWiA7RnNeLNOAOaDmkgAcCMJGisaLWEE6gjgGYAyxYwS8QH5csnegbBVYd6BAAYknCGIRfgZlAN13kOnBwF5IIEnNSmWDNiM0egfRDwALkGOStknCe9I9oIQaEFogeMjvFFS/E6IGjJagGoCqoFMvCIJS2E5RgF9y0oX0xFGKFWFIAPwXgXHUikQtCvoBY2WPrSIo9pKbTqKFhPoktEsS20DWnYLRiidlSxTbTumAUjSQuJWdL0ZxJeTgwk+QaSXiTTBHeR7iJvCsA+EKwHlw7SvlZBX6Se018LpCgtOOQpJ4wEdLslsRcdJdlrFXdMyA50mkR2gQeD2SSg6OLDgY5KIPmm9lDLX2U0MI8W2UtF7US9L6Br05EC/9z0rpESw84/MX3i+ADjLlgEiPHIuVjZQykZ54AcWHuAflI+mjkbYQKh0zK/N+JlAfaQrT7g8wtjIgFJc18yPR40fuQbFpsudK2h+QF8Qdg1IdyBIBxsiIAOEkoCSmY8rcwGEiA7cybKShVEORh5oXcm3PdyHc/AJVy04gRmaM9MzgP6ikSLpj7hv9caJxp/MA2Nyy3gLwHuDqAFbP8yVmaCNgj+INBhYCJcBRIoBS1ZWW0zg87thBS0aXXz2TzMjgksyMw/aMgBuZVeOP8nUvviHYCKTRQtM6IHlzTypU6bEEhyqCdU9BsxAlJ9Sz0udEek3gZ6RHo70sIXDzxAdXN2Y0gSoGcBKeRbPHE6AbvO/Sv+ELS6ANQ2n2vQeaMhAICPAaIGpgiACnHpRYwd5JqAUlARJy8KlXPIjTdnYCS5R8dX0I0x4HLlMgkeUspNmhc6eCSASD0gWMHlJAs6JkCLo6tP88NQwDR+y7s9uIbSqUp7LadaUuHIRykc021GIu01SwGTRrWbw1Yt6LSk3hroSLCnoTWaXOFgKwCphCAV8ItloBiC8qENFq89AB5oUXXHJ1EtKaABCAwgrRE1pkQTAFnpeyJEh8gKwSAGFhIoMAG4x36S+JTQZiQ1KQYw5EGkIKiEkgtylOeG4EiwusnbRcTHXXIF1wUfTyX8kQgUPXqyCKZEAcocsAAnZVOkfcFvJtWFeCSp9ZeiBbATgJZypAIKD2Ud1FqJcPz0Q0vKkzgBshOMjTKLabD2iKqSDUXztYSnmjUaUWiBbhaAHrBTtvgNO0oAOCnqnTUwU7ujNDZoJyEvyamV4Aqx/vVXNnyLaKItFshcoWBSFSXDwXM42BNyMLSDoQwokCH2Q7POiyQS6Mz5I6PP2joxEs8IkS5/D6O7jkC6dLAAZTRHDL40crWIxzqo6WXh4KLbmAZJdUjPjlAfZZOBZzeWHCAXRrVSnnXESAGsGpwQcTQyE4JyVsnGV+NOwWqTTaHdLcFo1HZ09jrizJMVB+xQRAa4Snd7xRTUfcotLS/kNuQWQiAf2krSpAaEDaLkWNc26K2488IeyFY0NwVQSAU7VGJwEBOCTgOC1AVxhUc7tImLPPTHPeRl0/rNdi5iiaAGIUXd8EJofECsAAAqB6DuQuweYvQ4jDIUMNCPAUkqCht0wWGWL/PI6xgylkrYo6YhQVeK3yC4fgEDwxQEEjiyzoe0GvxCMj5EHM5OOUA1oniocyCJZbdjmDl6ge8SshLQlQouKYnFmLRpcsuIBsLR06ECSc3BXUv1L8c9J1z1XFFIWRBdqH0RqKSnRlmYyyQTCSaKcJWiLmjYC8EvljG0xWPntYSpSVigusPp3yZTbOpgeRCgepmfDN/exPZS6JKPJ6Z0iSQE9VBmA3XKTsRULTxFZ2cHxlC+VXfVVMNiJdhtBGjM4Mg8o/NJCmYZ2CFkQ0YIqQrgib4pRUQjIgHOIbjQTP5MwdU402jLzjXPZPBCIWV62hZgSOpKSsXs/0PyTCnXsrN8CyhZhbli2bihfZJ2LORALmiycso1b00DIWx7gT0DSiui5pN+dWk2I29KoSxIz0C7YbCHFpIsFEC0AKAMAHFoAALQ0BmAeMkjK7EtlPYwTys8tv4iyLAGwhTwGVC8QtoXqDNhYeRuCVdPJD8I5haANnhDU487ywnc0ae6JZA5Q8CtYd12GVL8KPUUDF3Z24WNLcMc054iNgIK3ID7c7LGzDWzyVXBE2zNQF4HBB6fK1jTlM4BC1+EagEwhUV8Kl4GmwELQoHKh/iKeFF4agU1OhReIC1NzLoJKyGiACQYpFKxIAdRCnh5EFoAoqCK3PC6AiSUID012wA2X5hWK77OUr0LN9NaVDZTSut9IkT5zMJGNclAdEruYMKnLxpekPpkPS3oq0CQ3OeyQLm9N8vPKGIMAHRB7yx8vGL3fSYvGsDKqCsaxI2PZmwpEAfEFcrb+WclBUjGV53LZy5acUtx4KtUsCLNKtmyKL58rCt8wkSB9E0qSKrXnrzcIeSqorHjWip3t6K3BA0AmK/soMr2K82OKBuK/EF4raIxWAEqwKYbK18RKukDEqJK+gGkr8QWSvgAagI/JwhoQVSsOB1KrAFyqEibSrGq9KjSsoreMLiCNFPJAtHQqkGUyt58vs5iiDCl3Kytg5gZHkpiQFqx514KNi57lrTdy+7K9KECn0ucrOrCKvVoryu3GUsHyllNHjsbdjACr9wIKofI7cVzl8wIq8JGiq7YuKubNUDJKrpBEK1KvItgMT1CCLK02NKmquQUiopByKpCrDgSqnhTKrTgBisqqOsliuOraqziu75LaJqv4r2gQSvaqB2TqpiBxKuJCkqASAaqKrCK4XhGqVK3Somr0a2JIqNfAUUAcBjYE9KThJ5aGqMSvaF1Bil8cRGuOrs086GeJKHTeiVFmcbWBFtTq+nHyCfwUXi5qLqszzgKISg8qcroS48vth3y4GEO9XPV6qfLWUj6o3ovqtDkjYHq1fy8r8YKKpAqQstasDZYVeMWlqhjBqVzT/04zNNgFSVWvZgCahSqJr6qlHh4qziPitMVxcEoGKwziEGCNUJAL6Jproa6bFwQaeKTDMJeeMEHwB/aZEDprJKvqoUQWgassLhfMxOTv09qGzBmqOa6bPRrDKpGjetUDLiCX1k8t4tYTnXQyxZgvvfmPMqekZwBzTsYh6u1ruvINwcr1ffoJhKXK42rcqLanypfCMS6qMBrba+1BdqehN2o/oPaqWoUqnDa4n4A5atGh9plagMQSIUajwDRqDK6itexSq9KPKrGK/GrMIaqskA4qI60mujrmq8UDzIHiBxH/ZNagInooBAS4C0rRqjmoMrT7RguMr3rY+sW4mI3w3RqXkYcrRSJ8T72ZpLKgeqyU2kOyuntJ64sOijTtB6vJCvKt6sqjrarkDXqfqoWCIaHwp2o3reyEGrdRGLRKvvYHgBCpSqFqtKvdRt6qNOzJParmvPr8qq+uOqb6uCih86KnGvIr5YaqsJrX6uqq4rI6xqs/ryaxljarLUjqsrFRKout6rGauSsUqPAOuvxpOapGqUqwGoxobqIGpaqgbfcXCo8tCgsyoyROLL7yAVdEzF2+NtCxilJS5lMEvsqiw/ooG9CGueovKAkMABsB5EEhstr3qoZI3oHqkJrCanapqBiFKG4IWArN6xhspkwalhrkw7VSGo4aCKrhthqMKrm2mx+GkxuPyhGwqsbrRGu+ubqWKC0D6AGK6/MeN5eMJMp4W6l+r4A36hRo/qcgPiqscWqimrUbhKzRq6rtGhmpkq9GgyuGrDGtSosaFqmzGhrUIh6FjSyHSSSPryAfmxFAlawOqLo/WfpQQaVFTWo1VcqsepV8J6vxupS7qu3wer3gHpJervKtEt8rl6/yuOrAqhgQfJoACyBvQwqgjiCaga12vSaHU5hrgrWGnJsmMvmThphr3a3hokRSm+ZsEayKypuvrMa8RuxqYgCqqqrQ6tirkbiahquG42APpvBizUymvUbqakZtpqeq8Zv6rJm46umazG2Zv0r4WrkBmbxquZoUrIGoypsbZauxr/jkGgiO2re69Bt2rqcacv+SQZVmo6as3VWoSocG1Xzwb/G30tnrTytyqtiImxeqjKXym2tebvq95uoagmjQFVaHy52tHEOy04EQNlm3zAMqZaw+p5aQ4YdyFpMmwoIobjqrPOSFHjKIAvqCqwlrOB8Mk+FxrMW5+pEb3W+gC6aSapElF4TQa/Lss/6oWAAa4BUyg5RgGjtCSR+m4lqGaVTGmu6r6akuqZrCkaIBZaMAZmtal82+lvGqIpSAAABWK3lEQo2h4iKdZyR1CoR0ceioLa4QU4Craa20otoyhYCFjYFMG/mJSVWEm31lbzmyKMPLSMU7RBhqsZMlIbBk3Ao3o9kScjCh3ydrnCR9aFwlvBUiA7mdjZMf7EMZ0yRrCtUXk7uw8AyyINAm5+pTxDHRckfHBVgCMfWWvSVpNr1p8fEEGEREYgK0jEAwAN9pCVCLX8F1wRyabCOhkgagC1CpQXRkhAkAXFB8RIOxWmqY1wZIBTVwO5WgAIAkBFD/brSqwr5APwY2GA6EOp4pg6sOnzTkwvAXniLZQOwRFQ6gCZFORwfcBUudQJWzmEzLe8z4A4getDyA5yo1f4TcJ8S1KByzUPEgHSpYEGIEqq+aTTH2FDGTclKAzYHZkYpfU+1WiByC0kpiVzKaIA0AliRYmU62FBL1Ai9uUMF7IVpS9pMsVceDoo7/2rpGOJG2pkHRxL8DiGlEcy6eCHw75U5u6D4Cvr1adDahInXaFyCTHuikDfiAPb2hMP2RARsR7Nd4CJVpz0DIoadouJZ2nArRj7uC9t3FPyKxoxjPJd5HjBDOjbiXz7UA5DH0TZaIGodK6lTt05YgWFR2Af2thXvB+UZAAaCVpSMUn4fiZ9vPQVIVuRId0gHLu25EASeAKA/QQWCK630FaSA7iRanA1AloE4FlIY2homQtmuqkBZAVpf5mvTBgAAHYAAagR9jScu2bRVYcex3Kdaz0raTISg2qPLTtH+FrABAABAIQcJcBCYBn1OWGgRYESJrIbomrkECx1APPDrAcIG6n9gruohE1y7uy+rwR6Go5O/Q90PoEiIUZa0mPheReNtalr0IczQ4XanWT7RNOCQEGAT4CQEWAYDLoC15mEBEuTgoelJuVBuAZHq8g1yNHox6se2T1x6QYHXlxQxPEYA0B02U4Et4EiVnjBtTspECRRDCktH+9uu9QFc0vKbgGrQG4WaFkBnADYHR4m4Cwt4xfulvHw0vFeMA4IjgMKtjck4MAD8RhYCQGER0rbbmm5zCQJFpVVYP+ntaDcEXqotVYY4n164Sy2l8RAkCtEkRJQObg4IqAa2CosYrLSnF6DGY0kd7OAW7uUBrYTiQ74l4RPRNha6XSFdbQcV81GIfeuHmWqPcclX97XeuDjzrBaaxBqbNOG0FQ8KxCbkRdpdKugwRAwW7sG5hw9ujGx0G4DokBWySvrABCejAC16K2yADe7cAD7oEAvu0xlBK603Wuur3OhIyjJNq73jC7Q3MMNwRRVQhBbxAu26lS6GOvQLO6/4C7plNruj9OzragDXp6qoEGBDi7UY+F2b7W+9vuPhF+v7pPbt25+spbge+MLGg3rcHrctPxbGPh6vqOvuLLI/Lko2Q6+m7uJquxR9HOAM+rygh7IAHXp8Rtevmkzg/+in0AHFgdrIcbHROot4S5e962IMskXgUeKu6rxukcfG3BoubECw2pUEoIa8CtwhaJcFyMiSt4C4BEYq8w6ACJECHPBwIK8BnANwFoFwBnYMUEQAkmfMDThnYRQoghcBugbEQ4gYYFERaAAQEWA4gCtuEQBAUQeWA0AZYAEBhgJYGW7aAZYGWBluittoAK20YDbpvgUYAAAOBgEWBBgDwFoGIASAH0HdqeQYChFgBgFoBRgKwYEBREYYEWB1B8Qa0GhB3QckHRgURAWATeZbuER3Bm0EMGoALwbiBRgEgGWB3BrQaVJ+B5bq0GtBwYAra0ALQdGBhgNADGBRgZbtERoh4RDSHBBhgGW6khrgYMA8B0RAYBxBpIdEBREZbuEHRgAQFGBBgYocdA1BkgBW6K2kgESHFgaIbQBvBxYGEQchrQfyG8BtABIBhgOID0GEhituGAGAOXDiBhEAYYEBMhwYC0H26NAEWBaALQZIAVgJUkUHFgUQFCG+hugcGBkh0RA6GswYREGBrBsRFGBhB4QeWBmh5btSGlAcn0dBluwYBkHBgNwZ16pwAoboH3wdQCYGd4Vgemh2BucC4GgAA= -->

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

<details open="true">
<summary>🧪 Generate Unit Tests</summary>

- [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Create PR with Unit Tests
- [ ] <!-- {"checkboxId": "07f1e7d6-8a8e-4e23-9900-8731c2c87f58", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Post Copyable Unit Tests in a Comment
- [ ] <!-- {"checkboxId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Commit Unit Tests in branch `refactor/use-biome`

</details>

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=ant-design/ant-design-pro&utm_content=11496):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai auto-generate unit tests` to generate unit tests for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@socket-security
Copy link

socket-security bot commented Jul 4, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​biomejs/​biome@​2.0.610010010099100

View full report

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jul 4, 2025

Deploying ant-design-pro with  Cloudflare Pages  Cloudflare Pages

Latest commit: 27fa371
Status: ✅  Deploy successful!
Preview URL: https://3948efa5.ant-design-pro-nd3.pages.dev
Branch Preview URL: https://refactor-use-biome.ant-design-pro-nd3.pages.dev

View logs

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (12)
src/locales/en-US/globalHeader.ts (1)

11-11: messsages 单词拼写错误
You have viewed all messsages. 多了一个 s,应为 messages。虽然此次 PR 侧重格式化,但该拼写错误会直接呈现在 UI 中,建议一并修复。

-  'component.globalHeader.message.empty': 'You have viewed all messsages.',
+  'component.globalHeader.message.empty': 'You have viewed all messages.',
src/service-worker.js (1)

41-44: 建议使用更精确的正则表达式匹配 color.less

/\/color.less/ 可能匹配到诸如 foo/color.less.mapmycolor.less 等非预期路径。若仅想匹配完整文件名,可加入转义及结尾锚点:

-  /\/color.less/,
+  /\/color\.less$/,
src/locales/pt-BR/settingDrawer.ts (1)

24-25: 拼写错误:应为 “habilitado”

abilitado 为误拼,正确写法应为 habilitado

-    'Funciona quando o esconder cabeçalho está abilitado',
+    'Funciona quando o esconder cabeçalho está habilitado',
src/locales/en-US/settingDrawer.ts (1)

28-29: 语法优化:将 “copy success” 改为 “Copy succeeded”

更符合英语表达习惯:

-    'copy success, please replace defaultSettings in src/models/setting.js',
+    'Copy succeeded, please replace defaultSettings in src/models/setting.js',
src/locales/en-US/pwa.ts (1)

4-5: 措辞改进:信息提示更自然

-    'Please press the "Refresh" button to reload current page',
+    'Please click "Refresh" to reload the current page',
config/config.ts (1)

3-3: node:path 前缀可能受 Node 版本限制

import { join } from 'node:path' 需 Node ≥ 14.14 才支持。请确保:

  1. 项目 package.jsonengines.node 声明满足此最低版本;
  2. CI⁄部署环境同步升级,否则运行时会因无法解析前缀报错。

可在 package.json 中加入:

 {
   "name": "ant-design-pro",
+  "engines": {
+    "node": ">=14.14.0"
+  }
 }
mock/requestRecord.mock.js (1)

37-38: 重复数据建议集中管理
avatar URL 在多处 mock 文件重复出现,可考虑抽取为常量或共享模块以减少维护成本。

types/cache/mock/login.mock.cache.js (1)

37-38: 与其他 mock 文件存在大量重复
可统一 mock 数据源,避免两份缓存数据长期漂移。

src/locales/en-US.ts (1)

16-17: 英文文案语法小瑕疵
“Quickly build standard, pages …” 里的逗号多余。建议:

-  'app.welcome.link.block-list':
-    'Quickly build standard, pages based on `block` development',
+  'app.welcome.link.block-list':
+    'Quickly build standard pages based on `block` development',
package.json (1)

18-19: 每次执行都 npx 拉取可执行文件,影响性能

频繁调用 npx @biomejs/biome … 会导致:

  1. CI/本地首次执行需要解析包版本,耗时数秒;
  2. 可能出现全局与本地版本不一致的问题。

更推荐直接依赖本地安装的二进制并利用 npm 的 bin 解析:

-    "biome:lint": "npx @biomejs/biome lint",
-    "biome:check": "npx @biomejs/biome check",
+    "biome:lint": "biome lint",
+    "biome:check": "biome check",
src/app.tsx (2)

36-38: catch 块完全吞掉错误,不利于排查

将变量改名为 _error 可以绕过 lint,但实际生产环境中仍需要日志以便排错。可在开发模式下输出到控制台:

-  } catch (_error) {
+  } catch (_error) {
+    if (process.env.NODE_ENV === 'development') {
+      // eslint-disable-next-line no-console
+      console.error('fetchUserInfo failed', _error);
+    }

63-66: actionsRender 每次渲染都会创建新元素,可能触发不必要的 diff

虽然影响不大,但可以用 useMemo 或将静态数组定义到组件外部,避免每次 layout 计算时重复生成:

-    actionsRender: () => [
-      <Question key="doc" />,
-      <SelectLang key="SelectLang" />,
-    ],
+    actionsRender: () => staticActions,

并在文件顶部:

const staticActions = [<Question key="doc" />, <SelectLang key="SelectLang" />];
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between af44243 and 20f60db.

📒 Files selected for processing (65)
  • .eslintignore (0 hunks)
  • .eslintrc.js (0 hunks)
  • .github/workflows/ci.yml (0 hunks)
  • .gitignore (0 hunks)
  • .lintstagedrc (1 hunks)
  • .prettierignore (0 hunks)
  • .prettierrc.js (0 hunks)
  • biome.json (1 hunks)
  • config/config.ts (2 hunks)
  • mock/listTableList.ts (5 hunks)
  • mock/notices.ts (3 hunks)
  • mock/requestRecord.mock.js (21 hunks)
  • mock/user.ts (9 hunks)
  • package.json (2 hunks)
  • public/scripts/loading.js (1 hunks)
  • src/access.ts (1 hunks)
  • src/app.tsx (3 hunks)
  • src/components/Footer/index.tsx (1 hunks)
  • src/components/HeaderDropdown/index.tsx (2 hunks)
  • src/components/RightContent/AvatarDropdown.tsx (2 hunks)
  • src/components/RightContent/index.tsx (1 hunks)
  • src/global.tsx (2 hunks)
  • src/locales/bn-BD/pages.ts (3 hunks)
  • src/locales/bn-BD/settingDrawer.ts (1 hunks)
  • src/locales/bn-BD/settings.ts (1 hunks)
  • src/locales/en-US.ts (1 hunks)
  • src/locales/en-US/globalHeader.ts (1 hunks)
  • src/locales/en-US/pages.ts (3 hunks)
  • src/locales/en-US/pwa.ts (1 hunks)
  • src/locales/en-US/settingDrawer.ts (1 hunks)
  • src/locales/en-US/settings.ts (1 hunks)
  • src/locales/fa-IR.ts (1 hunks)
  • src/locales/fa-IR/globalHeader.ts (1 hunks)
  • src/locales/fa-IR/pages.ts (3 hunks)
  • src/locales/fa-IR/settings.ts (2 hunks)
  • src/locales/id-ID/globalHeader.ts (1 hunks)
  • src/locales/id-ID/menu.ts (1 hunks)
  • src/locales/id-ID/pages.ts (3 hunks)
  • src/locales/id-ID/settingDrawer.ts (1 hunks)
  • src/locales/id-ID/settings.ts (2 hunks)
  • src/locales/ja-JP.ts (1 hunks)
  • src/locales/ja-JP/pages.ts (3 hunks)
  • src/locales/ja-JP/settingDrawer.ts (1 hunks)
  • src/locales/ja-JP/settings.ts (2 hunks)
  • src/locales/pt-BR/globalHeader.ts (1 hunks)
  • src/locales/pt-BR/menu.ts (1 hunks)
  • src/locales/pt-BR/pages.ts (5 hunks)
  • src/locales/pt-BR/settingDrawer.ts (1 hunks)
  • src/locales/pt-BR/settings.ts (2 hunks)
  • src/locales/zh-CN/pages.ts (2 hunks)
  • src/locales/zh-CN/settingDrawer.ts (1 hunks)
  • src/locales/zh-CN/settings.ts (2 hunks)
  • src/locales/zh-TW/pages.ts (2 hunks)
  • src/locales/zh-TW/settingDrawer.ts (1 hunks)
  • src/locales/zh-TW/settings.ts (2 hunks)
  • src/pages/404.tsx (1 hunks)
  • src/pages/Admin.tsx (3 hunks)
  • src/pages/TableList/components/UpdateForm.tsx (1 hunks)
  • src/pages/TableList/index.tsx (12 hunks)
  • src/pages/User/Login/index.tsx (5 hunks)
  • src/pages/User/Login/login.test.tsx (3 hunks)
  • src/pages/Welcome.tsx (1 hunks)
  • src/service-worker.js (1 hunks)
  • tests/setupTests.jsx (1 hunks)
  • types/cache/mock/login.mock.cache.js (21 hunks)
💤 Files with no reviewable changes (6)
  • .github/workflows/ci.yml
  • .gitignore
  • .eslintignore
  • .prettierignore
  • .eslintrc.js
  • .prettierrc.js
🧰 Additional context used
🧬 Code Graph Analysis (2)
mock/notices.ts (1)
src/services/ant-design-pro/api.ts (1)
  • getNotices (36-41)
src/app.tsx (1)
src/components/RightContent/index.tsx (2)
  • Question (16-32)
  • SelectLang (6-14)
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: build-preview
  • GitHub Check: build (16, windows-latest)
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build (16, windows-latest)
🔇 Additional comments (78)
src/locales/en-US/globalHeader.ts (1)

8-9: 纯格式化修改,无功能差异
仅将长字符串拆分成多行,内容保持不变。

src/components/Footer/index.tsx (1)

3-3: 仅类型导入 React,需确保开启 automatic JSX runtime
react 改为 import type React 可以减少运行时代码,但前提是项目使用 React 17+ 的 automatic runtime,且 tsconfig 中已启用 jsx: "react-jsx"。请确认 CI 与打包配置已同步更新,否则会出现运行时缺少 React 的错误。

src/locales/bn-BD/settingDrawer.ts (1)

28-30: 纯格式化修改,无功能差异
只是换行,内容未变。

src/locales/id-ID/globalHeader.ts (1)

8-9: 纯格式化修改,无功能差异
仅拆分长字符串。

src/locales/id-ID/menu.ts (1)

21-22: 纯格式化修改,无功能差异
内容未变,仅调整换行。

src/locales/fa-IR/globalHeader.ts (1)

8-9: 无功能变更,格式化调整符合预期
仅格式化换行,内容保持一致。

src/locales/zh-CN/settingDrawer.ts (1)

28-29: 字符串拆行仅格式化,无功能性风险

改动只是把原本的单行字符串拆为多行模板字面量,内容未变,运行时也不会影响。

src/locales/bn-BD/settings.ts (1)

56-57: 仅格式化变动,翻译内容保持一致

这里同样只是把长句拆行,建议确认最终构建产物中没有意外换行或多余空格。

src/locales/ja-JP.ts (1)

14-15: 格式化 OK

字符串改为多行字面量,含义与原先一致,无其他问题。

config/config.ts (1)

161-163: 多行 URL 保持可读性即可

仅格式化,URL 本身未改动,无需进一步调整。

src/locales/en-US/settings.ts (1)

47-48: 拆行后仍保持英文语义完整

内容未变,格式更易读,无其他问题。

src/locales/fa-IR.ts (1)

16-17: 字符串拆行符合整体格式化策略

仅格式化调整,语义未变,保持与其他 locale 文件一致,无需额外操作。

src/pages/Welcome.tsx (1)

4-4: 确认启用了 React 17+ 自动 JSX 运行时或 jsx: 'react-jsx'

此处改为 import type React 后,运行时代码将不再引入 react
请确认项目 tsconfig.json / 构建链已启用自动 JSX 运行时,否则在旧版运行时 (React.createElement) 下会导致编译或运行时错误。

src/locales/zh-TW/settingDrawer.ts (1)

28-29: 格式化 OK

纯展示层变动,不影响功能。

src/locales/pt-BR/globalHeader.ts (1)

8-9: 格式化 OK

与其它 locale 文件保持一致,可读性提升。

src/pages/404.tsx (1)

3-3: 同样需要确保自动 JSX 运行时可用

Welcome.tsx 相同的类型导入改动,请确认构建配置已适配,否则可能缺少运行时 React 引用。

src/locales/id-ID/settingDrawer.ts (1)

24-25: 字符串拆行无功能影响,变更可接受。

拆分长字符串提高可读性,对运行时无影响。

src/locales/pt-BR/menu.ts (1)

20-23: 仅格式化拆行,无风险。

tests/setupTests.jsx (1)

62-66: 多行 if 提升可读性,逻辑保持不变。

src/locales/ja-JP/settingDrawer.ts (1)

24-25: 格式化调整符合整体迁移到 Biome 的规范
仅字符串换行,内容未变;无功能性问题。

Also applies to: 31-32

mock/requestRecord.mock.js (1)

5-6: 字符串多行拆分无功能影响
只是格式化;数据保持不变,可接受。

types/cache/mock/login.mock.cache.js (1)

5-6: 同上:仅格式化
多行拆分 OK。

src/locales/zh-CN/settings.ts (1)

32-33: 仅格式化,无问题
多行拆分提升可读性,内容保持一致。

Also applies to: 37-38, 50-55

src/locales/pt-BR/pages.ts (5)

5-6: 纯格式化分行,内容保持不变,符合 Biome 统一风格


19-20: 同上,仅字符串换行,无功能改动


29-30: 保持一致性:分行处理 OK


40-41: 仅格式调整,LGTM


51-52: 格式化更新无风险

src/locales/id-ID/pages.ts (3)

5-6: 字符串分行,符合新格式化规则


39-40: 同类格式化,仅视觉调整


52-53: 格式一致性良好

src/locales/zh-TW/settings.ts (4)

32-33: 纯格式化,无逻辑风险


37-38: 格式化一致,LGTM


50-51: 换行处理 OK


53-54: 仅样式更新,可接受

src/locales/id-ID/settings.ts (4)

14-15: 内容未变,仅分行


19-20: 格式化 OK


45-46: 保持统一风格,LGTM


48-49: 无业务影响,接受

src/locales/zh-CN/pages.ts (4)

2-3: 字符串拆行,符合 Biome 规则


5-6: 仅格式调整,无需额外动作


32-33: 分行处理 OK,内容未变


41-42: 格式化一致性良好

src/access.ts (1)

4-6: 代码格式化改进良好

函数参数格式从单行改为多行,并添加了尾随逗号,这符合 Biome 的格式化规则,提高了代码的可读性和维护性。

src/global.tsx (2)

35-35: 优化了属性访问的安全性

使用可选链操作符 ?. 替代逻辑与操作符,这是一个功能性改进,能够更安全地访问嵌套属性,避免潜在的运行时错误。


70-72: 格式化改进符合预期

useIntl().formatMessage 调用改为多行格式,提高了代码的可读性。

src/locales/fa-IR/settings.ts (1)

18-19: 本地化文件格式化统一

字符串字面量从单行格式改为多行格式,提高了代码的可读性和一致性。字符串内容保持不变,确保了翻译的完整性。

Also applies to: 44-45, 47-48, 50-51

src/locales/en-US/pages.ts (1)

5-6: 英文本地化文件格式化改进

多个字符串字面量从单行格式改为多行格式,与其他本地化文件的格式化保持一致,提高了代码的可读性。

Also applies to: 28-29, 39-40, 42-43, 50-51, 53-54

mock/notices.ts (3)

1-1: 类型导入优化

使用类型专用导入 import type 导入 Express 类型,这是 TypeScript 的最佳实践,有助于更好的类型检查和构建优化。


3-3: 未使用参数命名规范

将未使用的参数 req 重命名为 _req,清晰地表明该参数是故意未使用的,符合 TypeScript 编码规范。


88-89: 描述字段格式化改进

将描述字段的字符串字面量改为多行格式,提高了代码的可读性,与项目中其他类似的格式化改进保持一致。

Also applies to: 105-106

src/pages/Admin.tsx (1)

5-5: 格式化调整 ✅

本文件仅做了类型导入、字符串换行及 JSX 属性换行等风格层面的修改,未涉及业务逻辑,确认无误。

Also applies to: 20-22, 32-34, 38-42

src/locales/ja-JP/settings.ts (1)

43-45: 多行字符串格式化 ✅

仅将长字符串拆分为多行,未改动实际文案内容,无风险。

Also applies to: 46-48, 49-51, 59-60

src/locales/ja-JP/pages.ts (1)

2-3: 本地化文件格式化 ✅

所有改动均为长字符串换行,保持原有翻译不变,可直接合并。

Also applies to: 28-32, 40-47, 51-56

src/locales/zh-TW/pages.ts (1)

2-3: 仅样式调整 ✅

同样为字符串换行,无功能/内容变动。

Also applies to: 5-6, 32-34, 41-42

src/locales/pt-BR/settings.ts (1)

11-13: 字符串拆行 ✅

纯格式化更新,文本保持一致,无需进一步操作。

Also applies to: 19-21, 24-26, 46-48, 49-51, 52-54

src/components/HeaderDropdown/index.tsx (2)

28-38: 确认是否仍需支持 overlay 属性

组件通过 Omit<DropDownProps, 'overlay'> 显式剔除了 overlay,但仍允许调用方透传其它 Dropdown 属性。如果项目已完全迁移到 Ant Design v5 的新 menu API,这样处理没问题;若仍有旧代码传递 overlay,将触发 TS 报错并在运行时失效。请确认业务侧已完成替换。


1-38: 代码仅格式化,逻辑无改动,LGTM
本文件的所有调整皆为 import 重排与多行排版,对运行时无影响。

src/locales/fa-IR/pages.ts (1)

2-54: 纯排版更新,无内容变更,LGTM
翻译文本保持不变,仅把长句拆为多行字符串。

src/locales/bn-BD/pages.ts (1)

5-52: 纯排版更新,无内容变更,LGTM
同上。

mock/listTableList.ts (3)

1-4: node:url 路径可能影响旧 Node/TS 解析

import { parse } from 'node:url' 需要 Node ≥ 14.18 且 TS moduleResolutionnode16/nodenext 才能正确编译。若仓库仍使用默认的 node 解析或需要兼容旧版本 Node(≤ 14.17),应继续使用 'url'


57-76: 可读性提升 👍
使用可选链访问 prev?.[key] / next?.[key] 避免未定义报错,改动正确。


83-95: 过滤器回调使用 some 提前返回,性能小幅优化
实现正确,赞。

src/pages/TableList/index.tsx (3)

41-45: catch 参数改为 _error 更符合 ESLint/Biome 未使用变量规则
语义无变化,👍


120-152: 描述列排版调整,无逻辑变化


328-336: 使用空值合并运算符避免 callNo 未定义时报错

- (pre, item) => pre + (item.callNo ?? 0)
+ (pre, item) => pre + (item.callNo ?? 0)

改动正确,提高健壮性。

.lintstagedrc (1)

2-3: 配置简化得很好!

将原来的 ESLint 和 Prettier 分离的命令合并为单个 Biome 命令,同时增加了 CSS 文件的支持,这样的配置更加简洁高效。

src/components/RightContent/index.tsx (1)

18-30: 优秀的可访问性改进!

Question 组件从 div + onClick 改为语义化的 <a> 标签,并添加了适当的 hreftargetrel 属性,这显著提升了组件的可访问性和语义化程度。

src/pages/User/Login/login.test.tsx (2)

48-53: 格式化改进提升了可读性

将长的链式调用和函数参数格式化为多行,提高了代码的可读性。

Also applies to: 73-75, 81-83


1-2: 需要手动确认 startMock 的类型声明

目前在代码库中未能定位到 @@/requestRecordMock 模块或其导出的 startMock 的任何 TypeScript 类型定义。请手动检查并确认以下几点:

  • 模块的实际存放位置及文件名(例如在 src/… 下的哪一份文件)
  • 是否已为该模块提供了 .d.ts 声明文件或在 tsconfig.json 中正确配置了路径别名
  • 若无类型声明,建议为该模块新增类型(或修改导出语句),以便移除 @ts-ignore

完成上述确认后,再决定是否需要继续保留或移除该注释。

src/components/RightContent/AvatarDropdown.tsx (2)

1-12: 导入语句优化得很好

将导入语句重新组织,使用类型导入 type React 而不是值导入,这是现代 React 开发的最佳实践。


44-47: 参数解构格式化改进

将函数参数解构展开为多行格式,提高了代码的可读性。

src/pages/User/Login/index.tsx (4)

15-22: 导入语句组织得很好

@umijs/max 的导入语句重新组织为多行格式,并使用类型导入 type React,提高了代码的可读性和遵循了现代 React 开发最佳实践。


74-85: JSX 格式化改进

将原来的单行 JSX 元素展开为多行格式,每个属性占一行,这样的格式更加清晰易读。


188-190: FormattedMessage 组件格式化优化

FormattedMessage 组件的属性展开为多行,提高了国际化代码的可读性。

Also applies to: 375-378, 385-388


285-287: 条件渲染格式化改进

将条件渲染的 JSX 用括号包围并格式化为多行,使代码结构更加清晰。

package.json (1)

73-75: Biome 2.x 最低要求 Node ≥16,engines 字段需同步

新增 @biomejs/[email protected] 后,项目依赖最低 Node 版本已被提升。如果依旧保持 engines.node">=12.0.0",在旧版 Node 环境下安装依赖会直接失败。

请确认 CI/CD 及 README 中的 Node 版本要求并同步更新:

-    "node": ">=12.0.0"
+    "node": ">=16.0.0"
mock/user.ts (1)

1-1: type-only 导入 👍

使用 import type 消除了运行时代码,降低了 bundle 体积,符合 TS 最佳实践。

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
biome.json (1)

20-22: 建议显式声明缩进宽度以避免团队认知偏差

仅设置 "indentStyle": "space" 会沿用 Biome 默认的 indentWidth = 2。为对齐原 Prettier 配置并消除歧义,建议显式写出宽度:

       "enabled": true,
       "indentStyle": "space",
+      "indentWidth": 2
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 20f60db and 1eef7db.

📒 Files selected for processing (7)
  • biome.json (1 hunks)
  • public/scripts/loading.js (1 hunks)
  • src/components/HeaderDropdown/index.tsx (2 hunks)
  • src/components/RightContent/AvatarDropdown.tsx (2 hunks)
  • src/pages/Admin.tsx (2 hunks)
  • src/pages/TableList/index.tsx (12 hunks)
  • src/pages/User/Login/index.tsx (5 hunks)
✅ Files skipped from review due to trivial changes (1)
  • public/scripts/loading.js
🚧 Files skipped from review as they are similar to previous changes (5)
  • src/pages/Admin.tsx
  • src/components/RightContent/AvatarDropdown.tsx
  • src/pages/User/Login/index.tsx
  • src/components/HeaderDropdown/index.tsx
  • src/pages/TableList/index.tsx
⏰ Context from checks skipped due to timeout of 90000ms (9)
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: build-preview
  • GitHub Check: build (16, windows-latest)
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build
  • GitHub Check: build (16, macOS-latest)
  • GitHub Check: build (16, windows-latest)
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
README.md (1)

13-13: 缺少替代文本,影响可访问性
![](...) 会触发 MD045 规则,对屏幕阅读器也不友好。建议补充 alt 文本。

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
README.zh-CN.md (1)

13-13: 缺少替代文本,影响可访问性
同样建议为徽章图片添加 alt 文本,避免 markdownlint 报错并提升可访问性。

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
README.ru-RU.md (1)

13-13: 缺少替代文本,影响可访问性
为徽章补充 alt,可同时解决 MD045 警告。

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
README.ar-DZ.md (1)

14-14: 缺少替代文本,影响可访问性
为徽章图片添加 alt 文本可以提升可访问性并通过 markdownlint 检查。

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
README.tr-TR.md (1)

13-13: 缺少替代文本,影响可访问性
建议补写 alt 文本以符合 MD045 规则。

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1eef7db and 127f3e9.

⛔ Files ignored due to path filters (1)
  • src/pages/User/Login/__snapshots__/login.test.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (16)
  • .lintstagedrc (1 hunks)
  • README.ar-DZ.md (1 hunks)
  • README.es-ES.md (1 hunks)
  • README.fr-FR.md (1 hunks)
  • README.ja-JP.md (1 hunks)
  • README.md (1 hunks)
  • README.pt-BR.md (1 hunks)
  • README.ru-RU.md (1 hunks)
  • README.tr-TR.md (1 hunks)
  • README.zh-CN.md (1 hunks)
  • biome.json (1 hunks)
  • jsconfig.json (0 hunks)
  • src/app.tsx (3 hunks)
  • src/components/RightContent/index.tsx (2 hunks)
  • src/pages/User/Login/index.tsx (5 hunks)
  • tsconfig.json (1 hunks)
💤 Files with no reviewable changes (1)
  • jsconfig.json
✅ Files skipped from review due to trivial changes (5)
  • tsconfig.json
  • README.pt-BR.md
  • README.es-ES.md
  • README.ja-JP.md
  • README.fr-FR.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • .lintstagedrc
  • src/components/RightContent/index.tsx
  • biome.json
  • src/pages/User/Login/index.tsx
  • src/app.tsx
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
README.ar-DZ.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

README.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

README.ru-RU.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

README.tr-TR.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

README.zh-CN.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: build-preview
  • GitHub Check: build
  • GitHub Check: build

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
README.zh-CN.md (1)

9-13: 为 Ant Design 徽章添加替代文本以消除无障碍 lint 警告
第 13 行的徽章使用 ![]() 语法,缺少 alt 文本,markdownlint 已提示 MD045。建议补充描述,既能消除静态检查告警,也能提升可访问性。示例修正如下:

-![](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)
+[![Ant Design](https://badgen.net/badge/icon/Ant%20Design?icon=https://gw.alipayobjects.com/zos/antfincdn/Pp4WPgVDB3/KDpgvguMpGfqaHPjicRK.svg&label)](https://ant.design/)

顺便一并检查其他 README 语言版本,保持一致性。

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0cb56ae and ae6f418.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml (1 hunks)
  • .lintstagedrc (1 hunks)
  • README.zh-CN.md (2 hunks)
  • biome.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • .github/workflows/ci.yml
  • biome.json
  • .lintstagedrc
🧰 Additional context used
🧠 Learnings (1)
README.zh-CN.md (2)
Learnt from: afc163
PR: ant-design/ant-design-pro#11474
File: src/pages/TableList/components/UpdateForm.tsx:44-44
Timestamp: 2025-06-04T02:35:58.665Z
Learning: Ant Design 5.25.0 版本引入了新的 Modal 属性 `destroyOnHidden`,用于在 Modal 隐藏时销毁子组件,与 `destroyOnClose`(在关闭时销毁)不同。
Learnt from: afc163
PR: ant-design/ant-design-pro#11474
File: src/pages/TableList/components/UpdateForm.tsx:44-44
Timestamp: 2025-06-04T02:35:58.665Z
Learning: Ant Design 5.25.0 版本引入了 `destroyOnHidden` 属性来替代已弃用的 `destroyOnClose` 属性。`destroyOnHidden` 用于控制 Modal 组件在隐藏时是否销毁DOM元素,这是 Ant Design 跨组件API标准化的一部分。
🪛 markdownlint-cli2 (0.17.2)
README.zh-CN.md

13-13: Images should have alternate text (alt text)

(MD045, no-alt-text)

⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: build
  • GitHub Check: build-preview
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build
  • GitHub Check: build (20, windows-latest)

@codecov
Copy link

codecov bot commented Jul 4, 2025

Codecov Report

Attention: Patch coverage is 89.65517% with 3 lines in your changes missing coverage. Please review.

Project coverage is 59.13%. Comparing base (cef2e25) to head (27fa371).
Report is 51 commits behind head on master.

Files with missing lines Patch % Lines
src/global.tsx 0.00% 1 Missing ⚠️
src/pages/TableList/index.tsx 50.00% 1 Missing ⚠️
src/pages/User/Login/index.tsx 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #11496      +/-   ##
==========================================
+ Coverage   58.41%   59.13%   +0.71%     
==========================================
  Files          81       82       +1     
  Lines         594      602       +8     
  Branches       80       83       +3     
==========================================
+ Hits          347      356       +9     
+ Misses        244      225      -19     
- Partials        3       21      +18     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
.github/workflows/coverage.yml (3)

13-17: setup-node 可能多余,可考虑移除或明确其用途

在同一个作业里已经使用 Bun 运行测试和安装依赖;Bun 自带 Node API 兼容层,通常不再需要额外装 Node。
如无其他纯 Node 步骤(如 npmnpx 或 TypeScript CLI)可直接删除,能节约 5-6 s 的 CI 时间。

-      - name: Use Node.js 20
-        uses: actions/setup-node@v4
-        with:
-          node-version: 20

18-20: 开启 Bun 缓存,加速安装

oven-sh/setup-bun@v2 已内置缓存功能,建议显式开启;同时用 bun install --frozen-lockfile(或 bun pm install) 保证锁文件一致性。

-      - uses: oven-sh/setup-bun@v2
-      - run: bun install
+      - uses: oven-sh/setup-bun@v2
+        with:
+          cache: true   # 复用 ~/.cache/bun
+      - run: bun install --frozen-lockfile

21-21: Codecov 步骤缺少覆盖率文件路径,自动探测可能失败

如果 bun run test:coverage 将覆盖率输出到自定义目录(常见 coverage/coverage/lcov.info),建议在 Codecov Action 中显式指定 filesflags,否则偶发上传空报告。

-      - uses: codecov/codecov-action@v5
+      - uses: codecov/codecov-action@v5
+        with:
+          files: ./coverage/lcov.info
+          flags: unittests
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae6f418 and 1a60a7c.

📒 Files selected for processing (4)
  • .github/workflows/coverage.yml (1 hunks)
  • .github/workflows/preview-build.yml (1 hunks)
  • biome.json (1 hunks)
  • package.json (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .github/workflows/preview-build.yml
🚧 Files skipped from review as they are similar to previous changes (2)
  • biome.json
  • package.json
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: build (20, windows-latest)
  • GitHub Check: build-preview
  • GitHub Check: build (20, windows-latest)
🔇 Additional comments (1)
.github/workflows/coverage.yml (1)

12-12: 升级到 actions/checkout@v4 👍

跟随官方推荐使用 v4,没问题。

@afc163 afc163 merged commit 0256b12 into master Jul 4, 2025
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants