Commit e63a9de2 by chunhong.mu

chore(root): use Changesets for versioning

parent 35cd3d68
{
"$schema": "https://unpkg.com/@changesets/config@3.1.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "dev",
"updateInternalDependencies": "patch",
"ignore": [],
"privatePackages": {
"version": true,
"tag": true
},
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}
...@@ -504,12 +504,25 @@ pnpm git:dev-done official-site-web # 合并回 dev ...@@ -504,12 +504,25 @@ pnpm git:dev-done official-site-web # 合并回 dev
pnpm git:deploy-staging # dev → staging pnpm git:deploy-staging # dev → staging
``` ```
**3. 发布生产** **3. 发布生产**(Changesets 独立版本)
```bash ```bash
pnpm git:deploy-release v1.0.0 # staging → release,自动打 tag # 日常开发时记录变更
pnpm changeset
# 选择变更的包和版本类型(major/minor/patch)
# 填写变更说明
# 发布到生产(自动 bump 版本 + 创建独立 tag)
pnpm git:deploy-release
# 或分步执行:
pnpm release # = pnpm changeset:version && pnpm changeset:publish
``` ```
发布后会自动为每个包创建独立 tag,例如:
- `official-site-web@1.2.0`
- `@common/utils@1.0.1`
- `@common/vue-kit@2.0.0`
**4. 紧急修复** **4. 紧急修复**
```bash ```bash
...@@ -526,7 +539,101 @@ pnpm git:refactor-start # 创建/切换到 refactor 分支 ...@@ -526,7 +539,101 @@ pnpm git:refactor-start # 创建/切换到 refactor 分支
pnpm git:refactor-done # 合并到 dev pnpm git:refactor-done # 合并到 dev
``` ```
### 6.6 提交规范 ### 6.7 Changesets 独立版本管理
#### 6.7.1 核心概念
本项目采用 **Changesets** 实现 Monorepo 下子包的独立版本管理:
- **独立版本号**:每个子包独立 bump 版本,互不影响
- **独立 Git Tag**:每个包发布时创建独立 tag(如 `official-site-web@1.2.0`
- **按需构建**:CI/CD 只构建有变更的子包
- **独立回滚**:可单独回滚某个包到指定版本,不影响其他包
#### 6.7.2 日常开发流程
**1. 开发时记录变更**
```bash
pnpm changeset
```
交互式选择:
- 选择哪些包有变更
- 版本类型:`major`(主版本)、`minor`(次版本)、`patch`(补丁)
- 填写变更说明(会生成 CHANGELOG)
这会生成 `.changeset/xxx.md` 文件,例如:
```markdown
---
"official-site-web": minor
"@common/utils": patch
---
feat: 添加首页 banner 功能
```
**2. 只构建变更的包**
```bash
pnpm build:changed
```
自动检测自上次发布以来有变更的包,并只构建它们。
**3. 发布到生产**
```bash
pnpm git:deploy-release
```
执行流程:
1. `changeset version` - 自动 bump 版本号,生成 CHANGELOG
2. 提交版本变更到 staging 分支
3. 合并 staging 到 release
4. `changeset publish` - 发布包并创建独立 tag
5. 推送 release 分支和所有 tag
#### 6.7.3 版本回滚
```bash
# 只回滚官网到 v1.0.0,不影响其他包
git checkout official-site-web@1.0.0 -- packages/official-site-web/
# 回滚后重新构建部署
pnpm --filter=official-site-web build
```
#### 6.7.4 Tag 命名规范
| 包名 | Tag 格式 | 示例 |
|------|---------|------|
| `official-site-web` | `official-site-web@<version>` | `official-site-web@1.2.0` |
| `@common/utils` | `@common/utils@<version>` | `@common/utils@1.0.1` |
| `@common/vue-kit` | `@common/vue-kit@<version>` | `@common/vue-kit@2.0.0` |
#### 6.7.5 CI/CD 集成示例
```yaml
# GitHub Actions 示例
jobs:
build:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # 获取完整 git 历史用于 changeset 检测
- name: Detect changed packages
run: pnpm build:changed
- name: Publish
if: github.ref == 'refs/heads/release'
run: |
pnpm changeset publish
git push --follow-tags
```
### 6.8 提交规范
Commit 信息格式:`type(scope): description` Commit 信息格式:`type(scope): description`
......
...@@ -18,10 +18,16 @@ ...@@ -18,10 +18,16 @@
"git:hotfix-done": "tsx scripts/git-workflow.ts hotfix-done", "git:hotfix-done": "tsx scripts/git-workflow.ts hotfix-done",
"git:refactor-start": "tsx scripts/git-workflow.ts refactor-start", "git:refactor-start": "tsx scripts/git-workflow.ts refactor-start",
"git:refactor-done": "tsx scripts/git-workflow.ts refactor-done", "git:refactor-done": "tsx scripts/git-workflow.ts refactor-done",
"new:project": "tsx scripts/new-project.ts" "new:project": "tsx scripts/new-project.ts",
"changeset": "changeset",
"changeset:version": "changeset version",
"changeset:publish": "changeset publish",
"release": "pnpm changeset:version && pnpm changeset:publish",
"build:changed": "tsx scripts/build-changed.ts"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^3.9.2", "@antfu/eslint-config": "^3.9.2",
"@changesets/cli": "^2.31.0",
"@commitlint/cli": "^19.5.0", "@commitlint/cli": "^19.5.0",
"@commitlint/config-conventional": "^19.5.0", "@commitlint/config-conventional": "^19.5.0",
"eslint-plugin-format": "^0.1.2", "eslint-plugin-format": "^0.1.2",
......
...@@ -11,6 +11,9 @@ importers: ...@@ -11,6 +11,9 @@ importers:
'@antfu/eslint-config': '@antfu/eslint-config':
specifier: ^3.9.2 specifier: ^3.9.2
version: 3.16.0(@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(@vue/compiler-sfc@3.5.38)(eslint-plugin-format@0.1.3(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) version: 3.16.0(@typescript-eslint/utils@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(@vue/compiler-sfc@3.5.38)(eslint-plugin-format@0.1.3(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@changesets/cli':
specifier: ^2.31.0
version: 2.31.0(@types/node@25.9.3)
'@commitlint/cli': '@commitlint/cli':
specifier: ^19.5.0 specifier: ^19.5.0
version: 19.8.1(@types/node@25.9.3)(typescript@5.9.3) version: 19.8.1(@types/node@25.9.3)(typescript@5.9.3)
...@@ -283,6 +286,61 @@ packages: ...@@ -283,6 +286,61 @@ packages:
commander: commander:
optional: true optional: true
'@changesets/apply-release-plan@7.1.1':
resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==}
'@changesets/assemble-release-plan@6.0.10':
resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==}
'@changesets/changelog-git@0.2.1':
resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==}
'@changesets/cli@2.31.0':
resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==}
hasBin: true
'@changesets/config@3.1.4':
resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==}
'@changesets/errors@0.2.0':
resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
'@changesets/get-dependents-graph@2.1.4':
resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==}
'@changesets/get-release-plan@4.0.16':
resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==}
'@changesets/get-version-range-type@0.4.0':
resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
'@changesets/git@3.0.4':
resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==}
'@changesets/logger@0.1.1':
resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
'@changesets/parse@0.4.3':
resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==}
'@changesets/pre@2.0.2':
resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==}
'@changesets/read@0.6.7':
resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==}
'@changesets/should-skip-package@0.1.2':
resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==}
'@changesets/types@4.1.0':
resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
'@changesets/types@6.1.0':
resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==}
'@changesets/write@0.4.0':
resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
'@clack/core@0.4.1': '@clack/core@0.4.1':
resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==} resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==}
...@@ -967,6 +1025,15 @@ packages: ...@@ -967,6 +1025,15 @@ packages:
'@iconify/utils@2.3.0': '@iconify/utils@2.3.0':
resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
'@inquirer/external-editor@1.0.3':
resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
peerDependenciesMeta:
'@types/node':
optional: true
'@ioredis/commands@1.10.0': '@ioredis/commands@1.10.0':
resolution: {integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==} resolution: {integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==}
...@@ -1003,6 +1070,12 @@ packages: ...@@ -1003,6 +1070,12 @@ packages:
'@kwsites/promise-deferred@1.1.1': '@kwsites/promise-deferred@1.1.1':
resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
'@manypkg/find-root@1.1.0':
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
'@manypkg/get-packages@1.1.3':
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
'@mapbox/node-pre-gyp@2.0.3': '@mapbox/node-pre-gyp@2.0.3':
resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==}
engines: {node: '>=18'} engines: {node: '>=18'}
...@@ -1865,6 +1938,9 @@ packages: ...@@ -1865,6 +1938,9 @@ packages:
'@types/ms@2.1.0': '@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
'@types/node@25.9.3': '@types/node@25.9.3':
resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==}
...@@ -2371,6 +2447,10 @@ packages: ...@@ -2371,6 +2447,10 @@ packages:
alien-signals@3.2.1: alien-signals@3.2.1:
resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==} resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==}
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
ansi-escapes@7.3.0: ansi-escapes@7.3.0:
resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
engines: {node: '>=18'} engines: {node: '>=18'}
...@@ -2417,6 +2497,9 @@ packages: ...@@ -2417,6 +2497,9 @@ packages:
resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
engines: {node: '>=14'} engines: {node: '>=14'}
argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
argparse@2.0.1: argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
...@@ -2426,6 +2509,10 @@ packages: ...@@ -2426,6 +2509,10 @@ packages:
array-tree-filter@2.1.0: array-tree-filter@2.1.0:
resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
ast-kit@2.2.0: ast-kit@2.2.0:
resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==}
engines: {node: '>=20.19.0'} engines: {node: '>=20.19.0'}
...@@ -2514,6 +2601,10 @@ packages: ...@@ -2514,6 +2601,10 @@ packages:
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
hasBin: true hasBin: true
better-path-resolve@1.0.0:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
binary-extensions@2.3.0: binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'} engines: {node: '>=8'}
...@@ -2609,6 +2700,9 @@ packages: ...@@ -2609,6 +2700,9 @@ packages:
character-entities@2.0.2: character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
chardet@2.2.0:
resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==}
chokidar@3.6.0: chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'} engines: {node: '>= 8.10.0'}
...@@ -2930,6 +3024,10 @@ packages: ...@@ -2930,6 +3024,10 @@ packages:
destr@2.0.5: destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
detect-libc@2.1.2: detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
...@@ -2948,6 +3046,10 @@ packages: ...@@ -2948,6 +3046,10 @@ packages:
resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==}
engines: {node: '>=0.3.1'} engines: {node: '>=0.3.1'}
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
dom-align@1.12.4: dom-align@1.12.4:
resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
...@@ -3008,6 +3110,10 @@ packages: ...@@ -3008,6 +3110,10 @@ packages:
resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==} resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
enquirer@2.4.1:
resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
engines: {node: '>=8.6'}
entities@4.5.0: entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'} engines: {node: '>=0.12'}
...@@ -3276,6 +3382,11 @@ packages: ...@@ -3276,6 +3382,11 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
esquery@1.7.0: esquery@1.7.0:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'} engines: {node: '>=0.10'}
...@@ -3327,6 +3438,9 @@ packages: ...@@ -3327,6 +3438,9 @@ packages:
exsolve@1.0.8: exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
externality@1.0.2: externality@1.0.2:
resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==}
...@@ -3425,6 +3539,14 @@ packages: ...@@ -3425,6 +3539,14 @@ packages:
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
engines: {node: '>=6 <7 || >=8'}
fs-extra@8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
fsevents@2.3.3: fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
...@@ -3509,6 +3631,10 @@ packages: ...@@ -3509,6 +3631,10 @@ packages:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'} engines: {node: '>=18'}
globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
globby@16.2.0: globby@16.2.0:
resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==}
engines: {node: '>=20'} engines: {node: '>=20'}
...@@ -3565,6 +3691,10 @@ packages: ...@@ -3565,6 +3691,10 @@ packages:
httpxy@0.5.3: httpxy@0.5.3:
resolution: {integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==} resolution: {integrity: sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==}
human-id@4.2.0:
resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==}
hasBin: true
human-signals@5.0.0: human-signals@5.0.0:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'} engines: {node: '>=16.17.0'}
...@@ -3574,6 +3704,10 @@ packages: ...@@ -3574,6 +3704,10 @@ packages:
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
iconv-lite@0.7.2:
resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
engines: {node: '>=0.10.0'}
ieee754@1.2.1: ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
...@@ -3706,10 +3840,18 @@ packages: ...@@ -3706,10 +3840,18 @@ packages:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
is-subdir@1.2.0:
resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
engines: {node: '>=4'}
is-text-path@2.0.0: is-text-path@2.0.0:
resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==}
engines: {node: '>=8'} engines: {node: '>=8'}
is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
is-wsl@3.1.1: is-wsl@3.1.1:
resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==}
engines: {node: '>=16'} engines: {node: '>=16'}
...@@ -3753,6 +3895,10 @@ packages: ...@@ -3753,6 +3895,10 @@ packages:
js-tokens@9.0.1: js-tokens@9.0.1:
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
js-yaml@3.14.2:
resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
hasBin: true
js-yaml@4.2.0: js-yaml@4.2.0:
resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
hasBin: true hasBin: true
...@@ -3798,6 +3944,9 @@ packages: ...@@ -3798,6 +3944,9 @@ packages:
resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
jsonparse@1.3.1: jsonparse@1.3.1:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0} engines: {'0': node >= 0.2.0}
...@@ -4148,6 +4297,10 @@ packages: ...@@ -4148,6 +4297,10 @@ packages:
mocked-exports@0.1.1: mocked-exports@0.1.1:
resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==}
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
mrmime@2.0.1: mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
...@@ -4302,6 +4455,9 @@ packages: ...@@ -4302,6 +4455,9 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'} engines: {node: '>= 0.8.0'}
outdent@0.5.0:
resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
oxc-minify@0.132.0: oxc-minify@0.132.0:
resolution: {integrity: sha512-7h3fOlgDwkIYxxKfGwCNejaLhH90Pvx+fttdPN7nRbWHxm6QSYcxW3IKjfxQVUeg+z1X2HZdOSY3rHkVqgxH1g==} resolution: {integrity: sha512-7h3fOlgDwkIYxxKfGwCNejaLhH90Pvx+fttdPN7nRbWHxm6QSYcxW3IKjfxQVUeg+z1X2HZdOSY3rHkVqgxH1g==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
...@@ -4325,6 +4481,10 @@ packages: ...@@ -4325,6 +4481,10 @@ packages:
rolldown: rolldown:
optional: true optional: true
p-filter@2.1.0:
resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
engines: {node: '>=8'}
p-limit@2.3.0: p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'} engines: {node: '>=6'}
...@@ -4349,6 +4509,10 @@ packages: ...@@ -4349,6 +4509,10 @@ packages:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
p-map@2.1.0:
resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
engines: {node: '>=6'}
p-try@2.2.0: p-try@2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
...@@ -4356,6 +4520,9 @@ packages: ...@@ -4356,6 +4520,9 @@ packages:
package-json-from-dist@1.0.1: package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
package-manager-detector@0.2.11:
resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==}
package-manager-detector@1.6.0: package-manager-detector@1.6.0:
resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
...@@ -4411,6 +4578,10 @@ packages: ...@@ -4411,6 +4578,10 @@ packages:
resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
pathe@1.1.2: pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
...@@ -4439,6 +4610,10 @@ packages: ...@@ -4439,6 +4610,10 @@ packages:
engines: {node: '>=0.10'} engines: {node: '>=0.10'}
hasBin: true hasBin: true
pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
pinia@2.3.1: pinia@2.3.1:
resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==}
peerDependencies: peerDependencies:
...@@ -4647,6 +4822,11 @@ packages: ...@@ -4647,6 +4822,11 @@ packages:
resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
hasBin: true
prettier@3.8.4: prettier@3.8.4:
resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==} resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==}
engines: {node: '>=14'} engines: {node: '>=14'}
...@@ -4694,6 +4874,10 @@ packages: ...@@ -4694,6 +4874,10 @@ packages:
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
engines: {node: '>=8'} engines: {node: '>=8'}
read-yaml-file@1.1.0:
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
engines: {node: '>=6'}
readable-stream@2.3.8: readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
...@@ -4816,6 +5000,9 @@ packages: ...@@ -4816,6 +5000,9 @@ packages:
safe-buffer@5.2.1: safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
sax@1.6.0: sax@1.6.0:
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
engines: {node: '>=11.0.0'} engines: {node: '>=11.0.0'}
...@@ -4905,6 +5092,10 @@ packages: ...@@ -4905,6 +5092,10 @@ packages:
sisteransi@1.0.5: sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
slash@5.1.0: slash@5.1.0:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
...@@ -4936,6 +5127,9 @@ packages: ...@@ -4936,6 +5127,9 @@ packages:
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
engines: {node: '>= 12'} engines: {node: '>= 12'}
spawndamnit@3.0.1:
resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
spdx-correct@3.2.0: spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
...@@ -4955,6 +5149,9 @@ packages: ...@@ -4955,6 +5149,9 @@ packages:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'} engines: {node: '>= 10.x'}
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
srvx@0.11.16: srvx@0.11.16:
resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==} resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==}
engines: {node: '>=20.16.0'} engines: {node: '>=20.16.0'}
...@@ -5007,6 +5204,10 @@ packages: ...@@ -5007,6 +5204,10 @@ packages:
resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
engines: {node: '>=12'} engines: {node: '>=12'}
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
strip-final-newline@3.0.0: strip-final-newline@3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'} engines: {node: '>=12'}
...@@ -5081,6 +5282,10 @@ packages: ...@@ -5081,6 +5282,10 @@ packages:
teex@1.0.1: teex@1.0.1:
resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==}
term-size@2.2.1:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'}
terser-webpack-plugin@5.6.1: terser-webpack-plugin@5.6.1:
resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==}
engines: {node: '>= 10.13.0'} engines: {node: '>= 10.13.0'}
...@@ -5284,6 +5489,10 @@ packages: ...@@ -5284,6 +5489,10 @@ packages:
unist-util-visit@5.1.0: unist-util-visit@5.1.0:
resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
unocss@0.64.1: unocss@0.64.1:
resolution: {integrity: sha512-UTtK9TPneVht5r0cVEADS/N6970AoHhKvJKDkBPnk7OQdguIFPCykGyx4llukItzm0AoffGfwg5zQ+L8QJgupw==} resolution: {integrity: sha512-UTtK9TPneVht5r0cVEADS/N6970AoHhKvJKDkBPnk7OQdguIFPCykGyx4llukItzm0AoffGfwg5zQ+L8QJgupw==}
engines: {node: '>=14'} engines: {node: '>=14'}
...@@ -5959,6 +6168,149 @@ snapshots: ...@@ -5959,6 +6168,149 @@ snapshots:
citty: 0.2.2 citty: 0.2.2
commander: 13.1.0 commander: 13.1.0
'@changesets/apply-release-plan@7.1.1':
dependencies:
'@changesets/config': 3.1.4
'@changesets/get-version-range-type': 0.4.0
'@changesets/git': 3.0.4
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
detect-indent: 6.1.0
fs-extra: 7.0.1
lodash.startcase: 4.4.0
outdent: 0.5.0
prettier: 2.8.8
resolve-from: 5.0.0
semver: 7.8.4
'@changesets/assemble-release-plan@6.0.10':
dependencies:
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.4
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
semver: 7.8.4
'@changesets/changelog-git@0.2.1':
dependencies:
'@changesets/types': 6.1.0
'@changesets/cli@2.31.0(@types/node@25.9.3)':
dependencies:
'@changesets/apply-release-plan': 7.1.1
'@changesets/assemble-release-plan': 6.0.10
'@changesets/changelog-git': 0.2.1
'@changesets/config': 3.1.4
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.4
'@changesets/get-release-plan': 4.0.16
'@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
'@changesets/pre': 2.0.2
'@changesets/read': 0.6.7
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@changesets/write': 0.4.0
'@inquirer/external-editor': 1.0.3(@types/node@25.9.3)
'@manypkg/get-packages': 1.1.3
ansi-colors: 4.1.3
enquirer: 2.4.1
fs-extra: 7.0.1
mri: 1.2.0
package-manager-detector: 0.2.11
picocolors: 1.1.1
resolve-from: 5.0.0
semver: 7.8.4
spawndamnit: 3.0.1
term-size: 2.2.1
transitivePeerDependencies:
- '@types/node'
'@changesets/config@3.1.4':
dependencies:
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.4
'@changesets/logger': 0.1.1
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
fs-extra: 7.0.1
micromatch: 4.0.8
'@changesets/errors@0.2.0':
dependencies:
extendable-error: 0.1.7
'@changesets/get-dependents-graph@2.1.4':
dependencies:
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
picocolors: 1.1.1
semver: 7.8.4
'@changesets/get-release-plan@4.0.16':
dependencies:
'@changesets/assemble-release-plan': 6.0.10
'@changesets/config': 3.1.4
'@changesets/pre': 2.0.2
'@changesets/read': 0.6.7
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
'@changesets/get-version-range-type@0.4.0': {}
'@changesets/git@3.0.4':
dependencies:
'@changesets/errors': 0.2.0
'@manypkg/get-packages': 1.1.3
is-subdir: 1.2.0
micromatch: 4.0.8
spawndamnit: 3.0.1
'@changesets/logger@0.1.1':
dependencies:
picocolors: 1.1.1
'@changesets/parse@0.4.3':
dependencies:
'@changesets/types': 6.1.0
js-yaml: 4.2.0
'@changesets/pre@2.0.2':
dependencies:
'@changesets/errors': 0.2.0
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
fs-extra: 7.0.1
'@changesets/read@0.6.7':
dependencies:
'@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
'@changesets/parse': 0.4.3
'@changesets/types': 6.1.0
fs-extra: 7.0.1
p-filter: 2.1.0
picocolors: 1.1.1
'@changesets/should-skip-package@0.1.2':
dependencies:
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
'@changesets/types@4.1.0': {}
'@changesets/types@6.1.0': {}
'@changesets/write@0.4.0':
dependencies:
'@changesets/types': 6.1.0
fs-extra: 7.0.1
human-id: 4.2.0
prettier: 2.8.8
'@clack/core@0.4.1': '@clack/core@0.4.1':
dependencies: dependencies:
picocolors: 1.1.1 picocolors: 1.1.1
...@@ -6489,6 +6841,13 @@ snapshots: ...@@ -6489,6 +6841,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@inquirer/external-editor@1.0.3(@types/node@25.9.3)':
dependencies:
chardet: 2.2.0
iconv-lite: 0.7.2
optionalDependencies:
'@types/node': 25.9.3
'@ioredis/commands@1.10.0': {} '@ioredis/commands@1.10.0': {}
'@isaacs/cliui@8.0.2': '@isaacs/cliui@8.0.2':
...@@ -6536,6 +6895,22 @@ snapshots: ...@@ -6536,6 +6895,22 @@ snapshots:
'@kwsites/promise-deferred@1.1.1': {} '@kwsites/promise-deferred@1.1.1': {}
'@manypkg/find-root@1.1.0':
dependencies:
'@babel/runtime': 7.29.7
'@types/node': 12.20.55
find-up: 4.1.0
fs-extra: 8.1.0
'@manypkg/get-packages@1.1.3':
dependencies:
'@babel/runtime': 7.29.7
'@changesets/types': 4.1.0
'@manypkg/find-root': 1.1.0
fs-extra: 8.1.0
globby: 11.1.0
read-yaml-file: 1.1.0
'@mapbox/node-pre-gyp@2.0.3': '@mapbox/node-pre-gyp@2.0.3':
dependencies: dependencies:
consola: 3.4.2 consola: 3.4.2
...@@ -7350,6 +7725,8 @@ snapshots: ...@@ -7350,6 +7725,8 @@ snapshots:
'@types/ms@2.1.0': {} '@types/ms@2.1.0': {}
'@types/node@12.20.55': {}
'@types/node@25.9.3': '@types/node@25.9.3':
dependencies: dependencies:
undici-types: 7.24.6 undici-types: 7.24.6
...@@ -8025,6 +8402,8 @@ snapshots: ...@@ -8025,6 +8402,8 @@ snapshots:
alien-signals@3.2.1: {} alien-signals@3.2.1: {}
ansi-colors@4.1.3: {}
ansi-escapes@7.3.0: ansi-escapes@7.3.0:
dependencies: dependencies:
environment: 1.1.0 environment: 1.1.0
...@@ -8098,12 +8477,18 @@ snapshots: ...@@ -8098,12 +8477,18 @@ snapshots:
are-docs-informative@0.0.2: {} are-docs-informative@0.0.2: {}
argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3
argparse@2.0.1: {} argparse@2.0.1: {}
array-ify@1.0.0: {} array-ify@1.0.0: {}
array-tree-filter@2.1.0: {} array-tree-filter@2.1.0: {}
array-union@2.1.0: {}
ast-kit@2.2.0: ast-kit@2.2.0:
dependencies: dependencies:
'@babel/parser': 7.29.7 '@babel/parser': 7.29.7
...@@ -8172,6 +8557,10 @@ snapshots: ...@@ -8172,6 +8557,10 @@ snapshots:
baseline-browser-mapping@2.10.38: {} baseline-browser-mapping@2.10.38: {}
better-path-resolve@1.0.0:
dependencies:
is-windows: 1.0.2
binary-extensions@2.3.0: {} binary-extensions@2.3.0: {}
bindings@1.5.0: bindings@1.5.0:
...@@ -8270,6 +8659,8 @@ snapshots: ...@@ -8270,6 +8659,8 @@ snapshots:
character-entities@2.0.2: {} character-entities@2.0.2: {}
chardet@2.2.0: {}
chokidar@3.6.0: chokidar@3.6.0:
dependencies: dependencies:
anymatch: 3.1.3 anymatch: 3.1.3
...@@ -8557,6 +8948,8 @@ snapshots: ...@@ -8557,6 +8948,8 @@ snapshots:
destr@2.0.5: {} destr@2.0.5: {}
detect-indent@6.1.0: {}
detect-libc@2.1.2: {} detect-libc@2.1.2: {}
devalue@5.8.1: {} devalue@5.8.1: {}
...@@ -8569,6 +8962,10 @@ snapshots: ...@@ -8569,6 +8962,10 @@ snapshots:
diff@8.0.4: {} diff@8.0.4: {}
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
dom-align@1.12.4: {} dom-align@1.12.4: {}
dom-scroll-into-view@2.0.1: {} dom-scroll-into-view@2.0.1: {}
...@@ -8622,6 +9019,11 @@ snapshots: ...@@ -8622,6 +9019,11 @@ snapshots:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
tapable: 2.3.3 tapable: 2.3.3
enquirer@2.4.1:
dependencies:
ansi-colors: 4.1.3
strip-ansi: 6.0.1
entities@4.5.0: {} entities@4.5.0: {}
entities@7.0.1: {} entities@7.0.1: {}
...@@ -9036,6 +9438,8 @@ snapshots: ...@@ -9036,6 +9438,8 @@ snapshots:
acorn-jsx: 5.3.2(acorn@8.17.0) acorn-jsx: 5.3.2(acorn@8.17.0)
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
esquery@1.7.0: esquery@1.7.0:
dependencies: dependencies:
estraverse: 5.3.0 estraverse: 5.3.0
...@@ -9084,6 +9488,8 @@ snapshots: ...@@ -9084,6 +9488,8 @@ snapshots:
exsolve@1.0.8: {} exsolve@1.0.8: {}
extendable-error@0.1.7: {}
externality@1.0.2: externality@1.0.2:
dependencies: dependencies:
enhanced-resolve: 5.24.0 enhanced-resolve: 5.24.0
...@@ -9179,6 +9585,18 @@ snapshots: ...@@ -9179,6 +9585,18 @@ snapshots:
fresh@2.0.0: {} fresh@2.0.0: {}
fs-extra@7.0.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
fs-extra@8.1.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
fsevents@2.3.3: fsevents@2.3.3:
optional: true optional: true
...@@ -9249,6 +9667,15 @@ snapshots: ...@@ -9249,6 +9667,15 @@ snapshots:
globals@15.15.0: {} globals@15.15.0: {}
globby@11.1.0:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.3
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
globby@16.2.0: globby@16.2.0:
dependencies: dependencies:
'@sindresorhus/merge-streams': 4.0.0 '@sindresorhus/merge-streams': 4.0.0
...@@ -9315,10 +9742,16 @@ snapshots: ...@@ -9315,10 +9742,16 @@ snapshots:
httpxy@0.5.3: {} httpxy@0.5.3: {}
human-id@4.2.0: {}
human-signals@5.0.0: {} human-signals@5.0.0: {}
husky@9.1.7: {} husky@9.1.7: {}
iconv-lite@0.7.2:
dependencies:
safer-buffer: 2.1.2
ieee754@1.2.1: {} ieee754@1.2.1: {}
ignore@5.3.2: {} ignore@5.3.2: {}
...@@ -9435,10 +9868,16 @@ snapshots: ...@@ -9435,10 +9868,16 @@ snapshots:
is-stream@3.0.0: {} is-stream@3.0.0: {}
is-subdir@1.2.0:
dependencies:
better-path-resolve: 1.0.0
is-text-path@2.0.0: is-text-path@2.0.0:
dependencies: dependencies:
text-extensions: 2.4.0 text-extensions: 2.4.0
is-windows@1.0.2: {}
is-wsl@3.1.1: is-wsl@3.1.1:
dependencies: dependencies:
is-inside-container: 1.0.0 is-inside-container: 1.0.0
...@@ -9473,6 +9912,11 @@ snapshots: ...@@ -9473,6 +9912,11 @@ snapshots:
js-tokens@9.0.1: {} js-tokens@9.0.1: {}
js-yaml@3.14.2:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
js-yaml@4.2.0: js-yaml@4.2.0:
dependencies: dependencies:
argparse: 2.0.1 argparse: 2.0.1
...@@ -9504,6 +9948,10 @@ snapshots: ...@@ -9504,6 +9948,10 @@ snapshots:
espree: 9.6.1 espree: 9.6.1
semver: 7.8.4 semver: 7.8.4
jsonfile@4.0.0:
optionalDependencies:
graceful-fs: 4.2.11
jsonparse@1.3.1: {} jsonparse@1.3.1: {}
keyv@4.5.4: keyv@4.5.4:
...@@ -10047,6 +10495,8 @@ snapshots: ...@@ -10047,6 +10495,8 @@ snapshots:
mocked-exports@0.1.1: {} mocked-exports@0.1.1: {}
mri@1.2.0: {}
mrmime@2.0.1: {} mrmime@2.0.1: {}
ms@2.1.3: {} ms@2.1.3: {}
...@@ -10390,6 +10840,8 @@ snapshots: ...@@ -10390,6 +10840,8 @@ snapshots:
type-check: 0.4.0 type-check: 0.4.0
word-wrap: 1.2.5 word-wrap: 1.2.5
outdent@0.5.0: {}
oxc-minify@0.132.0: oxc-minify@0.132.0:
optionalDependencies: optionalDependencies:
'@oxc-minify/binding-android-arm-eabi': 0.132.0 '@oxc-minify/binding-android-arm-eabi': 0.132.0
...@@ -10467,6 +10919,10 @@ snapshots: ...@@ -10467,6 +10919,10 @@ snapshots:
optionalDependencies: optionalDependencies:
oxc-parser: 0.132.0 oxc-parser: 0.132.0
p-filter@2.1.0:
dependencies:
p-map: 2.1.0
p-limit@2.3.0: p-limit@2.3.0:
dependencies: dependencies:
p-try: 2.2.0 p-try: 2.2.0
...@@ -10491,10 +10947,16 @@ snapshots: ...@@ -10491,10 +10947,16 @@ snapshots:
dependencies: dependencies:
p-limit: 4.0.0 p-limit: 4.0.0
p-map@2.1.0: {}
p-try@2.2.0: {} p-try@2.2.0: {}
package-json-from-dist@1.0.1: {} package-json-from-dist@1.0.1: {}
package-manager-detector@0.2.11:
dependencies:
quansync: 0.2.11
package-manager-detector@1.6.0: {} package-manager-detector@1.6.0: {}
parent-module@1.0.1: parent-module@1.0.1:
...@@ -10540,6 +11002,8 @@ snapshots: ...@@ -10540,6 +11002,8 @@ snapshots:
lru-cache: 11.5.1 lru-cache: 11.5.1
minipass: 7.1.3 minipass: 7.1.3
path-type@4.0.0: {}
pathe@1.1.2: {} pathe@1.1.2: {}
pathe@2.0.3: {} pathe@2.0.3: {}
...@@ -10556,6 +11020,8 @@ snapshots: ...@@ -10556,6 +11020,8 @@ snapshots:
pidtree@0.6.1: {} pidtree@0.6.1: {}
pify@4.0.1: {}
pinia@2.3.1(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)): pinia@2.3.1(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
dependencies: dependencies:
'@vue/devtools-api': 6.6.4 '@vue/devtools-api': 6.6.4
...@@ -10757,6 +11223,8 @@ snapshots: ...@@ -10757,6 +11223,8 @@ snapshots:
dependencies: dependencies:
fast-diff: 1.3.0 fast-diff: 1.3.0
prettier@2.8.8: {}
prettier@3.8.4: {} prettier@3.8.4: {}
pretty-bytes@7.1.0: {} pretty-bytes@7.1.0: {}
...@@ -10799,6 +11267,13 @@ snapshots: ...@@ -10799,6 +11267,13 @@ snapshots:
parse-json: 5.2.0 parse-json: 5.2.0
type-fest: 0.6.0 type-fest: 0.6.0
read-yaml-file@1.1.0:
dependencies:
graceful-fs: 4.2.11
js-yaml: 3.14.2
pify: 4.0.1
strip-bom: 3.0.0
readable-stream@2.3.8: readable-stream@2.3.8:
dependencies: dependencies:
core-util-is: 1.0.3 core-util-is: 1.0.3
...@@ -10932,6 +11407,8 @@ snapshots: ...@@ -10932,6 +11407,8 @@ snapshots:
safe-buffer@5.2.1: {} safe-buffer@5.2.1: {}
safer-buffer@2.1.2: {}
sax@1.6.0: {} sax@1.6.0: {}
schema-utils@4.3.3: schema-utils@4.3.3:
...@@ -11032,6 +11509,8 @@ snapshots: ...@@ -11032,6 +11509,8 @@ snapshots:
sisteransi@1.0.5: {} sisteransi@1.0.5: {}
slash@3.0.0: {}
slash@5.1.0: {} slash@5.1.0: {}
slice-ansi@5.0.0: slice-ansi@5.0.0:
...@@ -11057,6 +11536,11 @@ snapshots: ...@@ -11057,6 +11536,11 @@ snapshots:
source-map@0.7.6: {} source-map@0.7.6: {}
spawndamnit@3.0.1:
dependencies:
cross-spawn: 7.0.6
signal-exit: 4.1.0
spdx-correct@3.2.0: spdx-correct@3.2.0:
dependencies: dependencies:
spdx-expression-parse: 3.0.1 spdx-expression-parse: 3.0.1
...@@ -11078,6 +11562,8 @@ snapshots: ...@@ -11078,6 +11562,8 @@ snapshots:
split2@4.2.0: {} split2@4.2.0: {}
sprintf-js@1.0.3: {}
srvx@0.11.16: {} srvx@0.11.16: {}
stable-hash-x@0.2.0: {} stable-hash-x@0.2.0: {}
...@@ -11133,6 +11619,8 @@ snapshots: ...@@ -11133,6 +11619,8 @@ snapshots:
dependencies: dependencies:
ansi-regex: 6.2.2 ansi-regex: 6.2.2
strip-bom@3.0.0: {}
strip-final-newline@3.0.0: {} strip-final-newline@3.0.0: {}
strip-indent@3.0.0: strip-indent@3.0.0:
...@@ -11216,6 +11704,8 @@ snapshots: ...@@ -11216,6 +11704,8 @@ snapshots:
- bare-abort-controller - bare-abort-controller
- react-native-b4a - react-native-b4a
term-size@2.2.1: {}
terser-webpack-plugin@5.6.1(esbuild@0.23.1)(postcss@8.5.15)(webpack@5.107.2(esbuild@0.23.1)(postcss@8.5.15)): terser-webpack-plugin@5.6.1(esbuild@0.23.1)(postcss@8.5.15)(webpack@5.107.2(esbuild@0.23.1)(postcss@8.5.15)):
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.31 '@jridgewell/trace-mapping': 0.3.31
...@@ -11381,6 +11871,8 @@ snapshots: ...@@ -11381,6 +11871,8 @@ snapshots:
unist-util-is: 6.0.1 unist-util-is: 6.0.1
unist-util-visit-parents: 6.0.2 unist-util-visit-parents: 6.0.2
universalify@0.1.2: {}
unocss@0.64.1(@unocss/webpack@0.64.1(rollup@4.62.0)(webpack@5.107.2(esbuild@0.23.1)(postcss@8.5.15)))(postcss@8.5.15)(rollup@4.62.0)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)): unocss@0.64.1(@unocss/webpack@0.64.1(rollup@4.62.0)(webpack@5.107.2(esbuild@0.23.1)(postcss@8.5.15)))(postcss@8.5.15)(rollup@4.62.0)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)):
dependencies: dependencies:
'@unocss/astro': 0.64.1(rollup@4.62.0)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) '@unocss/astro': 0.64.1(rollup@4.62.0)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3))
......
import { execSync } from 'node:child_process'
import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
/**
* 构建自上次发布以来有变更的子包
* 原理:通过 changeset status 获取变更包列表,然后逐个构建
*/
function run(cmd: string): string
{
return execSync(cmd, { encoding: 'utf-8' }).trim()
}
function main()
{
console.log('Detecting changed packages since last release...\n')
try
{
// 获取 changeset 状态(JSON 格式)
const statusOutput = run('pnpm changeset status --output=json')
const status = JSON.parse(statusOutput)
if (!status.releases || status.releases.length === 0)
{
console.log('No changed packages detected. Nothing to build.')
return
}
const changedPackages = status.releases.map((r: { name: string }) => r.name)
console.log(`Found ${changedPackages.length} changed package(s):`)
changedPackages.forEach((pkg: string) => console.log(` - ${pkg}`))
console.log('')
// 读取 pnpm-workspace.yaml 获取包路径映射
const workspaceConfig = readFileSync(resolve(process.cwd(), 'pnpm-workspace.yaml'), 'utf-8')
console.log('Building changed packages...\n')
// 使用 pnpm filter 只构建变更的包
for (const pkg of changedPackages)
{
console.log(`\n>>> Building ${pkg}...`)
try
{
run(`pnpm --filter=${pkg} run build`)
console.log(`>>> ${pkg} built successfully`)
}
catch (error: any)
{
console.error(`>>> Failed to build ${pkg}:`, error.message)
process.exit(1)
}
}
console.log('\nAll changed packages built successfully!')
}
catch (error: any)
{
if (error.message?.includes('No unreleased changesets found'))
{
console.log('No unreleased changesets found. Nothing to build.')
}
else
{
console.error('Error detecting changed packages:', error.message)
process.exit(1)
}
}
}
main()
...@@ -118,32 +118,39 @@ const commands = { ...@@ -118,32 +118,39 @@ const commands = {
console.log('Deployed to staging') console.log('Deployed to staging')
}, },
/** /**
* 部署到生产环境(release) * 部署到生产环境(release)- 集成 Changesets 独立版本
* 步骤: * 步骤:
* 1. 检查工作区是否干净 * 1. 检查工作区是否干净
* 2. 切换到 release 分支并拉取最新代码 * 2. 执行 changeset version 自动 bump 版本
* 3. 合并 staging 到 release * 3. 切换到 release 分支并拉取最新代码
* 4. 打版本 tag * 4. 合并 staging 到 release
* 5. 推送 release 分支和 tag 到远程 * 5. 执行 changeset publish 发布(自动为每个包创建独立 tag)
* 6. 推送 release 分支和所有 tag 到远程
*/ */
'deploy-release': () => 'deploy-release': () =>
{ {
checkCleanWorkingTree() checkCleanWorkingTree()
const version = process.argv[3] console.log('Deploying staging to release with Changesets...')
if (!version)
{ // 先执行 changeset version 更新版本号
console.error('Usage: pnpm git:deploy-release <version>') console.log('Running changeset version...')
console.error('Example: pnpm git:deploy-release v1.0.0') run('pnpm changeset version')
process.exit(1)
} // 提交版本变更
console.log(`Deploying staging to release (${version})...`) run('git add .')
run('git commit -m "chore(root): version packages [skip ci]"')
console.log('Switching to release branch...')
run('git checkout release') run('git checkout release')
run('git pull origin release') run('git pull origin release')
run('git merge staging --no-ff --no-edit') run('git merge staging --no-ff --no-edit')
run(`git tag -a ${version} -m "release ${version}"`) run('git push origin release')
run(`git push origin release`)
run(`git push origin ${version}`) // 推送所有新创建的 tag
console.log(`Deployed to release with tag ${version}`) console.log('Pushing tags...')
run('git push --follow-tags')
console.log('Deployed to release with independent package tags')
}, },
/** /**
* 创建或切换到 hotfix 分支(唯一分支) * 创建或切换到 hotfix 分支(唯一分支)
...@@ -242,11 +249,18 @@ if (!command || !commands[command]) ...@@ -242,11 +249,18 @@ if (!command || !commands[command])
console.log(' pnpm git:dev-start <project> - Create or switch to dev/<project> branch') console.log(' pnpm git:dev-start <project> - Create or switch to dev/<project> branch')
console.log(' pnpm git:dev-done <project> - Merge dev/<project> into dev') console.log(' pnpm git:dev-done <project> - Merge dev/<project> into dev')
console.log(' pnpm git:deploy-staging - Deploy dev to staging') console.log(' pnpm git:deploy-staging - Deploy dev to staging')
console.log(' pnpm git:deploy-release <version> - Deploy staging to release') console.log(' pnpm git:deploy-release - Deploy staging to release (with Changesets)')
console.log(' pnpm git:hotfix-start - Create or switch to hotfix branch') console.log(' pnpm git:hotfix-start - Create or switch to hotfix branch')
console.log(' pnpm git:hotfix-done - Complete hotfix, merge to release + dev') console.log(' pnpm git:hotfix-done - Complete hotfix, merge to release + dev')
console.log(' pnpm git:refactor-start - Create or switch to refactor branch') console.log(' pnpm git:refactor-start - Create or switch to refactor branch')
console.log(' pnpm git:refactor-done - Complete refactor, merge to dev') console.log(' pnpm git:refactor-done - Complete refactor, merge to dev')
console.log('')
console.log('Changesets Commands:')
console.log(' pnpm changeset - Create a new changeset')
console.log(' pnpm changeset:version - Apply changesets and bump versions')
console.log(' pnpm changeset:publish - Publish packages and create tags')
console.log(' pnpm release - Version + Publish (combined)')
console.log(' pnpm build:changed - Build only changed packages since last release')
process.exit(0) process.exit(0)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment