diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 000000000..ba127cfdf --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,23 @@ +# Changesets + +本仓库用 [changesets](https://github.com/changesets/changesets) 管理 `kimi-code-app` 的版本与发版。 + +与 kimi-code 仓库的区别:**不发布 npm**。发布物是桌面端安装包(dmg / zip / exe / AppImage / deb),以 GitHub Release(tag `v`)形式分发。 + +## 参与发版的包 + +只有 `kimi-code-app`(`apps/desktop`)。其余 workspace 包(web 共享包、kimi-code submodule 包)全部在 `.changeset/config.json` 的 `ignore` 里——写 changeset 时只会看到 kimi-desktop。 + +注意:desktop 的运行时代码包含 workspace 源码(`@moonshot-ai/web-*`、kimi-code 的 `kap-server` / `agent-core-v2` 等)。这些包的用户可见变化都要手动归因到 kimi-desktop 的 changeset 上,不要依赖依赖链自动 bump。 + +## 发版流程 + +1. 有用户可见变化时,在功能 PR 里跑 `pnpm changeset`,选 `kimi-code-app` 和 bump 级别(patch / minor / major),写面向用户的一句描述,把生成的 `.changeset/*.md` 一起提交。 +2. changeset 合入 `main` 后,`.github/workflows/release.yml` 里的 changesets/action 会自动开 / 更新一个 `ci: release desktop` 版本 PR(跑 `changeset version`:bump 版本号、更新 `apps/desktop/CHANGELOG.md`、删掉已消费的 changeset)。 +3. 人工 review 并合并版本 PR。workflow 检测到 `apps/desktop/package.json` 的版本还没有对应 tag 时: + - 调用 `desktop-build.yml`(签名 + 公证)并行打出四平台安装包; + - 创建 GitHub Release(tag `v`,release notes 自动生成); + - 把 dmg / zip / exe / AppImage / deb 全部上传为该 release 的 assets。 +4. 版本号与 tag 已存在则整段跳过(幂等);打包失败不会产生 tag,修复后重跑即可。 + +测试 / 重构 / 文档类改动通常不需要 changeset。 diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 000000000..e7791a52e --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,35 @@ +{ + "changelog": ["@changesets/changelog-github", { "repo": "MoonshotAI/kimi-code-app" }], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [ + "kimi-code-web", + "@moonshot-ai/acp-adapter", + "@moonshot-ai/agent-core", + "@moonshot-ai/agent-core-v2", + "@moonshot-ai/kaos", + "@moonshot-ai/kap-server", + "@moonshot-ai/klient", + "@moonshot-ai/kosong", + "@moonshot-ai/migration-legacy", + "@moonshot-ai/minidb", + "@moonshot-ai/kimi-code-sdk", + "@moonshot-ai/kimi-code-oauth", + "@moonshot-ai/pi-tui", + "@moonshot-ai/protocol", + "@moonshot-ai/kimi-telemetry", + "@moonshot-ai/vite-preset", + "@moonshot-ai/web-core", + "@moonshot-ai/web-i18n", + "@moonshot-ai/web-markdown", + "@moonshot-ai/web-ui" + ], + "snapshot": { + "useCalculatedVersion": true, + "prereleaseTemplate": "{tag}-{commit}" + } +} diff --git a/.github/actions/macos-keychain-cleanup/action.yml b/.github/actions/macos-keychain-cleanup/action.yml new file mode 100644 index 000000000..1cc377a1c --- /dev/null +++ b/.github/actions/macos-keychain-cleanup/action.yml @@ -0,0 +1,12 @@ +name: macOS keychain cleanup +description: Delete the temporary keychain created by macos-keychain-setup. + +runs: + using: composite + steps: + - name: Cleanup keychain + shell: bash + run: | + if [[ -n "${APPLE_KEYCHAIN_PATH:-}" && -f "${APPLE_KEYCHAIN_PATH}" ]]; then + security delete-keychain "$APPLE_KEYCHAIN_PATH" || true + fi diff --git a/.github/actions/macos-keychain-setup/action.yml b/.github/actions/macos-keychain-setup/action.yml new file mode 100644 index 000000000..199f8ed7f --- /dev/null +++ b/.github/actions/macos-keychain-setup/action.yml @@ -0,0 +1,82 @@ +name: macOS keychain setup +description: | + Create a temporary keychain, import a Developer ID Application certificate, + discover the signing identity, and export APPLE_SIGNING_IDENTITY + + APPLE_KEYCHAIN_PATH to GITHUB_ENV for subsequent steps. Must be paired + with macos-keychain-cleanup in an if: always() step at job end. + +inputs: + certificate-p12: + description: Base64-encoded P12 certificate + required: true + certificate-password: + description: P12 password + required: true + +runs: + using: composite + steps: + - name: Import signing certificate + shell: bash + env: + APPLE_CERTIFICATE_P12: ${{ inputs.certificate-p12 }} + APPLE_CERTIFICATE_PASSWORD: ${{ inputs.certificate-password }} + KEYCHAIN_PASSWORD: actions + run: | + set -euo pipefail + + # 0. Validate inputs early — base64 decoding "" gives 0-byte .p12 → security import reports + # "SecKeychainItemImport: One or more parameters passed to a function were not valid" + # which is cryptic. Fail loudly here instead. + if [ -z "$APPLE_CERTIFICATE_P12" ]; then + echo "::error::APPLE_CERTIFICATE_P12 secret is empty. Configure it in repo settings, or pass sign-macos=false." + exit 1 + fi + if [ -z "$APPLE_CERTIFICATE_PASSWORD" ]; then + echo "::error::APPLE_CERTIFICATE_PASSWORD secret is empty." + exit 1 + fi + + # 1. Decode certificate + cert_path="${RUNNER_TEMP}/certificate.p12" + printf '%s' "$APPLE_CERTIFICATE_P12" | base64 -d > "$cert_path" + if [ ! -s "$cert_path" ]; then + echo "::error::Decoded certificate is empty. APPLE_CERTIFICATE_P12 secret value may not be valid base64." + exit 1 + fi + + # 2. Create temporary keychain (don't pollute runner default keychain) + keychain_path="${RUNNER_TEMP}/signing.keychain-db" + security create-keychain -p "$KEYCHAIN_PASSWORD" "$keychain_path" + security set-keychain-settings -lut 21600 "$keychain_path" + security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$keychain_path" + + # 3. Add to user keychain search list and set default + security list-keychains -d user -s "$keychain_path" $(security list-keychains -d user | tr -d '"') + security default-keychain -s "$keychain_path" + + # 4. Import cert, authorize codesign + security tools + security import "$cert_path" -k "$keychain_path" \ + -P "$APPLE_CERTIFICATE_PASSWORD" \ + -T /usr/bin/codesign -T /usr/bin/security + + # 5. Non-interactive private key access + security set-key-partition-list -S apple-tool:,apple: \ + -s -k "$KEYCHAIN_PASSWORD" "$keychain_path" > /dev/null + + # 6. Discover identity (don't hardcode team ID) + IDENTITY=$(security find-identity -v -p codesigning "$keychain_path" \ + | grep "Developer ID Application" | head -1 \ + | sed -n 's/.*"\(Developer ID Application[^"]*\)".*/\1/p') + + if [[ -z "$IDENTITY" ]]; then + echo "::error::No Developer ID Application identity found in keychain" + security find-identity -v -p codesigning "$keychain_path" + exit 1 + fi + + echo "Found signing identity: $IDENTITY" + echo "APPLE_SIGNING_IDENTITY=$IDENTITY" >> "$GITHUB_ENV" + echo "APPLE_KEYCHAIN_PATH=$keychain_path" >> "$GITHUB_ENV" + + rm -f "$cert_path" diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml new file mode 100644 index 000000000..afc5da946 --- /dev/null +++ b/.github/workflows/desktop-build.yml @@ -0,0 +1,162 @@ +name: desktop-build + +# 桌面端(Electron)安装包流水线:macOS arm64/x64、Windows x64、Linux x64。 +# 手动触发(Actions -> desktop-build -> Run workflow),产物只进 artifacts, +# 不做 Release / OSS 分发与自动更新。参考 kimi-code 仓库的同名 workflow。 +# +# macOS 默认用 Developer ID 证书签名 + notarize;Run workflow 时把 +# sign-macos 设为 false 可出未签名包。Windows / Linux 不签名 +#(Windows 会弹 SmartScreen)。 +# +# 需要的 secrets(Settings -> Secrets and variables -> Actions): +# APPLE_CERTIFICATE_P12 base64 编码的 Developer ID Application .p12 +# APPLE_CERTIFICATE_PASSWORD .p12 导出密码 +# APPLE_NOTARIZATION_KEY_P8 base64 编码的 App Store Connect API Key (.p8) +# APPLE_NOTARIZATION_KEY_ID API Key ID +# APPLE_NOTARIZATION_ISSUER_ID Issuer ID (UUID) +on: + workflow_dispatch: + inputs: + sign-macos: + description: '签名 + 公证 macOS 包(需要 APPLE_* secrets)' + required: false + type: boolean + default: true + retention-days: + description: 'Artifact 保留天数' + required: false + type: number + default: 7 + upload-artifact-prefix: + description: '上传的 artifact 名前缀' + required: false + type: string + default: 'kimi-code-app' + # release.yml 通过 workflow_call 调用本 workflow 打发版产物。 + workflow_call: + inputs: + sign-macos: + required: false + type: boolean + default: false + retention-days: + required: false + type: number + default: 7 + upload-artifact-prefix: + required: false + type: string + default: 'kimi-code-app' + secrets: + APPLE_CERTIFICATE_P12: + required: false + APPLE_CERTIFICATE_PASSWORD: + required: false + APPLE_NOTARIZATION_KEY_P8: + required: false + APPLE_NOTARIZATION_KEY_ID: + required: false + APPLE_NOTARIZATION_ISSUER_ID: + required: false + +permissions: + contents: read + +env: + # 单一开关,供下方各步骤的 if / env 条件复用。 + SIGN_MACOS: ${{ inputs.sign-macos }} + +jobs: + package: + name: package (${{ matrix.target }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: macos-15 + target: darwin-arm64 + - os: macos-15-intel + target: darwin-x64 + - os: windows-2025 + target: win32-x64 + - os: ubuntu-24.04 + target: linux-x64 + + steps: + - name: Checkout (with kimi-code submodule) + # desktop 经 workspace import kimi-code 的 packages 源码,必须拉 + # submodule;kimi-code 是公开仓,默认 GITHUB_TOKEN 即可。 + uses: actions/checkout@v6 + with: + submodules: recursive + + - name: Setup pnpm + uses: pnpm/action-setup@v6 + + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + # postinstall 会自动准备共享字体(prepare-fonts)并跑 electron-rebuild。 + run: pnpm install --frozen-lockfile + + - name: Setup macOS keychain (Developer ID) + if: runner.os == 'macOS' && env.SIGN_MACOS == 'true' + uses: ./.github/actions/macos-keychain-setup + with: + certificate-p12: ${{ secrets.APPLE_CERTIFICATE_P12 }} + certificate-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + + - name: Prepare CSC_NAME for electron-builder (macOS) + if: runner.os == 'macOS' && env.SIGN_MACOS == 'true' + shell: bash + run: | + # electron-builder 不认 CSC_NAME 里的 "Developer ID Application: " + # 前缀,剥掉后按团队名 + Team ID 匹配证书。 + name="${APPLE_SIGNING_IDENTITY}" + name="${name#Developer ID Application: }" + echo "CSC_NAME=$name" >> "$GITHUB_ENV" + + - name: Prepare notarization API key (macOS) + if: runner.os == 'macOS' && env.SIGN_MACOS == 'true' + shell: bash + env: + APPLE_NOTARIZATION_KEY_P8: ${{ secrets.APPLE_NOTARIZATION_KEY_P8 }} + run: | + set -euo pipefail + key_path="$RUNNER_TEMP/notary-AuthKey.p8" + printf '%s' "$APPLE_NOTARIZATION_KEY_P8" | base64 -d > "$key_path" + echo "APPLE_API_KEY=$key_path" >> "$GITHUB_ENV" + + - name: Build & package desktop app + shell: bash + env: + # macOS 签名由 env 驱动:sign-macos 时 electron-builder 用 keychain + # 里的 Developer ID 签名并经 notary API key 公证,否则出未签名包。 + CSC_IDENTITY_AUTO_DISCOVERY: ${{ (runner.os == 'macOS' && env.SIGN_MACOS == 'true') && 'true' || 'false' }} + CSC_KEYCHAIN: ${{ env.APPLE_KEYCHAIN_PATH }} + KIMI_DESKTOP_NOTARIZE: ${{ (runner.os == 'macOS' && env.SIGN_MACOS == 'true') && 'true' || 'false' }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} + APPLE_API_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} + run: pnpm --filter kimi-code-app run dist + + - name: Cleanup macOS keychain + if: always() && runner.os == 'macOS' && env.SIGN_MACOS == 'true' + uses: ./.github/actions/macos-keychain-cleanup + + - name: Upload installers + uses: actions/upload-artifact@v7 + with: + name: ${{ inputs.upload-artifact-prefix }}-${{ matrix.target }} + retention-days: ${{ inputs.retention-days }} + path: | + apps/desktop/dist-app/*.dmg + apps/desktop/dist-app/*.zip + apps/desktop/dist-app/*.exe + apps/desktop/dist-app/*.AppImage + apps/desktop/dist-app/*.deb + if-no-files-found: ignore diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..5155c305f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,130 @@ +name: Release + +# 参考 kimi-code 仓库的 release.yml,区别在于本仓不发布 npm——发布物是 +# 桌面端安装包,以 GitHub Release 形式分发。 +# +# 流程(push 到 main 时): +# 1. changesets/action 维护 "ci: release desktop" 版本 PR(有未消费的 +# changeset 时创建 / 更新;没有则跳过)。 +# 2. 版本 PR 合入后,检测到 apps/desktop/package.json 的版本还没有对应 +# tag,则调 desktop-build.yml(签名 + 公证)打出四平台安装包,创建 +# GitHub Release(tag v,notes 自动生成),并把 dmg / zip / +# exe / AppImage / deb 全部上传为该 release 的 assets。 +# +# 幂等:tag 已存在则整段跳过;tag 随 gh release create 在最后一步创建, +# 打包失败时不会留下悬空 tag,修复后重跑本 workflow 即可。 +on: + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +jobs: + release: + name: Release + runs-on: ubuntu-latest + if: github.repository_owner == 'MoonshotAI' + outputs: + desktop_release: ${{ steps.desktop-release.outputs.should_release }} + desktop_release_tag: ${{ steps.desktop-release.outputs.tag }} + desktop_release_sha: ${{ steps.desktop-release.outputs.sha }} + permissions: + contents: write # changesets/action 推版本 PR 分支 + pull-requests: write + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@v6 + + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Create release Pull Request + id: changesets + uses: changesets/action@v1 + with: + version: pnpm changeset version + commit: "ci: release desktop" + title: "ci: release desktop" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Resolve desktop release + id: desktop-release + shell: bash + run: | + set -euo pipefail + version=$(node -p "require('./apps/desktop/package.json').version") + tag="v${version}" + if git ls-remote --exit-code --tags origin "refs/tags/${tag}" > /dev/null 2>&1; then + echo "tag ${tag} already exists on origin — nothing to release" + echo "should_release=false" >> "$GITHUB_OUTPUT" + else + echo "will release ${tag} at ${GITHUB_SHA}" + { + echo "should_release=true" + echo "tag=${tag}" + echo "sha=${GITHUB_SHA}" + } >> "$GITHUB_OUTPUT" + fi + + desktop-artifacts: + name: Desktop release artifacts + needs: release + if: needs.release.outputs.desktop_release == 'true' + uses: ./.github/workflows/desktop-build.yml + with: + sign-macos: true + retention-days: 7 + upload-artifact-prefix: kimi-code-app + secrets: + APPLE_CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_NOTARIZATION_KEY_P8: ${{ secrets.APPLE_NOTARIZATION_KEY_P8 }} + APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} + APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} + + publish-desktop-assets: + name: Publish desktop release assets + needs: + - release + - desktop-artifacts + if: needs.release.outputs.desktop_release == 'true' + runs-on: ubuntu-latest + permissions: + contents: write # gh release create / upload + steps: + - name: Download installer artifacts + uses: actions/download-artifact@v8 + with: + pattern: kimi-code-app-* + path: dist-desktop-release + merge-multiple: true + + - name: Create GitHub Release and upload installers + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ needs.release.outputs.desktop_release_tag }} + RELEASE_SHA: ${{ needs.release.outputs.desktop_release_sha }} + run: | + set -euo pipefail + ls -la dist-desktop-release + # tag 一并创建,钉在触发本次发版的 merge commit 上(而不是当时的 + # main HEAD——打包期间 main 可能已前移)。 + gh release create "$RELEASE_TAG" \ + --target "$RELEASE_SHA" \ + --title "Kimi Code Desktop $RELEASE_TAG" \ + --generate-notes + gh release upload "$RELEASE_TAG" dist-desktop-release/* --clobber diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index ed28ec278..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,102 +0,0 @@ -# Kimi Code 桌面端打包流水线。 -# -# 当前阶段:全部 job 手动触发(在 Pipeline 页面点击运行),产物只进 GitLab -# artifacts(保留 7 天),不做 Release / OSS 分发,不做自动更新。 -# -# 使用前需要确认的外部条件: -# -# 1. Runner tags:下方 tags 是占位值,替换为实际 runner 的 tag。 -# - macOS runner 需预装 Xcode(xcrun/notarytool)、Node >= 24.15.0、 -# pnpm 10.33.0,且允许钥匙串(security/codesign)操作。 -# - 所有 runner 需要能访问 github.com(kimi-code 是 GitHub 上的公开 -# submodule,GIT_SUBMODULE_STRATEGY: recursive 会拉取它)。 -# -# 2. macOS 签名所需的 CI/CD 变量(Settings -> CI/CD -> Variables): -# APPLE_CERTIFICATE_P12 base64 编码的 Developer ID Application .p12 -# APPLE_CERTIFICATE_PASSWORD .p12 导出密码 -# APPLE_NOTARIZATION_KEY_P8 base64 编码的 App Store Connect API Key (.p8) -# APPLE_NOTARIZATION_KEY_ID API Key ID -# APPLE_NOTARIZATION_ISSUER_ID Issuer ID (UUID) -# 建议 masked;若值不满足 masking 规则则至少保持 protected。 -# 注意:protected 变量只在 protected branch/tag 的 pipeline 里可见—— -# 在普通特性分支上手动测试签名时,要么把该分支设为 protected, -# 要么临时取消变量的 protected 限制。 -# -# 3. 触发方式:任意分支 push 后都会产生 pipeline,4 个打包 job 处于手动状态, -# 点击即跑。默认 macOS 签名 + 公证;在 "Run pipeline" 页面传变量 -# DESKTOP_SIGN_MACOS=false 可出未签名包(win/linux 始终不签名)。 - -workflow: - rules: - - when: always - -stages: - - package - -variables: - DESKTOP_SIGN_MACOS: "true" - DESKTOP_DIST_DIR: apps/desktop/dist-app - -.desktop-package: - stage: package - when: manual - variables: - GIT_SUBMODULE_STRATEGY: recursive - # mac 签名 job 会在 before_script 里把它覆盖为 true(导出环境变量)。 - CSC_IDENTITY_AUTO_DISCOVERY: "false" - before_script: - - node --version - - pnpm --version - - pnpm install --frozen-lockfile - script: - - pnpm --filter @moonshot-ai/kimi-desktop run dist - artifacts: - expire_in: 7 days - paths: - - ${DESKTOP_DIST_DIR}/*.dmg - - ${DESKTOP_DIST_DIR}/*.zip - - ${DESKTOP_DIST_DIR}/*.exe - - ${DESKTOP_DIST_DIR}/*.AppImage - - ${DESKTOP_DIST_DIR}/*.deb - -package:macos-arm64: - extends: .desktop-package - tags: - - macos-arm64 # TODO: 替换为实际 macOS arm64 runner tag - before_script: - - source apps/desktop/scripts/ci/macos-sign-setup.sh - - node --version - - pnpm --version - - pnpm install --frozen-lockfile - after_script: - - bash apps/desktop/scripts/ci/macos-sign-cleanup.sh || true - artifacts: - name: kimi-desktop-darwin-arm64 - -package:macos-x64: - extends: .desktop-package - tags: - - macos-x64 # TODO: 替换为实际 macOS x64 runner tag - before_script: - - source apps/desktop/scripts/ci/macos-sign-setup.sh - - node --version - - pnpm --version - - pnpm install --frozen-lockfile - after_script: - - bash apps/desktop/scripts/ci/macos-sign-cleanup.sh || true - artifacts: - name: kimi-desktop-darwin-x64 - -package:windows-x64: - extends: .desktop-package - tags: - - windows # TODO: 替换为实际 Windows runner tag - artifacts: - name: kimi-desktop-win32-x64 - -package:linux-x64: - extends: .desktop-package - tags: - - linux # TODO: 替换为实际 Linux runner tag - artifacts: - name: kimi-desktop-linux-x64 diff --git a/AGENTS.md b/AGENTS.md index 0024fd0da..6208543fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,7 +12,7 @@ - **依赖方向 `code-app → kimi-code` 单向**:desktop 只经 `@moonshot-ai/*` 包名 import kimi-code 的 packages 源码,禁止跨包相对路径 import;`kimi-code` 不得 import `code-app`。 - `apps/web` 只依赖 `@moonshot-ai/{web-core,web-i18n,web-markdown,web-ui}` 共享包,不直接 import kimi-code 的包。 -- **不改包名**:`@moonshot-ai/kimi-web`、`@moonshot-ai/kimi-desktop`。 +- **不改包名**:`kimi-code-web`、`kimi-code-app`(两端原名 `@moonshot-ai/kimi-web` / `@moonshot-ai/kimi-desktop`,2026-07 更名)。 - **两端逐步分叉是既定方向**:desktop 的原生功能(经 `window.kimiDesktop` 桥接,如原生目录选择器)只在 `apps/desktop` 实现;web 刻意保留原有 daemon 接口实现,不回填。原生路径必须带无桥降级(探测不到桥时回退旧实现)。已分叉的功能点记录在 `apps/desktop/docs/native-todos.md`;改两端共有的文件前先查它,手动同步副本时保留 desktop 侧的分叉块。 - **开发顺序**:两端共有的 UI 改动优先在 `apps/desktop` 开发,开发完成后再同步到 `apps/web`(desktop 专属原生功能除外,见上条)。 - **不在本仓直接改 `kimi-code/` submodule 的内容**;kimi-code 侧改动在你的工作克隆里做(见"双仓工作流"),本仓只 bump submodule 指针。 @@ -22,12 +22,13 @@ ## 目录地图 -- `apps/desktop`:Electron 壳(`@moonshot-ai/kimi-desktop`)。`src/main/index.ts` 主进程入口(只做编排;窗口 `window.ts`、菜单 `menu.ts`、快捷键 `shortcuts.ts`、IPC `ipc.ts` + channel 常量 `ipc-channels.ts`、server 连接 `connect.ts`、启动失败页 `screens.ts`);`src/main/server.ts` 内嵌 server(`startDesktopServer`:回环 + 临时端口 + 独立 lock);`src/main/connect-target.ts` 外部 server 模式解析(`KIMI_SERVER_URL`,纯函数);`src/main/protocol.ts` `app://renderer` 协议映射(带 `..` 越界防护)。`pnpm dev` 走 `scripts/dev.mjs`:起 renderer 的 Vite dev server(默认 `http://127.0.0.1:5174`)并把实际端口经 `KIMI_RENDERER_DEV_URL` 传给主进程,`connect.ts` 据此加载 dev server(renderer HMR)并把该 origin 加进内嵌 server 的 CORS 白名单;主进程改动需重启 dev。主进程测试在 `tests/main/`,renderer 测试与源码同目录。细则见 `apps/desktop/README.md`。 -- `apps/web`:浏览器 Web UI(`@moonshot-ai/kimi-web`,Vue 3 + Vite + vue-i18n)。dev 时 Vite 把 `/api/v1`(REST + WS)代理到 `KIMI_SERVER_URL`(默认 `http://127.0.0.1:58627`)。 +- `apps/desktop`:Electron 壳(`kimi-code-app`)。`src/main/index.ts` 主进程入口(只做编排;窗口 `window.ts`、菜单 `menu.ts`、快捷键 `shortcuts.ts`、IPC `ipc.ts` + channel 常量 `ipc-channels.ts`、server 连接 `connect.ts`、启动失败页 `screens.ts`);`src/main/server.ts` 内嵌 server(`startDesktopServer`:回环 + 临时端口 + 独立 lock);`src/main/connect-target.ts` 外部 server 模式解析(`KIMI_SERVER_URL`,纯函数);`src/main/protocol.ts` `app://renderer` 协议映射(带 `..` 越界防护)。`pnpm dev` 走 `scripts/dev.mjs`:起 renderer 的 Vite dev server(默认 `http://127.0.0.1:5174`)并把实际端口经 `KIMI_RENDERER_DEV_URL` 传给主进程,`connect.ts` 据此加载 dev server(renderer HMR)并把该 origin 加进内嵌 server 的 CORS 白名单;主进程改动需重启 dev。主进程测试在 `tests/main/`,renderer 测试与源码同目录。细则见 `apps/desktop/README.md`。 +- `apps/web`:浏览器 Web UI(`kimi-code-web`,Vue 3 + Vite + vue-i18n)。dev 时 Vite 把 `/api/v1`(REST + WS)代理到 `KIMI_SERVER_URL`(默认 `http://127.0.0.1:58627`)。 - `packages/*`:`@moonshot-ai/{web-core,web-i18n,web-markdown,web-ui}` + `vite-preset`(exports→src,被 apps/web 与 desktop renderer 复用);`web-ui/src/assets/fonts` 保存字体许可证与本地生成(gitignored)的两端共用字体产物,install 的 root postinstall 以及 dev/build 前会由 `scripts/prepare-fonts.mjs` 下载、校验并转换,再由 Vite 打入最终产物。 - `kimi-code/`:git submodule(核心仓)。`kimi-code/packages/*` 提供 `kap-server`、`agent-core-v2`、`kimi-code-sdk` 等源码。 - `scripts/sync-web-to-kimi-code.mjs`:`apps/web/dist` → `/apps/kimi-code/dist-web`(`KIMI_CODE_REPO` 必传,指定目标 checkout)。 -- `.gitlab-ci.yml`:desktop 打包流水线(macOS arm64/x64、Windows、Linux 四个手动触发 job,产物只进 artifacts)。macOS 签名/公证脚本在 `apps/desktop/scripts/ci/`,所需的 5 个 `APPLE_*` CI/CD 变量与 runner 要求见文件头注释。CI 不可用时的本地替代:`apps/desktop/scripts/package-local-macos.sh`(复用 ci/ 的 setup/cleanup,只打 arm64)。 +- `.github/workflows/desktop-build.yml`:desktop 打包流水线(workflow_dispatch 手动触发 + workflow_call 供 release.yml 调用,matrix 出 macOS arm64/x64、Windows、Linux 四平台安装包,产物以 `kimi-code-app-` 命名进 artifacts)。macOS 签名/公证用 `.github/actions/macos-keychain-{setup,cleanup}` composite action(源自 kimi-code 仓同名 action),需在 repo Secrets 配置 5 个 `APPLE_*` secret,见 workflow 文件头注释;`sign-macos=false` 出未签名包。CI 不可用时的本地替代:`apps/desktop/scripts/package-local-macos.sh`(复用 `apps/desktop/scripts/ci/` 的 setup/cleanup shell 脚本,只打 arm64)。 +- `.github/workflows/release.yml` + `.changeset/`:desktop 发版流程(不发 npm)。功能 PR 带 `pnpm changeset` 生成的 changeset(只选 `kimi-code-app`,其余包全在 ignore 里)合入 main 后,action 自动开 `ci: release desktop` 版本 PR;版本 PR 合入即调 desktop-build 打四平台签名包,并创建 GitHub Release(tag `v`)挂上全部安装包。细节见 `.changeset/README.md`。 ## 常用命令 @@ -67,4 +68,4 @@ pnpm build # pnpm -r run build Token 通过 `KIMI_CODE_HOME` 共享:两边默认 `~/.kimi-code`,desktop 读到的正是外部 server 写入的 token 文件;server 用自定义 `KIMI_CODE_HOME` 启动时,`pnpm dev:desktop` 要传同一个。外部 server 使用 CLI 的 host 身份(不是 `kimi-desktop`),开发场景没有影响。不带 `KIMI_SERVER_URL` 时 `pnpm dev:desktop` 保持内嵌 server 行为。 - **bump submodule**:工作克隆推了新 commit 后,在 `kimi-code/` 里 `git fetch origin && git checkout `,回本仓根目录 `git add kimi-code && git commit -m "chore: bump kimi-code submodule"`。 -- **web 改动同步**:`pnpm --filter @moonshot-ai/kimi-web run build` → `KIMI_CODE_REPO= pnpm run sync:web`。 +- **web 改动同步**:`pnpm --filter kimi-code-web run build` → `KIMI_CODE_REPO= pnpm run sync:web`。 diff --git a/README.md b/README.md index 5043f4787..68117b6a4 100644 --- a/README.md +++ b/README.md @@ -50,15 +50,16 @@ pnpm dev:web # Web UI(Vite dev server,/api/v1 代理到 127.0.0.1:5862 ## 开发 - **联调 kimi-code 的 server 改动**:在你的 kimi-code 工作克隆里 `pnpm dev:server`,然后 `KIMI_SERVER_URL=http://127.0.0.1:58627 pnpm dev:desktop`(desktop 不再启动内嵌 server)。完整流程见 `AGENTS.md` 的"双仓工作流"。 -- **web 改动同步到 kimi-code**:先 `pnpm --filter @moonshot-ai/kimi-web run build`,再 `KIMI_CODE_REPO= pnpm sync:web`。 +- **web 改动同步到 kimi-code**:先 `pnpm --filter kimi-code-web run build`,再 `KIMI_CODE_REPO= pnpm sync:web`。 - **升级 submodule**:在 `kimi-code/` 内 checkout 目标 commit,然后在根目录提交 submodule 指针;新克隆或拉取后跑 `pnpm run sync` 对齐。 - **常用检查**:`pnpm test`、`pnpm lint`、`pnpm typecheck`、`pnpm build`。 - **本地打包并签名 macOS 包**:`pnpm package:macos`(CI 不可用时的替代,arm64;凭证与流程见 `apps/desktop/README.md` 的"打包"一节)。 +- **桌面端发版**:功能 PR 里跑 `pnpm changeset`(选 `kimi-code-app`)并提交生成的 changeset;合入 main 后 CI 自动开 `ci: release desktop` 版本 PR,版本 PR 合入即自动打四平台签名包并发 GitHub Release。完整流程见 `.changeset/README.md`。 ## 目录 -- `apps/desktop`:Electron 桌面端(`@moonshot-ai/kimi-desktop`) -- `apps/web`:浏览器 Web UI(`@moonshot-ai/kimi-web`) +- `apps/desktop`:Electron 桌面端(`kimi-code-app`) +- `apps/web`:浏览器 Web UI(`kimi-code-web`) - `packages/*`:web 共享包(web-core / web-i18n / web-markdown / web-ui / vite-preset);字体许可证及本地生成(不入 Git)的两端共用字体位于 `packages/web-ui/src/assets/fonts` - `scripts/prepare-fonts.mjs`:下载并校验共享源字体,再转换为 Vite/Electron 使用的 WOFF2;install/dev/build 会自动调用 - `kimi-code/`:核心仓 submodule(CLI / server / agent-core / packages) diff --git a/apps/desktop/README.md b/apps/desktop/README.md index 873aff967..3c44830ac 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -1,6 +1,6 @@ # Kimi Code -Electron 桌面客户端(产品名 **Kimi Code**,workspace 包 `@moonshot-ai/kimi-desktop`)。 +Electron 桌面客户端(产品名 **Kimi Code**,workspace 包 `kimi-code-app`)。 主进程在进程内直接启动 Kimi Code server,渲染进程加载一份 web UI 的副本,经自定义协议 `app://renderer` 提供给窗口。它不再 spawn 独立 server 可执行文件(SEA),也不再套壳远 程/共享 daemon 的网页。 @@ -56,14 +56,14 @@ pnpm dev:desktop # = scripts/dev.mjs:vite dev server(renderer HMR)+ 生产形态单独构建 renderer: ```bash -pnpm --filter @moonshot-ai/kimi-desktop run build:renderer # 产物 apps/desktop/desktop-dist/ +pnpm --filter kimi-code-app run build:renderer # 产物 apps/desktop/desktop-dist/ ``` 检查: ```bash -pnpm --filter @moonshot-ai/kimi-desktop run typecheck -pnpm --filter @moonshot-ai/kimi-desktop run test +pnpm --filter kimi-code-app run typecheck +pnpm --filter kimi-code-app run test ``` ## 现状:web 与 desktop 各维护一份 @@ -102,7 +102,7 @@ pnpm --filter @moonshot-ai/kimi-desktop run test ```bash # 本机未签名构建: -CSC_IDENTITY_AUTO_DISCOVERY=false pnpm --filter @moonshot-ai/kimi-desktop run dist +CSC_IDENTITY_AUTO_DISCOVERY=false pnpm --filter kimi-code-app run dist # -> apps/desktop/dist-app/(macOS 上为 dmg + zip) ``` @@ -114,27 +114,30 @@ CSC_IDENTITY_AUTO_DISCOVERY=false pnpm --filter @moonshot-ai/kimi-desktop run di 注意:不要重命名构建出的 `.app`,重命名会使签名失效,macOS 会提示「已损坏」。 -### CI 打包(GitLab) +### CI 打包(GitHub Actions) -根目录 `.gitlab-ci.yml` 提供 4 个手动触发的打包 job(`package:macos-arm64` / -`package:macos-x64` / `package:windows-x64` / `package:linux-x64`),产物只进 GitLab -artifacts(保留 7 天),未做 Release / OSS 分发与自动更新。 +根目录 `.github/workflows/desktop-build.yml` 提供手动触发的打包流水线 +(Actions -> desktop-build -> Run workflow),matrix 并发出 macOS arm64/x64、 +Windows x64、Linux x64 四个平台的安装包,产物以 `kimi-code-app-` +命名进 artifacts(默认保留 7 天,可用 `retention-days` 输入调整)。 +发版走 `.github/workflows/release.yml`(changeset + GitHub Release,见 +`.changeset/README.md`),会复用本 workflow 打出签名包并挂为 release +assets;未做 OSS 分发与自动更新。 -- **macOS 签名 + 公证**:默认开启。`apps/desktop/scripts/ci/macos-sign-setup.sh` - 建临时 keychain、导入 Developer ID 证书、自动发现签名身份;`macos-sign-cleanup.sh` - 在 `after_script` 恢复 runner 原有钥匙串状态。需在 GitLab CI/CD Variables 配置 +- **macOS 签名 + 公证**:默认开启。`.github/actions/macos-keychain-setup` + composite action 建临时 keychain、导入 Developer ID 证书、自动发现签名身份; + `macos-keychain-cleanup` 在 job 末尾(`if: always()`)删除临时 keychain。 + 需在 repo Settings -> Secrets and variables -> Actions 配置 `APPLE_CERTIFICATE_P12` / `APPLE_CERTIFICATE_PASSWORD` / `APPLE_NOTARIZATION_KEY_P8` / `APPLE_NOTARIZATION_KEY_ID` / - `APPLE_NOTARIZATION_ISSUER_ID`(masked;若配成 protected,注意普通分支拿不到)。 - 触发 pipeline 时传 `DESKTOP_SIGN_MACOS=false` 可出未签名包。 + `APPLE_NOTARIZATION_ISSUER_ID`。Run workflow 时把 `sign-macos` 设为 + false 可出未签名包。 - **Windows / Linux**:不签名(Windows 会弹 SmartScreen)。 -- runner 需预装 Node >= 24.15.0 与 pnpm 10.33.0;macOS runner 另需 Xcode - (xcrun / notarytool)。checkout 会自动初始化 kimi-code submodule - (`GIT_SUBMODULE_STRATEGY: recursive`),runner 需能访问 github.com。 +- 使用 GitHub 标配 runner(`macos-15` / `macos-15-intel` / `windows-2025` / + `ubuntu-24.04`),checkout 带 `submodules: recursive` 自动初始化 kimi-code + submodule,Node/pnpm 由 setup actions 按仓内版本要求安装。 -> macOS 未签名出包已实跑验证(dmg/zip、node-pty asarUnpack、desktop-dist 资源均正确); -> 签名 + 公证链路从原仓 GitHub Actions workflow 逐行翻译,待 GitLab macOS runner -> 首跑验证。 +> 四平台打包(含 macOS 签名 + 公证)已在本仓首跑验证通过。 ### 本地签名打包(CI 不可用时) @@ -142,11 +145,11 @@ artifacts(保留 7 天),未做 Release / OSS 分发与自动更新。 pnpm package:macos # = bash apps/desktop/scripts/package-local-macos.sh ``` -`scripts/package-local-macos.sh` 复用 CI 的 `scripts/ci/macos-sign-setup.sh` / -`macos-sign-cleanup.sh`(同一套临时 keychain + 身份发现 + 公证逻辑),只出 arm64 的 -dmg + zip;本地没有 GitLab 的 `after_script`,脚本用 `trap` 保证任何退出路径都执行 -cleanup 恢复钥匙串。出包后自动做 `codesign --verify --deep --strict`、`spctl -a -vv`、 -`xcrun stapler validate` 三项验证。 +`scripts/package-local-macos.sh` 复用 `scripts/ci/macos-sign-setup.sh` / +`macos-sign-cleanup.sh`(与 CI 的 composite action 同一套临时 keychain + 身份发现 + +公证逻辑),只出 arm64 的 dmg + zip;本地没有 CI 的收尾步骤,脚本用 `trap` 保证任何 +退出路径都执行 cleanup 恢复钥匙串。出包后自动做 `codesign --verify --deep --strict`、 +`spctl -a -vv`、`xcrun stapler validate` 三项验证。 凭证与 CI 的 5 个变量同名,三种给法(都支持文件形式转 base64,详见脚本头注释): diff --git a/apps/desktop/electron-builder.config.cjs b/apps/desktop/electron-builder.config.cjs index 72220f9e7..e4d25be1c 100644 --- a/apps/desktop/electron-builder.config.cjs +++ b/apps/desktop/electron-builder.config.cjs @@ -70,7 +70,7 @@ module.exports = { gatekeeperAssess: false, entitlements: 'build/entitlements.mac.plist', entitlementsInherit: 'build/entitlements.mac.plist', - target: ['dmg', 'zip'], + target: ['dmg'], artifactName, notarize, // TCC usage descriptions (English baseline): shown in the macOS permission @@ -104,5 +104,8 @@ module.exports = { target: ['AppImage', 'deb'], artifactName, maintainer: 'Moonshot AI', + // electron-builder 26 校验 executableName 的文件路径合法性;不显式设置时会 + // 从 package.json 的 name 派生(老包名带 @moonshot-ai/ 前缀,派生值含 @ 非法)。 + executableName: 'kimi-code', }, }; diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 3f3a46b35..39376a60d 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,11 +1,10 @@ { - "name": "@moonshot-ai/kimi-desktop", - "version": "0.1.1-internal.0", + "name": "kimi-code-app", + "version": "0.0.0", "private": true, - "license": "MIT", "description": "Kimi Code desktop client — an Electron shell around the Kimi web UI.", "author": "Moonshot AI", - "homepage": "https://github.com/MoonshotAI/code-app", + "homepage": "https://github.com/MoonshotAI/kimi-code-app", "type": "module", "main": "out/main.cjs", "scripts": { @@ -46,7 +45,7 @@ "stream-markdown": "^0.0.16", "vue": "^3.5.35", "vue-i18n": "^11.4.5", - "@electron/rebuild": "3.7.1", + "@electron/rebuild": "4.2.0", "@moonshot-ai/vite-preset": "workspace:*", "@vitejs/plugin-vue": "^5.2.4", "electron": "43.1.1", diff --git a/apps/desktop/scripts/ci/macos-sign-cleanup.sh b/apps/desktop/scripts/ci/macos-sign-cleanup.sh index 86aa7de63..aa5180df3 100755 --- a/apps/desktop/scripts/ci/macos-sign-cleanup.sh +++ b/apps/desktop/scripts/ci/macos-sign-cleanup.sh @@ -1,10 +1,12 @@ #!/usr/bin/env bash -# macOS signing cleanup for GitLab CI — pairs with macos-sign-setup.sh. +# macOS signing cleanup — pairs with macos-sign-setup.sh. Used by the local +# packaging script (apps/desktop/scripts/package-local-macos.sh); the GitHub +# Actions workflow uses .github/actions/macos-keychain-cleanup instead. # -# Runs in after_script (a separate shell), so it reads the state file written -# by the setup script instead of relying on exported variables. Restores the -# runner's original default keychain + user search list, then deletes the -# temporary keychain and the whole .ci-signing directory. +# Runs in a separate shell, so it reads the state file written by the setup +# script instead of relying on exported variables. Restores the original +# default keychain + user search list, then deletes the temporary keychain +# and the whole .ci-signing directory. # # Never fails the job: every step is best-effort. diff --git a/apps/desktop/scripts/ci/macos-sign-setup.sh b/apps/desktop/scripts/ci/macos-sign-setup.sh index eca5869a2..a6ac57418 100755 --- a/apps/desktop/scripts/ci/macos-sign-setup.sh +++ b/apps/desktop/scripts/ci/macos-sign-setup.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash -# macOS signing setup for GitLab CI — translated from the kimi-code repo's -# .github/actions/macos-keychain-setup composite action. +# macOS signing setup for local packaging — must be SOURCED from +# apps/desktop/scripts/package-local-macos.sh so the exported variables reach +# the packaging step: # -# This script must be SOURCED from a job's before_script so the exported -# variables reach the packaging step: +# source apps/desktop/scripts/ci/macos-sign-setup.sh # -# before_script: -# - source apps/desktop/scripts/ci/macos-sign-setup.sh +# (Translated from the kimi-code repo's .github/actions/macos-keychain-setup +# composite action; the GitHub Actions workflow uses the composite actions +# directly and does not depend on this script.) # # Behavior: # - DESKTOP_SIGN_MACOS != "true" -> export unsigned-build env and return. diff --git a/apps/desktop/scripts/package-local-macos.sh b/apps/desktop/scripts/package-local-macos.sh index baa396424..2565baa72 100755 --- a/apps/desktop/scripts/package-local-macos.sh +++ b/apps/desktop/scripts/package-local-macos.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Local macOS packaging + signing for @moonshot-ai/kimi-desktop (arm64 only). +# Local macOS packaging + signing for kimi-code-app (arm64 only). # # CI 不可用时的本地替代流程。签名逻辑完全复用 CI 脚本 #(scripts/ci/macos-sign-setup.sh / macos-sign-cleanup.sh),本脚本只负责: @@ -106,9 +106,9 @@ source "$REPO_ROOT/apps/desktop/scripts/ci/macos-sign-setup.sh" # --------------------------------------------------------------------------- # 4. 构建 + 打包(与 `dist` 脚本同序:build:renderer -> tsdown -> electron-builder) # --------------------------------------------------------------------------- -pnpm --filter @moonshot-ai/kimi-desktop run build:renderer -pnpm --filter @moonshot-ai/kimi-desktop exec tsdown -pnpm --filter @moonshot-ai/kimi-desktop exec electron-builder --config electron-builder.config.cjs --arm64 +pnpm --filter kimi-code-app run build:renderer +pnpm --filter kimi-code-app exec tsdown +pnpm --filter kimi-code-app exec electron-builder --config electron-builder.config.cjs --arm64 # --------------------------------------------------------------------------- # 5. 验证:签名完整、Gatekeeper 接受、公证票据已 staple diff --git a/apps/web/AGENTS.md b/apps/web/AGENTS.md index 830105a57..3aa1b49dd 100644 --- a/apps/web/AGENTS.md +++ b/apps/web/AGENTS.md @@ -1,6 +1,6 @@ # kimi-web Agent Guide -Package-local rules for `apps/kimi-web` (`@moonshot-ai/kimi-web`). +Package-local rules for `apps/kimi-web` (`kimi-code-web`). ## What it is @@ -12,7 +12,7 @@ The browser web UI for Kimi Code — a peer to the TUI in `apps/kimi-code`. It t - **Use the primitives from `@moonshot-ai/web-ui`** (source in `packages/web-ui`; import as `import { Button, Icon, … } from '@moonshot-ai/web-ui'`, and the app's `src/style.css` already imports `@moonshot-ai/web-ui/style.css` for the tokens). The library covers Button, IconButton, Badge, Pill, Card, Input/Select/Textarea/Field, Dialog, Spinner, MoonSpinner, Link, Menu/MenuItem, SegmentedControl, Tabs, Switch, Checkbox, Avatar, EmptyState, Divider, Tooltip, Banner, Sheet, Skeleton, CommandBar, TopBar. One semantic = one component — do not hand-roll a bespoke button/badge/dialog/input for a single screen. When a primitive replaces an element, **delete the old scoped CSS** (do not append override blocks). - **Use the tokens, not ad-hoc values.** Colors, fonts, radii, spacing, shadows, z-index, and motion come from the CSS custom properties in `src/style.css` (catalogued in the design-system view §02). Canonical names are `--color-*` / `--radius-*` / `--space-*` / `--text-*` / `--font-*` / `--z-*` / `--shadow-*` / `--ease-*` / `--duration-*` / `--weight-*` / `--leading-*`. A small set of layout/focus tokens keep the `--p-` prefix: `--p-focus-ring`, `--p-selection`, `--p-ic-sm/md/lg`, `--p-sidebar-w`, `--p-content-max/-wide`, `--p-bp-sm/-md`. - **The moon spinner (🌑…🌘) is reserved** for the chat "waiting for the agent's first response" state only, and is rendered solely by `ui/MoonSpinner.vue`; every other loading state uses the plain `Spinner`. -- **Run `pnpm --filter @moonshot-ai/kimi-web check:style`** (`scripts/check-style.mjs`) — it enforces the §06 anti-pattern rules (no-gradient, no-glassmorphism except TopBar `frost`, no-emoji-icon except moon, no-hardcoded-hex/font, radius/z/weight from scale). Do not add new violations. +- **Run `pnpm --filter kimi-code-web check:style`** (`scripts/check-style.mjs`) — it enforces the §06 anti-pattern rules (no-gradient, no-glassmorphism except TopBar `frost`, no-emoji-icon except moon, no-hardcoded-hex/font, radius/z/weight from scale). Do not add new violations. - **Verify visually.** For any UI change, render it in the browser (light + dark, plus hover/focus states) and confirm it matches the design-system view and introduces no regression before considering it done. Build/typecheck/check-style are necessary but not sufficient. ## Layout (`src/`) @@ -42,7 +42,7 @@ The browser web UI for Kimi Code — a peer to the TUI in `apps/kimi-code`. It t ## Commands -All via `pnpm --filter @moonshot-ai/kimi-web …`: +All via `pnpm --filter kimi-code-web …`: - `dev` — Vite dev server (port `WEB_PORT`, default 5175; proxies `/api/v1` to `KIMI_SERVER_URL`, default `http://127.0.0.1:58627`). - `dev:stub` — offline stub daemon (`dev/stub-daemon.mjs`). diff --git a/apps/web/package.json b/apps/web/package.json index 99901f210..bbba3e04e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,8 +1,7 @@ { - "name": "@moonshot-ai/kimi-web", + "name": "kimi-code-web", "version": "0.1.2", "private": true, - "license": "MIT", "type": "module", "scripts": { "prepare:fonts": "node ../../scripts/prepare-fonts.mjs", diff --git a/apps/web/test/daemon-client.test.ts b/apps/web/test/daemon-client.test.ts index 53c25c975..ac41f9e82 100644 --- a/apps/web/test/daemon-client.test.ts +++ b/apps/web/test/daemon-client.test.ts @@ -2,7 +2,7 @@ // DaemonKimiWebApi public REST adapter: session export binary/error contracts, // getSessionGoal wire → app mapping, and raw stream-coordinate delivery. // Wiring: real client/projector; fetch or WebSocket is stubbed at the network boundary. -// Run: pnpm --filter @moonshot-ai/kimi-web exec vitest run test/daemon-client.test.ts +// Run: pnpm --filter kimi-code-web exec vitest run test/daemon-client.test.ts import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/apps/web/test/event-batcher.test.ts b/apps/web/test/event-batcher.test.ts index dd3e23345..065a63d22 100644 --- a/apps/web/test/event-batcher.test.ts +++ b/apps/web/test/event-batcher.test.ts @@ -4,7 +4,7 @@ * streams, bound each drain, keep a hidden-tab task fallback, and cancel stale * callbacks after flush. Wiring: real batcher/coalescer/reducer with only the * browser scheduler replaced by a manual public scheduler. - * Run: pnpm --filter @moonshot-ai/kimi-web exec vitest run test/event-batcher.test.ts + * Run: pnpm --filter kimi-code-web exec vitest run test/event-batcher.test.ts */ import { describe, expect, it, vi } from 'vitest'; diff --git a/apps/web/test/task-poller.test.ts b/apps/web/test/task-poller.test.ts index 50568d167..01e6cb605 100644 --- a/apps/web/test/task-poller.test.ts +++ b/apps/web/test/task-poller.test.ts @@ -3,7 +3,7 @@ // fetched under their REST task id, and a transient getTask failure must not // permanently suppress later backfills. // Wiring: the composable is real; daemon requests are stubbed. -// Run: pnpm --filter @moonshot-ai/kimi-web exec vitest run test/task-poller.test.ts +// Run: pnpm --filter kimi-code-web exec vitest run test/task-poller.test.ts import { computed } from 'vue'; import { beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/apps/web/test/workspace-state.test.ts b/apps/web/test/workspace-state.test.ts index 4404e065c..086663ed2 100644 --- a/apps/web/test/workspace-state.test.ts +++ b/apps/web/test/workspace-state.test.ts @@ -1,7 +1,7 @@ // Scenario: workspace/session actions exposed by useWorkspaceState. // Responsibilities: observable state and error reporting across load, paging, and user actions. // Wiring: the composable is real; daemon requests and unrelated facade collaborators are stubbed. -// Run: pnpm --filter @moonshot-ai/kimi-web exec vitest run test/workspace-state.test.ts +// Run: pnpm --filter kimi-code-web exec vitest run test/workspace-state.test.ts import { computed, ref, type Ref } from 'vue'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/package.json b/package.json index 25a757dcc..ab1e47128 100644 --- a/package.json +++ b/package.json @@ -2,23 +2,24 @@ "name": "@moonshot-ai/code-app", "version": "0.0.0", "private": true, - "license": "MIT", "type": "module", "scripts": { "prepare:fonts": "node scripts/prepare-fonts.mjs", "postinstall": "pnpm prepare:fonts", "sync": "git submodule update --init --recursive", "build": "pnpm -r run build", - "dev:desktop": "pnpm --filter @moonshot-ai/kimi-desktop run dev", - "dev:desktop:debug": "pnpm --filter @moonshot-ai/kimi-desktop run dev -- --remote-debugging-port=9222", - "dev:web": "pnpm --filter @moonshot-ai/kimi-web run dev", + "dev:desktop": "pnpm --filter kimi-code-app run dev", + "dev:desktop:debug": "pnpm --filter kimi-code-app run dev -- --remote-debugging-port=9222", + "dev:web": "pnpm --filter kimi-code-web run dev", "sync:web": "node scripts/sync-web-to-kimi-code.mjs", "package:macos": "bash apps/desktop/scripts/package-local-macos.sh", - "typecheck": "pnpm --filter @moonshot-ai/kimi-desktop run typecheck && pnpm --filter @moonshot-ai/kimi-web run typecheck", + "typecheck": "pnpm --filter kimi-code-app run typecheck && pnpm --filter kimi-code-web run typecheck", "lint": "oxlint --type-aware", "test": "vitest run" }, "devDependencies": { + "@changesets/changelog-github": "0.7.0", + "@changesets/cli": "2.30.0", "@iconify-json/ri": "^1.2.10", "@iconify-json/tabler": "^1.2.35", "@types/node": "^22.15.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38079b12f..c18b7e3c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,12 @@ importers: .: devDependencies: + '@changesets/changelog-github': + specifier: 0.7.0 + version: 0.7.0 + '@changesets/cli': + specifier: 2.30.0 + version: 2.30.0(@types/node@22.20.1) '@iconify-json/ri': specifier: ^1.2.10 version: 1.2.10 @@ -54,8 +60,8 @@ importers: specifier: 0.0.8 version: 0.0.8 '@electron/rebuild': - specifier: 3.7.1 - version: 3.7.1 + specifier: 4.2.0 + version: 4.2.0 '@fontsource-variable/jetbrains-mono': specifier: ^5.2.8 version: 5.2.8 @@ -964,6 +970,67 @@ packages: '@braintree/sanitize-url@7.1.2': resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + '@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/changelog-github@0.7.0': + resolution: {integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==} + + '@changesets/cli@2.30.0': + resolution: {integrity: sha512-5D3Nk2JPqMI1wK25pEymeWRSlSMdo5QOGlyfrKg0AOufrUcjEE3RQgaCpHoBiM31CSNrtSgdJ0U6zL1rLDDfBA==} + 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-github-info@0.8.0': + resolution: {integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==} + + '@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==} + '@chenglou/pretext@0.0.8': resolution: {integrity: sha512-yqm2GMxnPI7VHcHwe84P8ZF0JK/2d2DMKPqMN+s95jQhwDMYYXKVFVJUMEaVWckQStdsjdLav/0Vu+d9YbtGxA==} @@ -998,12 +1065,6 @@ packages: resolution: {integrity: sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==} engines: {node: '>=22.12.0'} - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2': - resolution: {tarball: https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2} - version: 10.2.0-electron.1 - engines: {node: '>=12.13.0'} - hasBin: true - '@electron/notarize@2.5.0': resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} engines: {node: '>= 10.0.0'} @@ -1013,11 +1074,6 @@ packages: engines: {node: '>=12.0.0'} hasBin: true - '@electron/rebuild@3.7.1': - resolution: {integrity: sha512-sKGD+xav4Gh25+LcLY0rjIwcCFTw+f/HU1pB48UVbwxXXRGaXEqIH0AaYKN46dgd/7+6kuiDXzoyAEvx1zCsdw==} - engines: {node: '>=12.13.0'} - hasBin: true - '@electron/rebuild@4.2.0': resolution: {integrity: sha512-RKL/O+jGoXJMxrx/5771y1n0xTKmFuOYGO3gMmwypBM6rsH0kou0mswwdXA2JrhIkE4xyC7v9vGk0n6NPzgOxQ==} engines: {node: '>=22.12.0'} @@ -1395,9 +1451,6 @@ packages: '@fontsource-variable/jetbrains-mono@5.2.8': resolution: {integrity: sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@google/genai@1.52.0': resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==} engines: {node: '>=20.0.0'} @@ -1425,6 +1478,15 @@ packages: '@iconify/utils@3.1.4': resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@intlify/core-base@11.4.6': resolution: {integrity: sha512-EOeHO95XESK9IFHgHeZXunsM/WBAoCA0DlaWODvx14vKmetAuS97t+l6Xe9hTUqntPpF93vtVSjjUDafw3wXMw==} engines: {node: '>= 22'} @@ -1584,6 +1646,12 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} + '@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==} + '@mermaid-js/parser@1.2.0': resolution: {integrity: sha512-oYPyv8A4As1yH5Bx+04iQEQxXuIQDe0GKCNSRgao6z8AM9jixXIfP0vsppRLvGf+nKIOb9/LdpWA4YuJiVvESA==} @@ -1615,14 +1683,17 @@ packages: resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} engines: {node: '>= 20.19.0'} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} '@oxc-project/types@0.139.0': resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} @@ -2132,10 +2203,6 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tootallnate/once@2.0.1': - resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} - engines: {node: '>= 10'} - '@ts-morph/common@0.29.0': resolution: {integrity: sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==} @@ -2298,6 +2365,9 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} @@ -2492,9 +2562,6 @@ packages: a-sync-waterfall@1.0.1: resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@4.0.0: resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} engines: {node: ^20.17.0 || >=22.9.0} @@ -2511,22 +2578,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -2541,6 +2596,10 @@ packages: alien-signals@3.2.1: resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2563,6 +2622,9 @@ packages: dmg-builder: 26.15.3 electron-builder-squirrel-windows: 26.15.3 + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2570,6 +2632,10 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -2649,15 +2715,16 @@ packages: bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} birpc@4.0.0: resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -2686,6 +2753,10 @@ packages: resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + browserslist@4.28.6: resolution: {integrity: sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2701,9 +2772,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builder-util-runtime@9.7.0: resolution: {integrity: sha512-g/kR520giAFYkSXTzcmF3kqQq7wi8F6N6SzeDgZrqTBN+VHdmgWOyTdD1yD7AATDId/yXLvuP34CxW46/BwCdw==} engines: {node: '>=12.0.0'} @@ -2728,10 +2796,6 @@ packages: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -2776,14 +2840,13 @@ packages: character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + chardet@2.2.0: + resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -2802,18 +2865,6 @@ packages: classcat@5.0.5: resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2821,10 +2872,6 @@ packages: clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} @@ -3104,6 +3151,9 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dayjs@1.11.21: resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} @@ -3128,9 +3178,6 @@ packages: resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -3165,6 +3212,10 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -3182,6 +3233,10 @@ packages: dir-compare@4.2.0: resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dmg-builder@26.15.3: resolution: {integrity: sha512-O3zJUFUYHJKgzPqioHxfxzBzlSC1eXCSr79gMSBKBP5AgjjpmrydMsMLotEg9fAJF36vdUncb+4ndRNxoPdlSQ==} @@ -3225,6 +3280,10 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dts-resolver@3.0.0: resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} engines: {node: ^22.18.0 || >=24.0.0} @@ -3286,12 +3345,13 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -3373,6 +3433,11 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -3417,12 +3482,19 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stringify@7.0.1: resolution: {integrity: sha512-eRSayARSbbwlBjpP4vnTTIRD5QPcIrmihPxDeN1DtKnHPg66UuJLx+8hlK1kaFdjvzyQ/dzALoi4vwAQ+T+iZA==} @@ -3467,6 +3539,10 @@ packages: filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + finalhandler@2.1.1: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} @@ -3475,6 +3551,10 @@ packages: resolution: {integrity: sha512-Zf4Xve4RymLl7NgaavNebZ01joJ8MfVerOG43wy7SHLO+r+K0C6d/SE0BiR7AV5V1VOCFlOP7ecdo+I4qmiHrQ==} engines: {node: '>=20'} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -3519,10 +3599,6 @@ packages: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3588,15 +3664,14 @@ packages: gifwrap@0.10.1: resolution: {integrity: sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -3605,6 +3680,10 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + google-auth-library@10.9.0: resolution: {integrity: sha512-xtvUqvINPhTaBm7nXqlYPcrMHJPm1lCNdSovxnKKhTm+4JsvQ+KGVYJViLoH9Yxu8w+T0Qv5HubzYT9BLrppJg==} engines: {node: '>=18'} @@ -3687,10 +3766,6 @@ packages: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -3699,16 +3774,13 @@ packages: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + human-id@4.2.0: + resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} + hasBin: true iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} @@ -3735,17 +3807,6 @@ packages: resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==} engines: {node: ^22.18.0 || >=24.0.0} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3813,6 +3874,10 @@ packages: resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} engines: {node: '>= 0.4'} + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + is-finalizationregistry@1.1.1: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} @@ -3825,18 +3890,15 @@ packages: resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3849,6 +3911,10 @@ packages: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} @@ -3868,6 +3934,10 @@ packages: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} @@ -3876,10 +3946,6 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3892,6 +3958,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} @@ -3943,6 +4013,10 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.15.0: + resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} + hasBin: true + js-yaml@4.3.0: resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} hasBin: true @@ -4111,16 +4185,19 @@ packages: resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} engines: {node: '>=14'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + lodash-es@4.18.1: resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -4135,17 +4212,9 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - markdown-it-container@4.0.0: resolution: {integrity: sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw==} @@ -4233,6 +4302,10 @@ packages: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + mermaid@11.16.0: resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==} @@ -4251,6 +4324,10 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -4277,10 +4354,6 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -4307,42 +4380,10 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-flush@1.0.7: - resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.3: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -4351,14 +4392,13 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -4370,18 +4410,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} - negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - node-abi@3.94.0: - resolution: {integrity: sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==} - engines: {node: '>=10'} - node-abi@4.33.0: resolution: {integrity: sha512-vLBWCKb+7LWsX+TbfzWOkw0W81m377tyx3hOweBTjO43CXZnRGS1/JPWs20fr0PgZyDXk6ROYrylsEycK8raDA==} engines: {node: '>=22.12.0'} @@ -4397,6 +4429,15 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4416,11 +4457,6 @@ packages: resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} engines: {node: '>=18'} - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nopt@9.0.0: resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} engines: {node: ^20.17.0 || >=22.9.0} @@ -4478,10 +4514,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - oniguruma-parser@0.12.2: resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} @@ -4515,9 +4547,8 @@ packages: openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} @@ -4541,18 +4572,37 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@1.7.0: resolution: {integrity: sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ==} @@ -4578,6 +4628,10 @@ packages: path-data-parser@0.1.0: resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -4589,6 +4643,10 @@ packages: path-to-regexp@8.4.2: resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -4602,10 +4660,18 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.5: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pino-abstract-transport@2.0.0: resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} @@ -4669,9 +4735,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - proc-log@2.0.1: - resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true proc-log@6.1.0: resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} @@ -4690,14 +4757,6 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -4740,6 +4799,9 @@ packages: quansync@1.0.0: resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} @@ -4772,13 +4834,13 @@ packages: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -4823,16 +4885,16 @@ packages: resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - ret@0.5.0: resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} @@ -4857,11 +4919,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} @@ -4909,6 +4966,9 @@ packages: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} @@ -5053,6 +5113,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -5064,6 +5128,10 @@ packages: sinon@22.0.0: resolution: {integrity: sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -5072,10 +5140,6 @@ packages: resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} engines: {node: '>= 18'} - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - socks@2.8.9: resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} @@ -5097,10 +5161,16 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} @@ -5108,10 +5178,6 @@ packages: resolution: {integrity: sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==} engines: {node: '>=10.16.0'} - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -5160,9 +5226,6 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -5170,6 +5233,10 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + strtok3@10.3.5: resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} @@ -5185,11 +5252,6 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.19: resolution: {integrity: sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw==} engines: {node: '>=18'} @@ -5201,6 +5263,10 @@ packages: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + thread-stream@3.2.0: resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} @@ -5232,6 +5298,10 @@ packages: resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} engines: {node: '>=14.14'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + toad-cache@3.7.4: resolution: {integrity: sha512-m1TdR/rvT7kgGJZhspNtXdsdYk0fddFpJJFlG5s+UkPFo6lkLoZ3YLOaovPYjq1R75NP5JfeTlSHaOsE09peCg==} engines: {node: '>=20'} @@ -5244,6 +5314,9 @@ packages: resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -5387,14 +5460,6 @@ packages: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -5630,9 +5695,6 @@ packages: wasm-feature-detect@1.8.0: resolution: {integrity: sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -5640,9 +5702,15 @@ packages: webcrypto-core@1.9.2: resolution: {integrity: sha512-gsXecm82UQNlTBURJGuqOWy1Ww08S3kZUcr3aOJS02Pk0xLtkfeUAVC0u0xhgdonFme80edSJUIJyuvL/7250Q==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -5951,6 +6019,164 @@ snapshots: '@braintree/sanitize-url@7.1.2': {} + '@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.5 + + '@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.5 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/changelog-github@0.7.0': + dependencies: + '@changesets/get-github-info': 0.8.0 + '@changesets/types': 6.1.0 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + + '@changesets/cli@2.30.0(@types/node@22.20.1)': + 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@22.20.1) + '@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.5 + 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.5 + + '@changesets/get-github-info@0.8.0': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@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.3.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 + '@chenglou/pretext@0.0.8': {} '@chevrotain/types@11.1.2': {} @@ -6002,22 +6228,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2': - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - glob: 8.1.0 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - proc-log: 2.0.1 - semver: 7.8.5 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - '@electron/notarize@2.5.0': dependencies: debug: 4.4.3 @@ -6037,26 +6247,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/rebuild@3.7.1': - dependencies: - '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2 - '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 - debug: 4.4.3 - detect-libc: 2.1.2 - fs-extra: 10.1.0 - got: 11.8.6 - node-abi: 3.94.0 - node-api-version: 0.2.1 - ora: 5.4.1 - read-binary-file-arch: 1.0.6 - semver: 7.8.5 - tar: 6.2.1 - yargs: 17.7.3 - transitivePeerDependencies: - - bluebird - - supports-color - '@electron/rebuild@4.2.0': dependencies: '@malept/cross-spawn-promise': 2.0.0 @@ -6321,8 +6511,6 @@ snapshots: '@fontsource-variable/jetbrains-mono@5.2.8': {} - '@gar/promisify@1.1.3': {} - '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))': dependencies: google-auth-library: 10.9.0 @@ -6356,6 +6544,13 @@ snapshots: '@iconify/types': 2.0.0 import-meta-resolve: 4.2.0 + '@inquirer/external-editor@1.0.3(@types/node@22.20.1)': + dependencies: + chardet: 2.2.0 + iconv-lite: 0.7.3 + optionalDependencies: + '@types/node': 22.20.1 + '@intlify/core-base@11.4.6': dependencies: '@intlify/devtools-types': 11.4.6 @@ -6637,6 +6832,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@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 + '@mermaid-js/parser@1.2.0': dependencies: '@chevrotain/types': 11.1.2 @@ -6676,15 +6887,17 @@ snapshots: '@noble/hashes@2.2.0': {} - '@npmcli/fs@2.1.2': + '@nodelib/fs.scandir@2.1.5': dependencies: - '@gar/promisify': 1.1.3 - semver: 7.8.5 + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - '@npmcli/move-file@2.0.1': + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 '@oxc-project/types@0.139.0': {} @@ -7023,8 +7236,6 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tootallnate/once@2.0.1': {} - '@ts-morph/common@0.29.0': dependencies: minimatch: 10.2.5 @@ -7226,6 +7437,8 @@ snapshots: '@types/ms@2.1.0': {} + '@types/node@12.20.55': {} + '@types/node@16.9.1': {} '@types/node@18.19.130': @@ -7491,8 +7704,6 @@ snapshots: a-sync-waterfall@1.0.1: {} - abbrev@1.1.1: {} - abbrev@4.0.0: {} abstract-logging@2.0.1: {} @@ -7504,23 +7715,8 @@ snapshots: acorn@8.17.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - agent-base@7.1.4: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -7534,6 +7730,8 @@ snapshots: alien-signals@3.2.1: {} + ansi-colors@4.1.3: {} + ansi-regex@5.0.1: {} ansi-styles@4.3.0: @@ -7592,6 +7790,10 @@ snapshots: transitivePeerDependencies: - supports-color + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} array-buffer-byte-length@1.0.2: @@ -7599,6 +7801,8 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 + array-union@2.1.0: {} + arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -7668,16 +7872,14 @@ snapshots: bcryptjs@2.4.3: {} + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + bignumber.js@9.3.1: {} birpc@4.0.0: {} - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - bluebird@3.7.2: {} bmp-ts@1.0.9: {} @@ -7714,6 +7916,10 @@ snapshots: dependencies: balanced-match: 4.0.4 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + browserslist@4.28.6: dependencies: baseline-browser-mapping: 2.10.43 @@ -7728,11 +7934,6 @@ snapshots: buffer-from@1.1.2: {} - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - builder-util-runtime@9.7.0: dependencies: debug: 4.4.3 @@ -7769,29 +7970,6 @@ snapshots: cac@7.0.0: {} - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird - cacheable-lookup@5.0.4: {} cacheable-request@7.0.4: @@ -7838,12 +8016,12 @@ snapshots: character-entities-legacy@3.0.0: {} + chardet@2.2.0: {} + chokidar@4.0.3: dependencies: readdirp: 4.1.2 - chownr@2.0.0: {} - chownr@3.0.0: {} chromium-pickle-js@0.2.0: {} @@ -7854,14 +8032,6 @@ snapshots: classcat@5.0.5: {} - clean-stack@2.2.0: {} - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.9.2: {} - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -7872,8 +8042,6 @@ snapshots: dependencies: mimic-response: 1.0.1 - clone@1.0.4: {} - code-block-writer@13.0.3: {} color-convert@2.0.1: @@ -8161,6 +8329,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + dataloader@1.4.0: {} + dayjs@1.11.21: {} debug@4.4.3: @@ -8178,10 +8348,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 - defaults@1.0.4: - dependencies: - clone: 1.0.4 - defer-to-connect@2.0.1: {} define-data-property@1.1.4: @@ -8210,6 +8376,8 @@ snapshots: dequal@2.0.3: {} + detect-indent@6.1.0: {} + detect-libc@2.1.2: {} detect-node@2.1.0: @@ -8226,6 +8394,10 @@ snapshots: minimatch: 3.1.5 p-limit: 3.1.0 + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + dmg-builder@26.15.3(electron-builder-squirrel-windows@26.15.3): dependencies: app-builder-lib: 26.15.3(dmg-builder@26.15.3)(electron-builder-squirrel-windows@26.15.3) @@ -8282,6 +8454,8 @@ snapshots: dotenv@16.6.1: {} + dotenv@8.6.0: {} + dts-resolver@3.0.0: {} dunder-proto@1.0.1: @@ -8371,15 +8545,15 @@ snapshots: encodeurl@2.0.0: {} - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - end-of-stream@1.4.5: dependencies: once: 1.4.0 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + entities@4.5.0: {} entities@7.0.1: {} @@ -8552,6 +8726,8 @@ snapshots: escape-string-regexp@4.0.0: optional: true + esprima@4.0.1: {} + estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -8614,10 +8790,20 @@ snapshots: extend@3.0.2: {} + extendable-error@0.1.7: {} + fast-decode-uri-component@1.0.1: {} fast-deep-equal@3.1.3: {} + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stringify@7.0.1: dependencies: '@fastify/merge-json-schemas': 0.2.1 @@ -8683,6 +8869,10 @@ snapshots: dependencies: minimatch: 5.1.9 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + finalhandler@2.1.1: dependencies: debug: 4.4.3 @@ -8700,6 +8890,11 @@ snapshots: fast-querystring: 1.1.2 safe-regex2: 5.1.1 + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -8757,10 +8952,6 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -8843,6 +9034,10 @@ snapshots: image-q: 4.0.0 omggif: 1.0.10 + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -8852,14 +9047,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.9 - once: 1.4.0 - global-agent@3.0.0: dependencies: boolean: 3.2.0 @@ -8875,6 +9062,15 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.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 + google-auth-library@10.9.0: dependencies: base64-js: 1.5.1 @@ -8977,14 +9173,6 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.1 - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -8997,13 +9185,6 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -9011,9 +9192,7 @@ snapshots: transitivePeerDependencies: - supports-color - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 + human-id@4.2.0: {} iconv-lite@0.6.3: dependencies: @@ -9035,12 +9214,6 @@ snapshots: import-without-cache@0.4.0: {} - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - infer-owner@1.0.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -9106,6 +9279,8 @@ snapshots: dependencies: call-bound: 1.0.4 + is-extglob@2.1.1: {} + is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 @@ -9120,14 +9295,14 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - is-interactive@1.0.0: {} - - is-lambda@1.0.1: {} - is-map@2.0.3: {} is-negative-zero@2.0.3: {} @@ -9137,6 +9312,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-number@7.0.0: {} + is-promise@4.0.0: {} is-regex@1.2.1: @@ -9157,6 +9334,10 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + is-symbol@1.1.1: dependencies: call-bound: 1.0.4 @@ -9167,8 +9348,6 @@ snapshots: dependencies: which-typed-array: 1.1.22 - is-unicode-supported@0.1.0: {} - is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -9180,6 +9359,8 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-windows@1.0.2: {} + is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -9244,6 +9425,11 @@ snapshots: js-tokens@4.0.0: {} + js-yaml@3.15.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.3.0: dependencies: argparse: 2.0.1 @@ -9396,14 +9582,15 @@ snapshots: pkg-types: 2.3.1 quansync: 0.2.11 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + lodash-es@4.18.1: {} - lodash@4.18.1: {} + lodash.startcase@4.4.0: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + lodash@4.18.1: {} long@5.3.2: {} @@ -9417,34 +9604,10 @@ snapshots: dependencies: yallist: 4.0.0 - lru-cache@7.18.3: {} - magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - markdown-it-container@4.0.0: {} markdown-it-footnote@4.0.0: {} @@ -9513,6 +9676,8 @@ snapshots: merge-descriptors@2.0.0: {} + merge2@1.4.1: {} + mermaid@11.16.0: dependencies: '@braintree/sanitize-url': 7.1.2 @@ -9554,6 +9719,11 @@ snapshots: micromark-util-types@2.0.2: {} + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -9570,8 +9740,6 @@ snapshots: mime@3.0.0: {} - mimic-fn@2.1.0: {} - mimic-response@1.0.1: {} mimic-response@3.1.0: {} @@ -9594,43 +9762,8 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-flush@1.0.7: - dependencies: - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - minipass@7.1.3: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - minizlib@3.1.0: dependencies: minipass: 7.1.3 @@ -9639,8 +9772,6 @@ snapshots: dependencies: minimist: 1.2.8 - mkdirp@1.0.4: {} - mlly@1.8.2: dependencies: acorn: 8.17.0 @@ -9648,20 +9779,16 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.4 + mri@1.2.0: {} + ms@2.1.3: {} muggle-string@0.4.1: {} nanoid@3.3.15: {} - negotiator@0.6.4: {} - negotiator@1.0.0: {} - node-abi@3.94.0: - dependencies: - semver: 7.8.5 - node-abi@4.33.0: dependencies: semver: 7.8.5 @@ -9674,6 +9801,10 @@ snapshots: node-domexception@1.0.0: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 @@ -9701,10 +9832,6 @@ snapshots: node-releases@2.0.51: {} - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - nopt@9.0.0: dependencies: abbrev: 4.0.0 @@ -9752,10 +9879,6 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - oniguruma-parser@0.12.2: {} oniguruma-to-es@4.3.6: @@ -9778,17 +9901,7 @@ snapshots: openapi-types@12.1.3: {} - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + outdent@0.5.0: {} own-keys@1.0.1: dependencies: @@ -9830,19 +9943,35 @@ snapshots: p-cancelable@2.1.1: {} + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - p-map@4.0.0: + p-locate@4.1.0: dependencies: - aggregate-error: 3.1.0 + p-limit: 2.3.0 + + p-map@2.1.0: {} p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + p-try@2.2.0: {} + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.11 + package-manager-detector@1.7.0: {} pako@1.0.11: {} @@ -9862,12 +9991,16 @@ snapshots: path-data-parser@0.1.0: {} + path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} path-key@3.1.1: {} path-to-regexp@8.4.2: {} + path-type@4.0.0: {} + pathe@2.0.3: {} pe-library@0.4.1: {} @@ -9876,8 +10009,12 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.2: {} + picomatch@4.0.5: {} + pify@4.0.1: {} + pino-abstract-transport@2.0.0: dependencies: split2: 4.2.0 @@ -9961,7 +10098,7 @@ snapshots: commander: 9.5.0 optional: true - proc-log@2.0.1: {} + prettier@2.8.8: {} proc-log@6.1.0: {} @@ -9973,8 +10110,6 @@ snapshots: progress@2.0.3: {} - promise-inflight@1.0.1: {} - promise-retry@2.0.1: dependencies: err-code: 2.0.3 @@ -10029,6 +10164,8 @@ snapshots: quansync@1.0.0: {} + queue-microtask@1.2.3: {} + quick-format-unescaped@4.0.4: {} quick-lru@5.1.1: {} @@ -10057,6 +10194,13 @@ snapshots: transitivePeerDependencies: - supports-color + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.15.0 + pify: 4.0.1 + strip-bom: 3.0.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -10067,12 +10211,6 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - readdirp@4.1.2: {} real-require@0.2.0: {} @@ -10126,17 +10264,14 @@ snapshots: resolve-alpn@1.2.1: {} + resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} responselike@2.0.1: dependencies: lowercase-keys: 2.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - ret@0.5.0: {} retry@0.12.0: {} @@ -10151,10 +10286,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - roarr@2.15.4: dependencies: boolean: 3.2.0 @@ -10255,6 +10386,10 @@ snapshots: run-applescript@7.1.0: {} + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + rw@1.3.3: {} safe-array-concat@1.1.4: @@ -10421,6 +10556,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-update-notifier@2.0.0: dependencies: semver: 7.8.5 @@ -10434,18 +10571,12 @@ snapshots: '@sinonjs/samsam': 10.0.2 diff: 9.0.0 + slash@3.0.0: {} + smart-buffer@4.2.0: {} smol-toml@1.7.0: {} - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - socks: 2.8.9 - transitivePeerDependencies: - - supports-color - socks@2.8.9: dependencies: ip-address: 10.2.0 @@ -10466,8 +10597,15 @@ snapshots: space-separated-tokens@2.0.2: {} + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: optional: true @@ -10476,10 +10614,6 @@ snapshots: asn1: 0.2.6 bcrypt-pbkdf: 1.0.2 - ssri@9.0.1: - dependencies: - minipass: 3.3.6 - stackback@0.0.2: {} standardwebhooks@1.0.0: @@ -10552,10 +10686,6 @@ snapshots: dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -10565,6 +10695,8 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-bom@3.0.0: {} + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 @@ -10581,15 +10713,6 @@ snapshots: dependencies: has-flag: 4.0.0 - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - tar@7.5.19: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -10608,6 +10731,8 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.6.3 + term-size@2.2.1: {} + thread-stream@3.2.0: dependencies: real-require: 0.2.0 @@ -10635,6 +10760,10 @@ snapshots: tmp@0.2.7: {} + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + toad-cache@3.7.4: {} toidentifier@1.0.1: {} @@ -10645,6 +10774,8 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 + tr46@0.0.3: {} + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -10778,14 +10909,6 @@ snapshots: undici@7.28.0: {} - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 - - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 - unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -11027,10 +11150,6 @@ snapshots: wasm-feature-detect@1.8.0: {} - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - web-streams-polyfill@3.3.3: {} webcrypto-core@1.9.2: @@ -11041,8 +11160,15 @@ snapshots: asn1js: 3.0.10 tslib: 2.8.1 + webidl-conversions@3.0.1: {} + webpack-virtual-modules@0.6.2: {} + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9308e16f0..b300eb4a4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,6 +16,6 @@ overrides: "ssh2@1.17.0>nan": "-" # Unify zod to a single copy. kimi-code packages split zod across 4.3.6 # (server via catalog) and 4.4.3 (agent-core et al. via ^4.3.6); the mixed - # $ZodType surfaces as ~159 type errors in @moonshot-ai/kimi-desktop's + # $ZodType surfaces as ~159 type errors in kimi-code-app's # typecheck, which resolves kimi-code sources via workspace:^ exports. "zod": "catalog:" diff --git a/scripts/sync-web-to-kimi-code.mjs b/scripts/sync-web-to-kimi-code.mjs index f3fa66d5e..a5e308512 100644 --- a/scripts/sync-web-to-kimi-code.mjs +++ b/scripts/sync-web-to-kimi-code.mjs @@ -27,7 +27,7 @@ async function assertBuiltWeb() { } } catch { throw new Error( - `未找到 web 构建产物 ${source}/index.html,请先运行 \`pnpm --filter @moonshot-ai/kimi-web run build\`。`, + `未找到 web 构建产物 ${source}/index.html,请先运行 \`pnpm --filter kimi-code-web run build\`。`, ); } }