packages:
  - internal/*
  - internal/lint-configs/*
  - packages/*
  - packages/@core/base/*
  - packages/@core/ui-kit/*
  - packages/@core/forward/*
  - packages/@core/*
  - packages/effects/*
  - packages/business/*
  - apps/*
  - scripts/*
  - docs
  - playground

publicHoistPattern:
  - lefthook
  - eslint
  - oxfmt
  - oxlint
  - stylelint
  - '*postcss*'
  - '@commitlint/*'
  - czg

strictPeerDependencies: false
autoInstallPeers: true
dedupePeerDependents: true
verifyDepsBeforeRun: false
minimumReleaseAge: 0

overrides:
  '@ast-grep/napi': 'catalog:'
  '@ctrl/tinycolor': 'catalog:'
  clsx: 'catalog:'
  pinia: 'catalog:'
  vue: 'catalog:'

catalog:
  # ===== 你原有 catalog（全部保留，一个字不改） =====
  '@ast-grep/napi': ^0.44.1
  '@changesets/changelog-github': ^0.7.0
  '@changesets/cli': ^2.31.1
  '@changesets/git': ^3.0.4
  '@clack/prompts': ^1.7.0
  '@commitlint/cli': ^21.2.1
  '@commitlint/config-conventional': ^21.2.0
  '@ctrl/tinycolor': ^4.2.0
  '@eslint-community/eslint-plugin-eslint-comments': ^4.7.2
  '@eslint/js': ^10.0.1
  '@faker-js/faker': ^10.5.0
  '@iconify/json': ^2.2.504
  '@iconify/tailwind4': ^1.2.3
  '@iconify/vue': ^5.0.1
  '@intlify/core-base': ^11.4.7
  '@intlify/unplugin-vue-i18n': ^11.2.4
  '@jspm/generator': ^2.16.3
  '@lucide/vue': ^1.26.0
  '@manypkg/get-packages': ^3.1.0
  '@nolebase/vitepress-plugin-git-changelog': ^2.18.2
  '@playwright/test': ^1.61.1
  '@pnpm/workspace.read-manifest': ^1000.3.1
  '@stylistic/stylelint-plugin': ^5.2.1
  '@tailwindcss/typography': ^0.5.20
  '@tailwindcss/vite': ^4.3.3
  '@tanstack/store': ^0.11.0
  '@tanstack/vue-form': ^1.33.2
  '@tanstack/vue-query': ^5.101.4
  '@tanstack/vue-store': ^0.11.0
  '@tiptap/core': ^3.28.0
  '@tiptap/extension-document': ^3.28.0
  '@tiptap/extension-highlight': ^3.28.0
  '@tiptap/extension-image': ^3.28.0
  '@tiptap/extension-link': ^3.28.0
  '@tiptap/extension-placeholder': ^3.28.0
  '@tiptap/extension-text-align': ^3.28.0
  '@tiptap/extension-text-style': ^3.28.0
  '@tiptap/extension-underline': ^3.28.0
  '@tiptap/pm': ^3.28.0
  '@tiptap/starter-kit': ^3.28.0
  '@tiptap/vue-3': ^3.28.0
  '@tsdown/css': ^0.22.13
  '@types/archiver': ^8.0.0
  '@types/html-minifier-terser': ^7.0.2
  '@types/json-bigint': ^1.0.4
  '@types/jsonwebtoken': ^9.0.10
  '@types/lodash.clonedeep': ^4.5.9
  '@types/node': ^25.9.5
  '@types/nprogress': ^0.2.3
  '@types/qrcode': ^1.5.6
  '@types/qs': ^6.15.1
  '@types/sortablejs': ^1.15.9
  '@typescript-eslint/parser': ^8.65.0
  '@vite-pwa/vitepress': ^1.1.0
  '@vitejs/plugin-vue': ^6.0.8
  '@vitejs/plugin-vue-jsx': ^5.1.6
  '@vue/shared': ^3.5.40
  '@vue/test-utils': ^2.4.11
  '@vueuse/core': ^14.3.0
  '@vueuse/integrations': ^14.3.0
  '@vueuse/motion': ^3.0.3
  ant-design-vue: ^4.2.6
  antdv-next: ^1.4.5
  archiver: ^8.0.0
  axios: ^1.18.1
  axios-mock-adapter: ^2.1.0
  cac: ^7.0.0
  chalk: ^5.6.2
  cheerio: ^1.2.0
  circular-dependency-scanner: ^3.0.1
  class-variance-authority: ^0.7.1
  clsx: ^2.1.1
  commitlint-plugin-function-rules: ^5.0.1
  consola: ^3.4.2
  cross-env: ^10.1.0
  cspell: ^10.0.1
  cz-git: ^1.13.1
  czg: ^1.13.1
  dayjs: ^1.11.21
  defu: ^6.1.7
  dotenv: ^17.4.2
  echarts: ^6.1.0
  element-plus: ^2.14.3
  es-toolkit: ^1.49.0
  eslint: ^10.7.0
  eslint-plugin-better-tailwindcss: ^4.7.0
  eslint-plugin-command: ^3.5.3
  eslint-plugin-jsonc: ^3.3.0
  eslint-plugin-n: ^18.2.2
  eslint-plugin-perfectionist: ^5.10.0
  eslint-plugin-pnpm: ^1.7.0
  eslint-plugin-unused-imports: ^4.4.1
  eslint-plugin-vue: ^10.10.0
  eslint-plugin-yml: ^3.6.0
  execa: ^10.0.0
  find-up: ^8.0.0
  get-port: ^7.2.0
  globals: ^17.7.0
  h3: ^1.15.11
  happy-dom: ^20.11.1
  html-minifier-terser: ^7.2.0
  is-ci: ^4.1.0
  json-bigint: ^1.0.0
  jsonwebtoken: ^9.0.3
  knip: ^6.29.0
  lefthook: ^2.1.10
  lodash.clonedeep: ^4.5.0
  medium-zoom: ^1.1.0
  naive-ui: ^2.44.1
  nitropack: ^2.13.4
  nprogress: ^0.2.0
  ora: ^9.4.1
  oxfmt: ^0.60.0
  oxlint: ^1.75.0
  oxlint-tsgolint: ^0.25.0
  pinia: ^4.0.2
  pinia-plugin-persistedstate: ^4.7.1
  pkg-types: ^2.3.1
  'pnpm/workspace.read-manifest': ^1000.3.1
  playwright: ^1.61.1
  postcss: ^8.5.22
  postcss-html: ^1.8.1
  postcss-scss: ^4.0.9
  publint: ^0.3.22
  qrcode: ^1.5.4
  qs: ^6.15.3
  reka-ui: ^2.10.1
  resolve.exports: ^2.0.3
  rimraf: ^6.1.3
  rollup-plugin-visualizer: ^7.0.1
  sass: ^1.101.6
  sass-embedded: ^1.100.0
  secure-ls: ^2.0.0
  sortablejs: ^1.15.7
  stylelint: ^17.14.1
  stylelint-config-recess-order: ^7.7.0
  stylelint-config-recommended: ^18.0.0
  stylelint-config-recommended-scss: ^17.0.1
  stylelint-config-recommended-vue: ^1.6.1
  stylelint-config-standard: ^40.0.0
  stylelint-order: ^8.1.1
  stylelint-scss: ^7.2.0
  tailwind-merge: ^3.6.0
  tailwindcss: ^4.3.3
  tdesign-vue-next: ^1.20.3
  theme-colors: ^0.1.0
  tippy.js: ^6.3.7
  tsdown: ^0.22.13
  turbo: ^2.10.6
  tw-animate-css: ^1.4.0
  typescript: ^6.0.3
  unplugin-dts: ^1.0.3
  unplugin-element-plus: ^0.11.2
  unplugin-vue: ^7.2.0
  vite: ^8.1.5
  vite-plugin-compression: ^0.5.1
  vite-plugin-lazy-import: ^1.0.7
  vite-plugin-pwa: ^1.3.0
  vite-plugin-vue-devtools: ^8.1.5
  vitepress: ^2.0.0-alpha.18
  vitepress-plugin-group-icons: ^1.7.5
  vitest: ^4.1.10
  vue: ^3.5.40
  vue-eslint-parser: ^10.4.1
  vue-i18n: ^11.4.7
  vue-json-pretty: ^2.6.0
  vue-router: ^5.2.0
  vue-tippy: ^6.7.1
  vue-tsc: ^3.3.8
  vxe-pc-ui: ^4.16.19
  vxe-table: ^4.20.6
  watermark-js-plus: ^1.6.6
  yaml-eslint-parser: ^2.1.0
  zod: ^4.4.3
  zod-defaults: ^0.2.3
  autoprefixer: ^10.4.19
  husky: ^9.1.7
  unbuild: ^3.5.0

  # ===== 本次补齐的业务依赖 =====
  '@fortawesome/fontawesome-free': ^6.7.2
  '@vueup/vue-quill': ^1.2.0
  html2canvas: ^1.4.1
  js-base64: ^3.7.7
  lodash-es: ^4.17.21
  'lucide-vue-next': ^0.487.0
  'md-editor-v3': ^5.4.5
  xgplayer: ^3.0.24

  # ===== 桌面端 Electron 依赖（apps/desktop 专用） =====
  # 注意：electron / electron-updater 在 apps/desktop 里必须写显式 semver，
  # electron-builder 打包时会解析这两个版本号，不认识 catalog: 写法
  electron-builder: ^26.15.3
  electron-log: ^5.4.4
  electron-vite: ^5.0.0

allowBuilds:
  '@parcel/watcher': true
  core-js: true
  esbuild: true
  lefthook: true
  vue-demi: true
  # electron 依赖 postinstall 下载平台二进制（走 .npmrc 的 electron_mirror 镜像），不放行会导致 electron 命令不可用
  electron: true
