Files
cms/pnpm-workspace.yaml
zeekay 0e6dc33027 State a version once
A version written into a manifest is written into every manifest that wants it,
which is how eslint came to exist in a hundred and four forms across this estate
and how a package came to resolve twice at run time. The catalog moves the number
out of the manifest: a manifest names the package, the workspace names the
version.

Four are held below their latest because the newer release cannot be used, and
the reason is recorded rather than the version alone: @noble/hashes 2 renamed
every subpath the web3 stack imports, @splinetool/runtime 2 depends on a package
that was never published, @dynamic-labs 5.4.1 the same, and react-resizable-panels
3 points its types condition at the bundle.
2026-08-29 13:46:57 -07:00

440 lines
13 KiB
YAML

packages:
- 'packages/*'
- 'apps/*'
- 'tools/*'
- 'test'
- 'templates/blank'
- 'templates/website'
- 'templates/ecommerce'
updateNotifier: false
symlink: true
nodeLinker: isolated
hoistWorkspacePackages: false # the default in pnpm v9 is true, but that can break our runtime dependency checks
savePrefix: ''
catalog:
'@actions/core': '^3.0.1'
'@actions/github': '^9.1.1'
'@ai-sdk/openai': '^4.0.51'
'@apollo/client': '^4.2.12'
'@aws-sdk/client-s3': '^3.1121.0'
'@aws-sdk/lib-storage': '^3.1121.0'
'@aws-sdk/s3-request-presigner': '^3.1121.0'
'@axe-core/playwright': '^4.13.0'
'@azure/abort-controller': '^2.2.0'
'@azure/storage-blob': '^12.33.0'
'@babel/cli': '^8.0.4'
'@babel/core': '^8.0.1'
'@babel/preset-env': '^8.0.2'
'@babel/preset-react': '^8.0.1'
'@babel/preset-typescript': '^8.0.1'
'@clack/prompts': '^1.7.0'
'@cloudflare/workers-types': '^5.20260829.1'
'@date-fns/tz': '^1.5.0'
'@dnd-kit/core': '^6.3.1'
'@dnd-kit/modifiers': '^9.0.0'
'@dnd-kit/sortable': '^10.0.0'
'@dnd-kit/utilities': '^3.2.2'
'@eslint-react/eslint-plugin': '^5.18.6'
'@eslint/eslintrc': '^3.3.6'
'@eslint/js': '^10.0.1'
'@faceless-ui/css-grid': '^1.2.0'
'@faceless-ui/modal': '^3.0.1'
'@faceless-ui/scroll-info': '^2.0.0'
'@faceless-ui/window-info': '^3.0.1'
'@google-cloud/storage': '^8.0.1'
'@hanzo/cms': '3.85.2'
'@hanzo/cms-admin-bar': '3.85.2'
'@hanzo/cms-db-d1-sqlite': '3.85.2'
'@hanzo/cms-db-mongodb': '3.85.2'
'@hanzo/cms-db-postgres': '3.85.2'
'@hanzo/cms-db-sqlite': '3.85.2'
'@hanzo/cms-db-vercel-postgres': '3.85.2'
'@hanzo/cms-email-nodemailer': 'latest'
'@hanzo/cms-eslint-config': '3.28.0'
'@hanzo/cms-graphql': 'latest'
'@hanzo/cms-live-preview-react': '3.85.2'
'@hanzo/cms-next': '3.85.2'
'@hanzo/cms-plugin-cloud': 'latest'
'@hanzo/cms-plugin-form-builder': '3.85.2'
'@hanzo/cms-plugin-multi-tenant': 'latest'
'@hanzo/cms-plugin-nested-docs': '3.85.2'
'@hanzo/cms-plugin-redirects': '3.85.2'
'@hanzo/cms-plugin-search': '3.85.2'
'@hanzo/cms-plugin-seo': '3.85.2'
'@hanzo/cms-richtext-lexical': '3.85.2'
'@hanzo/cms-richtext-slate': 'latest'
'@hanzo/cms-storage-r2': '3.85.2'
'@hanzo/cms-storage-vercel-blob': '3.85.2'
'@hanzo/cms-ui': '3.85.2'
'@hanzo/font': '1.9.2'
'@hyrious/esbuild-plugin-commonjs': '^0.2.6'
'@lexical/clipboard': '^0.49.0'
'@lexical/eslint-plugin': '^0.49.0'
'@lexical/headless': '^0.49.0'
'@lexical/html': '^0.49.0'
'@lexical/link': '^0.49.0'
'@lexical/list': '^0.49.0'
'@lexical/mark': '^0.49.0'
'@lexical/react': '^0.49.0'
'@lexical/rich-text': '^0.49.0'
'@lexical/selection': '^0.49.0'
'@lexical/table': '^0.49.0'
'@lexical/utils': '^0.49.0'
'@libsql/client': '^0.17.4'
'@miniflare/d1': '^2.14.4'
'@miniflare/shared': '^2.14.4'
'@modelcontextprotocol/sdk': '^1.30.0'
'@monaco-editor/react': '^4.7.0'
'@next/bundle-analyzer': '^16.3.3'
'@next/env': '^16.3.3'
'@next/eslint-plugin-next': '^16.3.3'
'@octokit/webhooks-types': '^7.6.1'
'@opennextjs/cloudflare': '^1.20.4'
'@playwright/test': '^1.62.1'
'@radix-ui/react-accordion': '^1.2.20'
'@radix-ui/react-checkbox': '^1.3.11'
'@radix-ui/react-dialog': '^1.1.23'
'@radix-ui/react-label': '^2.1.15'
'@radix-ui/react-select': '^2.3.7'
'@radix-ui/react-slot': '^1.3.3'
'@sentry/nextjs': '^10.72.0'
'@sentry/node': '^10.72.0'
'@sentry/react': '^10.72.0'
'@sentry/types': '^10.72.0'
'@sindresorhus/slugify': '^3.0.0'
'@smithy/node-http-handler': '^4.11.3'
'@stripe/react-stripe-js': '^6.8.2'
'@stripe/stripe-js': '^9.14.0'
'@swc-node/register': '^1.12.1'
'@swc/cli': '^0.8.1'
'@swc/core': '^1.16.1'
'@swc/jest': '^0.2.39'
'@swc/types': '^0.1.6'
'@tailwindcss/postcss': '^4.3.3'
'@tailwindcss/typography': '^0.5.20'
'@testing-library/react': '^16.3.3'
'@types/busboy': '^1.5.4'
'@types/ejs': '^3.1.5'
'@types/escape-html': '^1.0.2'
'@types/eslint': '^9.6.1'
'@types/esprima': '^4.0.6'
'@types/express': '^5.0.6'
'@types/find-node-modules': '^2.1.2'
'@types/fs-extra': '^11.0.4'
'@types/is-hotkey': '^0.1.10'
'@types/jest': '^30.0.0'
'@types/json-schema': '^7.0.15'
'@types/jsonwebtoken': '^9.0.10'
'@types/minimist': '^1.2.5'
'@types/mongoose-aggregate-paginate-v2': '^1.1.2'
'@types/node': '26.4.0'
'@types/nodemailer': '^8.0.1'
'@types/pg': '^8.23.1'
'@types/pluralize': '^0.0.33'
'@types/prompts': '^2.4.9'
'@types/range-parser': '^1.2.7'
'@types/react': '19.2.18'
'@types/react-dom': '19.2.5'
'@types/semver': '^7.8.0'
'@types/shelljs': '^0.10.0'
'@types/to-snake-case': '^1.0.2'
'@types/ws': '^8.18.1'
'@typescript-eslint/eslint-plugin': '^8.68.0'
'@typescript-eslint/parser': '^8.68.0'
'@vercel/blob': '^2.8.0'
'@vercel/git-hooks': '^1.0.0'
'@vercel/ncc': '^0.45.0'
'@vercel/postgres': '^0.10.0'
'@vitejs/plugin-react': '^6.0.2'
'@vitest/eslint-plugin': '^1.6.27'
'@vitest/ui': '^4.1.11'
'acorn': '^8.18.0'
'ai': '^7.0.84'
'ajv': '^8.20.0'
'arg': '^5.0.2'
'autoprefixer': '^10.5.4'
'axe-core': '^4.13.0'
'babel-plugin-react-compiler': '^1.0.0'
'babel-plugin-transform-remove-imports': '^1.8.1'
'better-sqlite3': '^13.0.3'
'bson-objectid': '^2.0.4'
'busboy': '^1.6.0'
'chalk': '^6.0.0'
'changelogen': '^0.6.2'
'ci-info': '^4.4.0'
'class-variance-authority': '^0.7.1'
'clsx': '^2.1.1'
'comment-json': '^5.0.0'
'concurrently': '^10.0.5'
'console-table-printer': '^2.16.1'
'copyfiles': '^2.4.1'
'croner': '^10.0.1'
'cross-env': '^10.1.0'
'csstype': '^3.2.3'
'csv-parse': '^7.0.2'
'csv-stringify': '^6.8.3'
'dataloader': '^2.2.3'
'date-fns': '^4.4.0'
'deepmerge': '^4.3.1'
'dequal': '^2.0.3'
'dotenv': '^17.4.2'
'drizzle-kit': '^0.31.10'
'drizzle-orm': '^0.45.2'
'ejs': '^6.0.1'
'embla-carousel-auto-scroll': '^8.1.5'
'embla-carousel-react': '^8.6.0'
'esbuild': '^0.28.2'
'esbuild-sass-plugin': '^3.7.0'
'escape-html': '^1.0.3'
'eslint': '^10.9.1'
'eslint-config-next': '^16.3.3'
'eslint-config-prettier': '^10.1.8'
'eslint-plugin-import-x': '^4.17.1'
'eslint-plugin-jsx-a11y': '^6.10.2'
'eslint-plugin-perfectionist': '^5.10.1'
'eslint-plugin-playwright': '^2.11.0'
'eslint-plugin-react': '^7.37.5'
'eslint-plugin-react-compiler': '^19.1.0-rc.2'
'eslint-plugin-react-hooks': '^7.1.1'
'eslint-plugin-regexp': '^3.2.0'
'esprima-next': '^6.0.3'
'execa': '^10.0.1'
'express': '^5.2.1'
'figures': '^6.1.0'
'file-type': '^22.0.2'
'find-node-modules': '^2.1.3'
'form-data': '^4.0.6'
'fs-extra': '^11.4.0'
'get-tsconfig': '^4.14.3'
'globals': '^17.11.0'
'globby': '^16.2.4'
'graphql': '^17.0.2'
'graphql-http': '^1.23.0'
'graphql-playground-html': '^1.6.30'
'graphql-scalars': '^2.0.0'
'http-status': '^2.1.0'
'husky': '^9.1.7'
'image-size': '^2.0.2'
'install': '^0.13.0'
'ioredis': '^6.0.0'
'ipaddr.js': '^2.5.0'
'is-hotkey': '^0.2.0'
'jest': '^30.5.0'
'jose': '^6.2.10'
'jsdom': '^30.0.1'
'json-schema-to-typescript': '^16.0.0'
'json-schema-to-zod': '^2.8.1'
'jsonwebtoken': '^9.0.3'
'jsox': '^1.2.126'
'juice': '11.0.0'
'jwt-decode': '^4.0.0'
'lexical': '^0.49.0'
'license-checker': '^25.0.1'
'lint-staged': '^17.4.1'
'lucide-react': '^1.33.0'
'mcp-handler': '^2.1.1'
'md5': '^2.3.0'
'mdast-util-from-markdown': '^2.0.3'
'mdast-util-mdx-jsx': '^3.2.0'
'micromark-extension-mdx-jsx': '^3.0.2'
'minimist': '^1.2.8'
'mongodb': '^7.6.0'
'mongodb-memory-server': '^11.2.0'
'mongoose': '^9.9.4'
'mongoose-paginate-v2': '^1.9.5'
'next': '16.3.3'
'next-intl': '^4.14.1'
'next-sitemap': '^4.2.3'
'next-themes': '^0.4.6'
'node-gyp': '^13.0.2'
'nodemailer': '^9.0.6'
'nodemon': '^3.1.14'
'object-to-formdata': '^5.0.0'
'open': '^11.0.2'
'p-limit': '^7.3.1'
'path-to-regexp': '^8.4.2'
'pg': '^8.23.0'
'pino': '^10.3.1'
'pino-pretty': '^13.1.3'
'pluralize': '^8.0.0'
'postcss': '^8.5.26'
'postcss-scss': '^4.0.9'
'prettier': '^3.9.6'
'prettier-plugin-tailwindcss': '^0.8.1'
'prism-react-renderer': '^2.4.1'
'prompts': '^2.4.2'
'qs-esm': '^8.0.1'
'range-parser': '^1.3.0'
'react': '19.2.8'
'react-datepicker': '^9.1.0'
'react-dom': '19.2.8'
'react-error-boundary': '^6.1.3'
'react-hook-form': '^7.86.0'
'react-image-crop': '^11.1.2'
'react-select': '^5.10.2'
'recharts': '^3.10.1'
'rimraf': '^6.1.3'
'rollup': '^4.63.1'
'rollup-plugin-dts': '^6.5.1'
'sanitize-filename': '^1.6.4'
'sass': '^1.103.1'
'scheduler': '^0.27.0'
'semver': '^7.8.5'
'server-only': '^0.0.1'
'sharp': '^0.35.4'
'shelljs': '^0.10.0'
'slash': '^5.1.0'
'slate': '^0.126.2'
'slate-history': '^0.113.1'
'slate-hyperscript': '^0.125.0'
'slate-react': '^0.126.4'
'sonner': '^2.0.8'
'sort-package-json': '^4.0.0'
'stripe': '^22.6.0'
'stylelint': '^17.14.1'
'swc-plugin-transform-remove-imports': '^9.0.0'
'tailwind-merge': '^3.6.0'
'tailwindcss': '^4.3.3'
'tar': '^7.5.22'
'tempy': '^3.2.0'
'terminal-link': '^5.0.0'
'to-snake-case': '^1.0.0'
'ts-essentials': '^10.2.1'
'ts-morph': '^28.0.0'
'ts-node': '^10.9.2'
'tstyche': '^7.2.3'
'tsx': '^4.23.12'
'turbo': '^2.10.12'
'tw-animate-css': '^1.4.0'
'typescript': '7.0.2'
'typescript-eslint': '^8.68.0'
'undici': '^8.10.0'
'uploadthing': '^7.7.4'
'use-context-selector': '^2.0.0'
'uuid': '^14.0.2'
'vite-tsconfig-paths': '^6.1.1'
'vitest': '^4.1.11'
'vue': '^3.5.42'
'wrangler': '^4.127.1'
'ws': '^8.21.3'
'zod': '^4.5.2'
onlyBuiltDependencies:
- '@parcel/watcher'
- '@sentry/cli'
- '@swc/core'
- '@vercel/git-hooks'
- 'bufferutil'
- 'esbuild'
- 'mongodb-memory-server'
- 'sharp'
- 'unrs-resolver'
- 'utf-8-validate'
- 'workerd'
overrides:
'@noble/hashes': '1.8.0'
'zod': '^4.5.2'
'@hanzogui/adapt': '8.3.1'
'@hanzogui/animate': '8.3.1'
'@hanzogui/animate-presence': '8.3.1'
'@hanzogui/animations-css': '8.3.1'
'@hanzogui/animations-moti': '8.3.1'
'@hanzogui/animations-react-native': '8.3.1'
'@hanzogui/babel-plugin': '8.3.1'
'@hanzogui/build': '8.3.1'
'@hanzogui/button': '8.3.1'
'@hanzogui/checkbox-headless': '8.3.1'
'@hanzogui/cli': '8.3.1'
'@hanzogui/collapsible': '8.3.1'
'@hanzogui/collection': '8.3.1'
'@hanzogui/colors': '8.3.1'
'@hanzogui/component-helpers': '8.3.1'
'@hanzogui/compose-refs': '8.3.1'
'@hanzogui/config': '8.3.1'
'@hanzogui/config-default': '8.3.1'
'@hanzogui/constants': '8.3.1'
'@hanzogui/core': '8.3.1'
'@hanzogui/create-context': '8.3.1'
'@hanzogui/create-menu': '8.3.1'
'@hanzogui/dialog': '8.3.1'
'@hanzogui/dismissable': '8.3.1'
'@hanzogui/element': '8.3.1'
'@hanzogui/floating': '8.3.1'
'@hanzogui/focus-guard': '8.3.1'
'@hanzogui/focus-scope': '8.3.1'
'@hanzogui/focusable': '8.3.1'
'@hanzogui/font-size': '8.3.1'
'@hanzogui/get-button-sized': '8.3.1'
'@hanzogui/get-font-sized': '8.3.1'
'@hanzogui/get-token': '8.3.1'
'@hanzogui/group': '8.3.1'
'@hanzogui/helpers': '8.3.1'
'@hanzogui/helpers-icon': '8.3.1'
'@hanzogui/image': '8.3.1'
'@hanzogui/input': '8.3.1'
'@hanzogui/label': '8.3.1'
'@hanzogui/list-item': '8.3.1'
'@hanzogui/loader': '8.3.1'
'@hanzogui/lucide-icons-2': '8.3.1'
'@hanzogui/native': '8.3.1'
'@hanzogui/next-plugin': '8.3.1'
'@hanzogui/next-theme': '8.3.1'
'@hanzogui/polyfill-dev': '8.3.1'
'@hanzogui/popover': '8.3.1'
'@hanzogui/popper': '8.3.1'
'@hanzogui/portal': '8.3.1'
'@hanzogui/radio-headless': '8.3.1'
'@hanzogui/react-native-media-driver': '8.3.1'
'@hanzogui/react-native-svg': '8.3.1'
'@hanzogui/react-native-use-pressable': '8.3.1'
'@hanzogui/react-native-use-responder-events': '8.3.1'
'@hanzogui/react-native-web-lite': '8.3.1'
'@hanzogui/remove-scroll': '8.3.1'
'@hanzogui/roving-focus': '8.3.1'
'@hanzogui/scroll-view': '8.3.1'
'@hanzogui/separator': '8.3.1'
'@hanzogui/shapes': '8.3.1'
'@hanzogui/sheet': '8.3.1'
'@hanzogui/shell': '8.3.1'
'@hanzogui/sizable-context': '8.3.1'
'@hanzogui/spacer': '8.3.1'
'@hanzogui/stacks': '8.3.1'
'@hanzogui/start-transition': '8.3.1'
'@hanzogui/switch-headless': '8.3.1'
'@hanzogui/telemetry': '8.3.1'
'@hanzogui/text': '8.3.1'
'@hanzogui/theme': '8.3.1'
'@hanzogui/theme-base': '8.3.1'
'@hanzogui/themes': '8.3.1'
'@hanzogui/toast': '8.3.1'
'@hanzogui/use-async': '8.3.1'
'@hanzogui/use-callback-ref': '8.3.1'
'@hanzogui/use-constant': '8.3.1'
'@hanzogui/use-controllable-state': '8.3.1'
'@hanzogui/use-debounce': '8.3.1'
'@hanzogui/use-did-finish-ssr': '8.3.1'
'@hanzogui/use-direction': '8.3.1'
'@hanzogui/use-escape-keydown': '8.3.1'
'@hanzogui/use-event': '8.3.1'
'@hanzogui/use-force-update': '8.3.1'
'@hanzogui/use-keyboard-visible': '8.3.1'
'@hanzogui/use-presence': '8.3.1'
'@hanzogui/use-previous': '8.3.1'
'@hanzogui/visually-hidden': '8.3.1'
'@hanzogui/vite-plugin': '8.3.1'
'@hanzogui/web': '8.3.1'
'@hanzogui/z-index-stack': '8.3.1'
'@types/request>form-data': '^2.5.6'
'amazon-cognito-identity-js>js-cookie': '^3.0.7'
copyfiles: '^2.4.1'
cross-env: '^10.1.0'
dotenv: '^17.4.2'
graphql: '^17.0.2'
'mcp-handler>@modelcontextprotocol/sdk': '1.27.1'
react: '19.2.8'
react-dom: '19.2.8'
typescript: '7.0.2'