chore: upgrade workspace dependencies (#40069)

This commit is contained in:
yyh 2026-08-06 13:56:30 +08:00 committed by GitHub
parent 1973a2e96f
commit cfef48c408
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 2101 additions and 1859 deletions

View File

@ -5,13 +5,12 @@ runs:
using: composite
steps:
- name: Setup pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with:
run_install: false
- name: Setup Vite+
uses: voidzero-dev/setup-vp@ca1c46663915d6c1042ae23bd39ab85718bfb0fa # v1.10.0
uses: voidzero-dev/setup-vp@143f5f385f39b1b753ffed1a01ad443811855c8b # v1.16.1
with:
version: 0.2.6
node-version-file: .nvmrc
cache: true
run-install: true

View File

@ -88,7 +88,7 @@ jobs:
with:
bun-version: latest
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with:
package_json_field: packageManager
run_install: false
@ -131,7 +131,7 @@ jobs:
- uses: ./.github/actions/setup-web
- uses: oven-sh/setup-bun@v2
with: { bun-version: latest }
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with: { package_json_field: packageManager, run_install: false }
- run: pnpm install --frozen-lockfile
- run: pnpm tree:gen
@ -178,7 +178,7 @@ jobs:
- uses: ./.github/actions/setup-web
- uses: oven-sh/setup-bun@v2
with: { bun-version: latest }
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with: { package_json_field: packageManager, run_install: false }
- run: pnpm install --frozen-lockfile
- run: pnpm tree:gen
@ -241,7 +241,7 @@ jobs:
- uses: ./.github/actions/setup-web
- uses: oven-sh/setup-bun@v2
with: { bun-version: latest }
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with: { package_json_field: packageManager, run_install: false }
- run: pnpm install --frozen-lockfile
- run: pnpm tree:gen
@ -303,7 +303,7 @@ jobs:
- uses: ./.github/actions/setup-web
- uses: oven-sh/setup-bun@v2
with: { bun-version: latest }
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with: { package_json_field: packageManager, run_install: false }
- run: pnpm install --frozen-lockfile
- run: pnpm tree:gen
@ -359,7 +359,7 @@ jobs:
- uses: ./.github/actions/setup-web
- uses: oven-sh/setup-bun@v2
with: { bun-version: latest }
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with: { package_json_field: packageManager, run_install: false }
- run: pnpm install --frozen-lockfile
- run: pnpm tree:gen

View File

@ -36,7 +36,7 @@ jobs:
uses: ./.github/actions/setup-web
- name: Setup Bun
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: cli/.bun-version

View File

@ -114,7 +114,7 @@ jobs:
run: node scripts/release-naming.mjs github-env >> "$GITHUB_ENV"
- name: Setup Bun
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: cli/.bun-version

View File

@ -48,7 +48,7 @@ jobs:
sandbox-runtime-changed: ${{ steps.changes.outputs.sandbox-runtime }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
- uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
id: changes
with:
filters: |

View File

@ -19,7 +19,7 @@ jobs:
external-e2e-changed: ${{ steps.changes.outputs.external_e2e }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
- uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
id: changes
with:
filters: |

View File

@ -57,7 +57,7 @@ jobs:
cache-dependency-path: dify-agent-runtime/go.sum
- name: Run golangci-lint
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v6.5.0
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0
with:
working-directory: dify-agent-runtime
version: latest

View File

@ -105,6 +105,8 @@ jobs:
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
knip.config.ts
scripts/check-web-production-unused-after-knip-fix.mjs
.nvmrc
.github/workflows/style.yml
.github/actions/setup-web/**
@ -121,14 +123,17 @@ jobs:
- name: Web dead code check
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: .
run: vp run knip
- name: Web dead code check production
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: .
run: vp run knip:production
- name: Web production unused declarations check
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: .
run: vp run knip:production-unused-check
ts-common-style:

View File

@ -158,7 +158,7 @@ jobs:
- name: Run Claude Code for Translation Sync
if: steps.context.outputs.CHANGED_FILES != ''
uses: anthropics/claude-code-action@be7b93b1907a4abad570368f3c74b6fe3807510b # v1.0.183
uses: anthropics/claude-code-action@c038e4dcdedfbbca18dfb17df35a17e40ded4ddc # v1.0.186
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}

58
knip.config.ts Normal file
View File

@ -0,0 +1,58 @@
import type { KnipConfig } from 'knip'
/**
* @see https://knip.dev/reference/configuration
*/
const config: KnipConfig = {
compilers: {
mdx: true,
},
workspaces: {
web: {
entry: [
'scripts/**/*.{js,ts,mjs}',
'bin/**/*.{js,ts,mjs}',
'tsslint.config.ts',
'dev-proxy.config.ts',
'plugins/eslint/index.js',
],
project: [
'**/*.{js,mjs,cjs,jsx,ts,tsx,mts,cts,css,mdx}!',
'!**/__mocks__/**!',
'!**/__tests__/**!',
'!**/*.stories.{js,jsx,ts,tsx,mdx}!',
'!.storybook/**!',
'!plugins/**!',
'!test/**!',
'!vitest.setup.ts!',
],
ignore: ['public/**'],
ignoreFiles: [
'features/agent-v2/agent-detail/configure/components/orchestrate/memory.tsx',
'features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/option-menu.tsx',
'i18n-config/locale-resources/*.ts',
],
ignoreDependencies: ['@iconify-json/*', '@storybook/addon-onboarding'],
},
},
/// keep-sorted
rules: {
binaries: 'warn',
catalog: 'error',
dependencies: 'error',
devDependencies: 'warn',
duplicates: 'error',
enumMembers: 'error',
exports: 'error',
files: 'error',
namespaceMembers: 'error',
nsExports: 'error',
nsTypes: 'error',
optionalPeerDependencies: 'error',
types: 'error',
unlisted: 'error',
unresolved: 'error',
},
}
export default config

View File

@ -6,6 +6,9 @@
"check": "vp check && pnpm lint:eslint",
"check:fix": "pnpm lint:eslint:fix && vp check --fix",
"dev": "concurrently -k -n vinext,proxy \"vp run dify-web#dev:vinext\" \"vp run dify-web#dev:proxy\"",
"knip": "knip --workspace web",
"knip:production": "knip --workspace web --production --include files",
"knip:production-unused-check": "node ./scripts/check-web-production-unused-after-knip-fix.mjs",
"prepare": "vp config",
"lint:oxlint": "vp lint",
"lint:oxlint:fix": "vp lint --fix",
@ -45,6 +48,7 @@
"eslint-plugin-toml": "catalog:",
"eslint-plugin-unicorn": "catalog:",
"eslint-plugin-yml": "catalog:",
"knip": "catalog:",
"typescript": "catalog:",
"vite": "catalog:",
"vite-plus": "catalog:"
@ -59,5 +63,5 @@
"engines": {
"node": "^22.22.1"
},
"packageManager": "pnpm@11.17.0"
"packageManager": "pnpm@11.20.0"
}

3669
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -39,32 +39,32 @@ overrides:
postcss-selector-parser@>=6.0.0 <6.1.3: 6.1.4
postcss-selector-parser@>=7.0.0 <7.1.3: 7.1.4
postcss@<8.5.10: ^8.5.10
rollup@>=4.0.0 <4.59.0: 4.62.3
rollup@>=4.0.0 <4.59.0: 4.62.4
safer-buffer: npm:@nolyfill/safer-buffer@^1.0.44
side-channel: npm:@nolyfill/side-channel@^1.0.44
solid-js: 1.9.14
string-width: ~8.2.2
tar@<=7.5.15: ^7.5.16
vite: npm:@voidzero-dev/vite-plus-core@0.2.6
ws@>=8.0.0 <8.20.1: ^8.21.1
vite: npm:@voidzero-dev/vite-plus-core@0.2.8
ws@>=8.0.0 <8.20.1: ^8.21.2
yaml@>=2.0.0 <2.8.3: 2.9.0
yauzl@<3.2.1: 3.2.1
catalog:
'@amplitude/analytics-browser': 2.45.4
'@amplitude/plugin-session-replay-browser': 1.33.6
'@amplitude/analytics-browser': 2.45.5
'@amplitude/plugin-session-replay-browser': 1.33.7
'@base-ui/react': 1.7.0
'@chromatic-com/storybook': 5.2.1
'@cucumber/cucumber': 13.2.0
'@cucumber/cucumber': 13.2.1
'@egoist/tailwindcss-icons': 1.9.2
'@emoji-mart/data': 1.2.1
'@eslint-community/eslint-plugin-eslint-comments': 4.7.2
'@eslint-react/eslint-plugin': 5.18.0
'@eslint-react/eslint-plugin': 5.18.2
'@eslint/markdown': 8.0.3
'@floating-ui/react': 0.27.20
'@formatjs/intl-localematcher': 0.8.13
'@heroicons/react': 2.2.0
'@hey-api/openapi-ts': 0.98.2
'@hono/node-server': 2.0.12
'@hono/node-server': 2.1.0
'@iconify-json/heroicons': 1.2.3
'@iconify-json/ri': 1.2.10
'@lexical/code': 0.47.0
@ -77,45 +77,45 @@ catalog:
'@mdx-js/loader': 3.1.1
'@mdx-js/react': 3.1.1
'@mdx-js/rollup': 3.1.1
'@mediabunny/mp3-encoder': 1.51.0
'@mediabunny/mp3-encoder': 1.52.3
'@monaco-editor/react': 4.7.0
'@napi-rs/keyring': 1.3.0
'@next/mdx': 16.3.0
'@orpc/client': 1.14.10
'@orpc/contract': 1.14.10
'@orpc/openapi-client': 1.14.10
'@orpc/tanstack-query': 1.14.10
'@playwright/test': 1.62.0
'@orpc/client': 1.14.14
'@orpc/contract': 1.14.14
'@orpc/openapi-client': 1.14.14
'@orpc/tanstack-query': 1.14.14
'@playwright/test': 1.62.1
'@remixicon/react': 4.9.0
'@rgrove/parse-xml': 4.2.3
'@sentry/react': 10.68.0
'@storybook/addon-a11y': 10.5.4
'@storybook/addon-docs': 10.5.4
'@storybook/addon-links': 10.5.4
'@storybook/addon-onboarding': 10.5.4
'@storybook/addon-themes': 10.5.4
'@storybook/addon-vitest': 10.5.4
'@storybook/nextjs-vite': 10.5.4
'@storybook/react': 10.5.4
'@storybook/react-vite': 10.5.4
'@sentry/react': 10.69.0
'@storybook/addon-a11y': 10.5.6
'@storybook/addon-docs': 10.5.6
'@storybook/addon-links': 10.5.6
'@storybook/addon-onboarding': 10.5.6
'@storybook/addon-themes': 10.5.6
'@storybook/addon-vitest': 10.5.6
'@storybook/nextjs-vite': 10.5.6
'@storybook/react': 10.5.6
'@storybook/react-vite': 10.5.6
'@streamdown/math': 1.0.2
'@svgdotjs/svg.js': 3.2.7
'@svgdotjs/svg.js': 3.2.8
'@t3-oss/env-core': 0.13.11
'@t3-oss/env-nextjs': 0.13.11
'@tailwindcss/postcss': 4.3.3
'@tailwindcss/typography': 0.5.20
'@tailwindcss/vite': 4.3.3
'@tanstack/eslint-plugin-query': 5.101.4
'@tanstack/form-core': 1.33.2
'@tanstack/form-core': 1.33.3
'@tanstack/query-core': 5.101.4
'@tanstack/react-form': 1.33.2
'@tanstack/react-form': 1.33.3
'@tanstack/react-hotkeys': 0.10.0
'@tanstack/react-query': 5.101.4
'@tanstack/react-virtual': 3.14.8
'@tanstack/react-virtual': 3.14.9
'@testing-library/dom': 10.4.1
'@testing-library/jest-dom': 6.9.1
'@testing-library/react': 16.3.2
'@testing-library/user-event': 14.6.1
'@testing-library/user-event': 14.6.3
'@tsslint/cli': 3.1.4
'@tsslint/compat-eslint': 3.1.4
'@tsslint/config': 3.1.4
@ -124,13 +124,13 @@ catalog:
'@types/negotiator': 0.6.4
'@types/node': 25.9.5
'@types/qs': 6.15.1
'@types/react': 19.2.17
'@types/react-dom': 19.2.3
'@types/react': 19.2.18
'@types/react-dom': 19.2.4
'@types/sortablejs': 1.15.9
'@typescript-eslint/parser': 8.65.0
'@typescript-eslint/parser': 8.66.0
'@typescript/native': npm:typescript@7.0.2
'@vitejs/plugin-react': 6.0.4
'@vitejs/plugin-rsc': 0.5.30
'@vitejs/plugin-react': 6.0.5
'@vitejs/plugin-rsc': 0.5.33
'@vitest/browser': 4.1.10
'@vitest/browser-playwright': 4.1.10
'@vitest/coverage-v8': 4.1.10
@ -148,7 +148,7 @@ catalog:
cron-parser: 5.6.2
dayjs: 1.11.21
decimal.js: 10.6.0
dompurify: 3.4.12
dompurify: 3.4.13
echarts: 6.1.0
echarts-for-react: 3.0.6
elkjs: 0.11.1
@ -164,59 +164,59 @@ catalog:
eslint-plugin-command: 3.5.3
eslint-plugin-erasable-syntax-only: 0.4.2
eslint-plugin-hyoban: 0.14.1
eslint-plugin-jsdoc: 63.3.1
eslint-plugin-jsonc: 3.3.0
eslint-plugin-jsdoc: 63.3.3
eslint-plugin-jsonc: 3.4.1
eslint-plugin-markdown-preferences: 0.41.1
eslint-plugin-n: 18.2.2
eslint-plugin-no-barrel-files: 1.3.1
eslint-plugin-perfectionist: 5.10.0
eslint-plugin-perfectionist: 5.10.1
eslint-plugin-pnpm: 1.7.0
eslint-plugin-regexp: 3.1.1
eslint-plugin-storybook: 10.5.4
eslint-plugin-storybook: 10.5.6
eslint-plugin-toml: 1.5.0
eslint-plugin-unicorn: 71.1.0
eslint-plugin-yml: 3.6.0
eslint-plugin-yml: 3.8.1
eventsource-parser: 3.1.0
fast-deep-equal: 3.1.3
foxact: 0.3.8
fuse.js: 7.5.0
happy-dom: 20.11.1
hast-util-to-jsx-runtime: 2.3.6
hono: 4.12.32
hono: 4.13.0
html-entities: 2.6.0
html-to-image: 1.11.13
i18next: 26.3.6
i18next-resources-to-backend: 1.2.1
i18next-resources-to-backend: 1.2.3
iconify-import-svg: 0.2.0
immer: 11.1.15
immer: 11.1.16
jotai: 2.20.2
jotai-effect: 2.4.1
jotai-scope: 0.11.0
jotai-tanstack-query: 0.11.0
js-cookie: 3.0.8
js-yaml: 5.2.2
js-yaml: 5.2.3
jsonschema: 1.5.0
katex: 0.17.0
knip: 6.29.0
knip: 6.31.0
ky: 2.0.2
lexical: 0.47.0
lockfile: 1.0.4
loro-crdt: 1.13.8
mediabunny: 1.51.0
mermaid: 11.16.0
loro-crdt: 1.13.9
mediabunny: 1.52.3
mermaid: 11.16.1
mime: 4.1.0
mitt: 3.0.1
motion: 12.42.2
motion: 12.43.0
negotiator: 1.0.0
next: 16.3.0
next-themes: 0.4.6
nuqs: 2.9.2
nuqs: 2.9.5
open: 11.0.0
ora: 9.4.1
picocolors: 1.1.1
pinyin-pro: 3.28.2
playwright: 1.62.0
postcss: 8.5.23
playwright: 1.62.1
postcss: 8.5.25
qrcode.react: 4.2.0
qs: 6.15.3
react: 19.2.8
@ -234,17 +234,17 @@ catalog:
scheduler: 0.27.0
server-only: 0.0.1
sharp: 0.35.3
shiki: 4.3.1
shiki: 4.4.2
socket.io-client: 4.8.3
sortablejs: 1.15.7
std-semver: 1.0.8
storybook: 10.5.4
storybook: 10.5.6
streamdown: 2.5.0
string-ts: 2.3.1
tailwind-merge: 3.6.0
tailwindcss: 4.3.3
tldts: 7.4.9
tsx: 4.23.1
tldts: 7.4.10
tsx: 4.23.8
typescript: npm:@typescript/typescript6@6.0.2
uglify-js: 3.19.3
undici: 7.29.0
@ -252,9 +252,9 @@ catalog:
use-context-selector: 2.0.0
uuid: 14.0.1
vinext: 1.0.0-beta.4
vite: npm:@voidzero-dev/vite-plus-core@0.2.6
vite: npm:@voidzero-dev/vite-plus-core@0.2.8
vite-plugin-inspect: 12.0.2
vite-plus: 0.2.6
vite-plus: 0.2.8
vitest: 4.1.10
vitest-browser-react: 2.2.0
vitest-canvas-mock: 1.1.4

View File

@ -5,7 +5,7 @@ import path from 'node:path'
import { fileURLToPath } from 'node:url'
const scriptDir = path.dirname(fileURLToPath(import.meta.url))
const repoRoot = path.resolve(scriptDir, '../..')
const repoRoot = path.resolve(scriptDir, '..')
const webDir = path.join(repoRoot, 'web')
const unusedLintConfig = path.join(webDir, 'oxlint.unused.config.json')
const require = createRequire(import.meta.url)
@ -96,7 +96,7 @@ async function restoreWorktree() {
}
}
const knip = path.join(webDir, 'node_modules', '.bin', commandName('knip'))
const knip = path.join(repoRoot, 'node_modules', '.bin', commandName('knip'))
let shouldRestore = false
let hasUnusedMessages = false
@ -105,7 +105,9 @@ try {
shouldRestore = true
console.log('Running knip --production --fix...')
const knipResult = await run(knip, ['--production', '--fix'], { cwd: webDir })
const knipResult = await run(knip, ['--workspace', 'web', '--production', '--fix'], {
cwd: repoRoot,
})
if (knipResult.status !== 0) {
process.stdout.write(knipResult.stdout)
process.stderr.write(knipResult.stderr)

View File

@ -5,7 +5,7 @@ import ReactECharts from 'echarts-for-react'
import { memo, useMemo } from 'react'
import style from './index.module.css'
export type SimplePieChartProps = {
type SimplePieChartProps = {
percentage?: number
fill?: string
stroke?: string

View File

@ -13,7 +13,7 @@ import * as React from 'react'
import { useCallback, useState } from 'react'
import { useTranslation } from 'react-i18next'
export type DSLExportConfirmModalProps = {
type DSLExportConfirmModalProps = {
envList: Array<{ name: string; value: unknown }>
onConfirm: (state: boolean) => void | Promise<void>
onClose: () => void

View File

@ -14,11 +14,11 @@ import { useRouter } from '@/next/navigation'
import { useEducationVerify } from '@/service/use-education'
import { SparklesSoftAccent } from '../components/base/icons/src/public/common'
export type ExpireNoticeModalPayloadProps = {
type ExpireNoticeModalPayloadProps = {
expireAt: number
expired: boolean
}
export type Props = {
type Props = {
onClose: () => void
} & ExpireNoticeModalPayloadProps

View File

@ -1,57 +0,0 @@
import type { KnipConfig } from 'knip'
/**
* @see https://knip.dev/reference/configuration
*/
const config: KnipConfig = {
compilers: {
mdx: true,
},
entry: [
'scripts/**/*.{js,ts,mjs}',
'bin/**/*.{js,ts,mjs}',
'tsslint.config.ts',
'dev-proxy.config.ts',
'plugins/eslint/index.js',
],
project: [
'**/*.{js,mjs,cjs,jsx,ts,tsx,mts,cts,css,mdx}!',
'!**/__mocks__/**!',
'!**/__tests__/**!',
'!**/*.stories.{js,jsx,ts,tsx,mdx}!',
'!.storybook/**!',
'!plugins/**!',
'!test/**!',
'!vitest.setup.ts!',
],
ignore: ['public/**'],
ignoreFiles: [
'features/agent-v2/agent-detail/configure/components/orchestrate/memory.tsx',
'features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/option-menu.tsx',
'i18n-config/locale-resources/*.ts',
],
ignoreDependencies: ['@iconify-json/*', '@storybook/addon-onboarding', 'eslint'],
/// keep-sorted
rules: {
// TODO: fix these warnings
// Unlisted binaries (1)
// vp package.json
binaries: 'warn',
catalog: 'error',
dependencies: 'error',
devDependencies: 'warn',
duplicates: 'error',
enumMembers: 'error',
exports: 'error',
files: 'error',
namespaceMembers: 'error',
nsExports: 'error',
nsTypes: 'error',
optionalPeerDependencies: 'error',
types: 'error',
unlisted: 'error',
unresolved: 'error',
},
}
export default config

View File

@ -22,9 +22,6 @@
"i18n:check": "tsx ./scripts/check-i18n.js",
"i18n:migrate-selectors": "tsx ./scripts/migrate-i18n-selectors.ts",
"i18n:prune-unused": "tsx ./scripts/prune-unused-i18n.ts",
"knip": "knip",
"knip:production": "knip --production --include files",
"knip:production-unused-check": "node ./scripts/check-production-unused-after-knip-fix.mjs",
"lint:tss": "tsslint --project tsconfig.json",
"preinstall": "npx only-allow pnpm",
"start": "node ./scripts/copy-and-start.mjs",
@ -191,7 +188,6 @@
"agentation": "catalog:",
"code-inspector-plugin": "catalog:",
"happy-dom": "catalog:",
"knip": "catalog:",
"postcss": "catalog:",
"react-server-dom-webpack": "catalog:",
"storybook": "catalog:",