chore: update deps (#34487)

This commit is contained in:
Stephen Zhou
2026-04-03 11:26:49 +08:00
committed by GitHub
parent f814579ed2
commit f2fc213d52
11 changed files with 1347 additions and 1458 deletions

2613
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,9 @@
catalogMode: prefer
trustPolicy: no-downgrade trustPolicy: no-downgrade
minimumReleaseAge: 2880 trustPolicyExclude:
- chokidar@4.0.3
- reselect@5.1.1
- semver@6.3.1
blockExoticSubdeps: true blockExoticSubdeps: true
strictDepBuilds: true strictDepBuilds: true
allowBuilds: allowBuilds:
@@ -23,7 +27,7 @@ overrides:
array.prototype.flatmap: npm:@nolyfill/array.prototype.flatmap@^1.0.44 array.prototype.flatmap: npm:@nolyfill/array.prototype.flatmap@^1.0.44
array.prototype.tosorted: npm:@nolyfill/array.prototype.tosorted@^1.0.44 array.prototype.tosorted: npm:@nolyfill/array.prototype.tosorted@^1.0.44
assert: npm:@nolyfill/assert@^1.0.26 assert: npm:@nolyfill/assert@^1.0.26
brace-expansion@<2.0.2: 2.0.2 brace-expansion@>=2.0.0 <2.0.3: 2.0.3
canvas: ^3.2.2 canvas: ^3.2.2
devalue@<5.3.2: 5.3.2 devalue@<5.3.2: 5.3.2
dompurify@>=3.1.3 <=3.3.1: 3.3.2 dompurify@>=3.1.3 <=3.3.1: 3.3.2
@@ -37,6 +41,7 @@ overrides:
is-generator-function: npm:@nolyfill/is-generator-function@^1.0.44 is-generator-function: npm:@nolyfill/is-generator-function@^1.0.44
is-typed-array: npm:@nolyfill/is-typed-array@^1.0.44 is-typed-array: npm:@nolyfill/is-typed-array@^1.0.44
isarray: npm:@nolyfill/isarray@^1.0.44 isarray: npm:@nolyfill/isarray@^1.0.44
lodash-es@>=4.0.0 <= 4.17.23: 4.18.0
object.assign: npm:@nolyfill/object.assign@^1.0.44 object.assign: npm:@nolyfill/object.assign@^1.0.44
object.entries: npm:@nolyfill/object.entries@^1.0.44 object.entries: npm:@nolyfill/object.entries@^1.0.44
object.fromentries: npm:@nolyfill/object.fromentries@^1.0.44 object.fromentries: npm:@nolyfill/object.fromentries@^1.0.44
@@ -64,15 +69,15 @@ overrides:
tar@<=7.5.10: 7.5.11 tar@<=7.5.10: 7.5.11
typed-array-buffer: npm:@nolyfill/typed-array-buffer@^1.0.44 typed-array-buffer: npm:@nolyfill/typed-array-buffer@^1.0.44
undici@>=7.0.0 <7.24.0: 7.24.0 undici@>=7.0.0 <7.24.0: 7.24.0
vite: npm:@voidzero-dev/vite-plus-core@0.1.14 vite: npm:@voidzero-dev/vite-plus-core@0.1.15
vitest: npm:@voidzero-dev/vite-plus-test@0.1.14 vitest: npm:@voidzero-dev/vite-plus-test@0.1.15
which-typed-array: npm:@nolyfill/which-typed-array@^1.0.44 which-typed-array: npm:@nolyfill/which-typed-array@^1.0.44
yaml@>=2.0.0 <2.8.3: 2.8.3 yaml@>=2.0.0 <2.8.3: 2.8.3
yauzl@<3.2.1: 3.2.1 yauzl@<3.2.1: 3.2.1
catalog: catalog:
"@amplitude/analytics-browser": 2.38.0 "@amplitude/analytics-browser": 2.38.1
"@amplitude/plugin-session-replay-browser": 1.27.5 "@amplitude/plugin-session-replay-browser": 1.27.6
"@antfu/eslint-config": 7.7.3 "@antfu/eslint-config": 8.0.0
"@base-ui/react": 1.3.0 "@base-ui/react": 1.3.0
"@chromatic-com/storybook": 5.1.1 "@chromatic-com/storybook": 5.1.1
"@cucumber/cucumber": 12.7.0 "@cucumber/cucumber": 12.7.0
@@ -84,7 +89,7 @@ catalog:
"@formatjs/intl-localematcher": 0.8.2 "@formatjs/intl-localematcher": 0.8.2
"@headlessui/react": 2.2.9 "@headlessui/react": 2.2.9
"@heroicons/react": 2.2.0 "@heroicons/react": 2.2.0
"@hono/node-server": 1.19.11 "@hono/node-server": 1.19.12
"@iconify-json/heroicons": 1.2.3 "@iconify-json/heroicons": 1.2.3
"@iconify-json/ri": 1.2.10 "@iconify-json/ri": 1.2.10
"@lexical/code": 0.42.0 "@lexical/code": 0.42.0
@@ -98,34 +103,34 @@ catalog:
"@mdx-js/react": 3.1.1 "@mdx-js/react": 3.1.1
"@mdx-js/rollup": 3.1.1 "@mdx-js/rollup": 3.1.1
"@monaco-editor/react": 4.7.0 "@monaco-editor/react": 4.7.0
"@next/eslint-plugin-next": 16.2.1 "@next/eslint-plugin-next": 16.2.2
"@next/mdx": 16.2.1 "@next/mdx": 16.2.2
"@orpc/client": 1.13.13 "@orpc/client": 1.13.13
"@orpc/contract": 1.13.13 "@orpc/contract": 1.13.13
"@orpc/openapi-client": 1.13.13 "@orpc/openapi-client": 1.13.13
"@orpc/tanstack-query": 1.13.13 "@orpc/tanstack-query": 1.13.13
"@playwright/test": 1.58.2 "@playwright/test": 1.59.1
"@remixicon/react": 4.9.0 "@remixicon/react": 4.9.0
"@rgrove/parse-xml": 4.2.0 "@rgrove/parse-xml": 4.2.0
"@sentry/react": 10.46.0 "@sentry/react": 10.47.0
"@storybook/addon-docs": 10.3.3 "@storybook/addon-docs": 10.3.4
"@storybook/addon-links": 10.3.3 "@storybook/addon-links": 10.3.4
"@storybook/addon-onboarding": 10.3.3 "@storybook/addon-onboarding": 10.3.4
"@storybook/addon-themes": 10.3.3 "@storybook/addon-themes": 10.3.4
"@storybook/nextjs-vite": 10.3.3 "@storybook/nextjs-vite": 10.3.4
"@storybook/react": 10.3.3 "@storybook/react": 10.3.4
"@streamdown/math": 1.0.2 "@streamdown/math": 1.0.2
"@svgdotjs/svg.js": 3.2.5 "@svgdotjs/svg.js": 3.2.5
"@t3-oss/env-nextjs": 0.13.11 "@t3-oss/env-nextjs": 0.13.11
"@tailwindcss/postcss": 4.2.2 "@tailwindcss/postcss": 4.2.2
"@tailwindcss/typography": 0.5.19 "@tailwindcss/typography": 0.5.19
"@tailwindcss/vite": 4.2.2 "@tailwindcss/vite": 4.2.2
"@tanstack/eslint-plugin-query": 5.95.2 "@tanstack/eslint-plugin-query": 5.96.1
"@tanstack/react-devtools": 0.10.0 "@tanstack/react-devtools": 0.10.1
"@tanstack/react-form": 1.28.5 "@tanstack/react-form": 1.28.6
"@tanstack/react-form-devtools": 0.2.19 "@tanstack/react-form-devtools": 0.2.20
"@tanstack/react-query": 5.95.2 "@tanstack/react-query": 5.96.1
"@tanstack/react-query-devtools": 5.95.2 "@tanstack/react-query-devtools": 5.96.1
"@testing-library/dom": 10.4.1 "@testing-library/dom": 10.4.1
"@testing-library/jest-dom": 6.9.1 "@testing-library/jest-dom": 6.9.1
"@testing-library/react": 16.3.2 "@testing-library/react": 16.3.2
@@ -144,12 +149,12 @@ catalog:
"@types/react-syntax-highlighter": 15.5.13 "@types/react-syntax-highlighter": 15.5.13
"@types/react-window": 1.8.8 "@types/react-window": 1.8.8
"@types/sortablejs": 1.15.9 "@types/sortablejs": 1.15.9
"@typescript-eslint/eslint-plugin": 8.57.2 "@typescript-eslint/eslint-plugin": 8.58.0
"@typescript-eslint/parser": 8.57.2 "@typescript-eslint/parser": 8.58.0
"@typescript/native-preview": 7.0.0-dev.20260329.1 "@typescript/native-preview": 7.0.0-dev.20260401.1
"@vitejs/plugin-react": 6.0.1 "@vitejs/plugin-react": 6.0.1
"@vitejs/plugin-rsc": 0.5.21 "@vitejs/plugin-rsc": 0.5.21
"@vitest/coverage-v8": 4.1.1 "@vitest/coverage-v8": 4.1.2
abcjs: 6.6.2 abcjs: 6.6.2
agentation: 3.0.2 agentation: 3.0.2
ahooks: 3.9.7 ahooks: 3.9.7
@@ -157,7 +162,7 @@ catalog:
class-variance-authority: 0.7.1 class-variance-authority: 0.7.1
clsx: 2.1.1 clsx: 2.1.1
cmdk: 1.1.1 cmdk: 1.1.1
code-inspector-plugin: 1.4.5 code-inspector-plugin: 1.5.0
copy-to-clipboard: 3.3.3 copy-to-clipboard: 3.3.3
cron-parser: 5.5.0 cron-parser: 5.5.0
dayjs: 1.11.20 dayjs: 1.11.20
@@ -174,19 +179,18 @@ catalog:
eslint-markdown: 0.6.0 eslint-markdown: 0.6.0
eslint-plugin-better-tailwindcss: 4.3.2 eslint-plugin-better-tailwindcss: 4.3.2
eslint-plugin-hyoban: 0.14.1 eslint-plugin-hyoban: 0.14.1
eslint-plugin-markdown-preferences: 0.40.3 eslint-plugin-markdown-preferences: 0.41.0
eslint-plugin-no-barrel-files: 1.2.2 eslint-plugin-no-barrel-files: 1.2.2
eslint-plugin-react-hooks: 7.0.1
eslint-plugin-react-refresh: 0.5.2 eslint-plugin-react-refresh: 0.5.2
eslint-plugin-sonarjs: 4.0.2 eslint-plugin-sonarjs: 4.0.2
eslint-plugin-storybook: 10.3.3 eslint-plugin-storybook: 10.3.4
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
foxact: 0.3.0 foxact: 0.3.0
happy-dom: 20.8.9 happy-dom: 20.8.9
hono: 4.12.9 hono: 4.12.10
html-entities: 2.6.0 html-entities: 2.6.0
html-to-image: 1.11.13 html-to-image: 1.11.13
i18next: 25.10.10 i18next: 26.0.3
i18next-resources-to-backend: 1.2.1 i18next-resources-to-backend: 1.2.1
iconify-import-svg: 0.1.2 iconify-import-svg: 0.1.2
immer: 11.1.4 immer: 11.1.4
@@ -196,15 +200,15 @@ catalog:
js-yaml: 4.1.1 js-yaml: 4.1.1
jsonschema: 1.5.0 jsonschema: 1.5.0
katex: 0.16.44 katex: 0.16.44
knip: 6.1.0 knip: 6.2.0
ky: 1.14.3 ky: 1.14.3
lamejs: 1.2.1 lamejs: 1.2.1
lexical: 0.42.0 lexical: 0.42.0
mermaid: 11.13.0 mermaid: 11.14.0
mime: 4.1.0 mime: 4.1.0
mitt: 3.0.1 mitt: 3.0.1
negotiator: 1.0.0 negotiator: 1.0.0
next: 16.2.1 next: 16.2.2
next-themes: 0.4.6 next-themes: 0.4.6
nuqs: 2.8.9 nuqs: 2.8.9
pinyin-pro: 3.28.0 pinyin-pro: 3.28.0
@@ -217,7 +221,7 @@ catalog:
react-dom: 19.2.4 react-dom: 19.2.4
react-easy-crop: 5.5.7 react-easy-crop: 5.5.7
react-hotkeys-hook: 5.2.4 react-hotkeys-hook: 5.2.4
react-i18next: 16.6.6 react-i18next: 17.0.2
react-multi-email: 1.0.25 react-multi-email: 1.0.25
react-papaparse: 4.4.0 react-papaparse: 4.4.0
react-pdf-highlighter: 8.0.0-rc.0 react-pdf-highlighter: 8.0.0-rc.0
@@ -229,30 +233,29 @@ catalog:
reactflow: 11.11.4 reactflow: 11.11.4
remark-breaks: 4.0.0 remark-breaks: 4.0.0
remark-directive: 4.0.0 remark-directive: 4.0.0
sass: 1.98.0
scheduler: 0.27.0 scheduler: 0.27.0
sharp: 0.34.5 sharp: 0.34.5
sortablejs: 1.15.7 sortablejs: 1.15.7
std-semver: 1.0.8 std-semver: 1.0.8
storybook: 10.3.3 storybook: 10.3.4
streamdown: 2.5.0 streamdown: 2.5.0
string-ts: 2.3.1 string-ts: 2.3.1
tailwind-merge: 3.5.0 tailwind-merge: 3.5.0
tailwindcss: 4.2.2 tailwindcss: 4.2.2
taze: 19.10.0 taze: 19.11.0
tldts: 7.0.27 tldts: 7.0.27
tsup: ^8.5.1 tsdown: 0.21.7
tsx: 4.21.0 tsx: 4.21.0
typescript: 5.9.3 typescript: 6.0.2
uglify-js: 3.19.3 uglify-js: 3.19.3
unist-util-visit: 5.1.0 unist-util-visit: 5.1.0
use-context-selector: 2.0.0 use-context-selector: 2.0.0
uuid: 13.0.0 uuid: 13.0.0
vinext: 0.0.38 vinext: 0.0.39
vite: npm:@voidzero-dev/vite-plus-core@0.1.14 vite: npm:@voidzero-dev/vite-plus-core@0.1.15
vite-plugin-inspect: 12.0.0-beta.1 vite-plugin-inspect: 12.0.0-beta.1
vite-plus: 0.1.14 vite-plus: 0.1.15
vitest: npm:@voidzero-dev/vite-plus-test@0.1.14 vitest: npm:@voidzero-dev/vite-plus-test@0.1.15
vitest-canvas-mock: 1.1.4 vitest-canvas-mock: 1.1.4
zod: 4.3.6 zod: 4.3.6
zundo: 2.3.0 zundo: 2.3.0

View File

@@ -45,12 +45,12 @@
"homepage": "https://dify.ai", "homepage": "https://dify.ai",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"build": "tsup", "build": "vp pack",
"lint": "eslint", "lint": "eslint",
"lint:fix": "eslint --fix", "lint:fix": "eslint --fix",
"type-check": "tsc -p tsconfig.json --noEmit", "type-check": "tsc -p tsconfig.json --noEmit",
"test": "vitest run", "test": "vp test",
"test:coverage": "vitest run --coverage", "test:coverage": "vp test --coverage",
"publish:check": "./scripts/publish.sh --dry-run", "publish:check": "./scripts/publish.sh --dry-run",
"publish:npm": "./scripts/publish.sh" "publish:npm": "./scripts/publish.sh"
}, },
@@ -61,8 +61,8 @@
"@typescript-eslint/parser": "catalog:", "@typescript-eslint/parser": "catalog:",
"@vitest/coverage-v8": "catalog:", "@vitest/coverage-v8": "catalog:",
"eslint": "catalog:", "eslint": "catalog:",
"tsup": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vite-plus": "catalog:",
"vitest": "catalog:" "vitest": "catalog:"
} }
} }

View File

@@ -11,7 +11,8 @@
"strict": true, "strict": true,
"esModuleInterop": true, "esModuleInterop": true,
"forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true,
"skipLibCheck": true "skipLibCheck": true,
"types": ["node"]
}, },
"include": ["src/**/*.ts", "tests/**/*.ts"] "include": ["src/**/*.ts", "tests/**/*.ts"]
} }

View File

@@ -1,12 +0,0 @@
import { defineConfig } from "tsup";
export default defineConfig({
entry: ["src/index.ts"],
format: ["esm"],
dts: true,
clean: true,
sourcemap: true,
splitting: false,
treeshake: true,
outDir: "dist",
});

View File

@@ -1,6 +1,17 @@
import { defineConfig } from "vitest/config"; import { defineConfig } from "vite-plus";
export default defineConfig({ export default defineConfig({
pack: {
entry: ["src/index.ts"],
format: ["esm"],
dts: true,
clean: true,
sourcemap: true,
// splitting: false,
treeshake: true,
outDir: "dist",
target: false,
},
test: { test: {
environment: "node", environment: "node",
include: ["**/*.test.ts"], include: ["**/*.test.ts"],

View File

@@ -6,10 +6,5 @@ export default defineConfig({
'react-syntax-highlighter', 'react-syntax-highlighter',
'react-window', 'react-window',
'@types/react-window', '@types/react-window',
// We can not upgrade these yet
'typescript',
], ],
maturityPeriod: 2,
}) })

View File

@@ -743,9 +743,6 @@
"no-restricted-imports": { "no-restricted-imports": {
"count": 2 "count": 2
}, },
"react-refresh/only-export-components": {
"count": 1
},
"tailwindcss/enforce-consistent-class-order": { "tailwindcss/enforce-consistent-class-order": {
"count": 1 "count": 1
} }
@@ -3630,17 +3627,11 @@
} }
}, },
"app/components/base/prompt-editor/plugins/shortcuts-popup-plugin/index.tsx": { "app/components/base/prompt-editor/plugins/shortcuts-popup-plugin/index.tsx": {
"react-refresh/only-export-components": {
"count": 1
},
"ts/no-explicit-any": { "ts/no-explicit-any": {
"count": 2 "count": 2
} }
}, },
"app/components/base/prompt-editor/plugins/update-block.tsx": { "app/components/base/prompt-editor/plugins/update-block.tsx": {
"react-refresh/only-export-components": {
"count": 2
},
"ts/no-explicit-any": { "ts/no-explicit-any": {
"count": 2 "count": 2
} }
@@ -7917,9 +7908,6 @@
} }
}, },
"app/components/signin/countdown.tsx": { "app/components/signin/countdown.tsx": {
"react-refresh/only-export-components": {
"count": 2
},
"tailwindcss/enforce-consistent-class-order": { "tailwindcss/enforce-consistent-class-order": {
"count": 1 "count": 1
} }
@@ -8317,7 +8305,7 @@
}, },
"app/components/workflow/block-selector/index-bar.tsx": { "app/components/workflow/block-selector/index-bar.tsx": {
"react-refresh/only-export-components": { "react-refresh/only-export-components": {
"count": 5 "count": 1
}, },
"tailwindcss/enforce-consistent-class-order": { "tailwindcss/enforce-consistent-class-order": {
"count": 1 "count": 1

View File

@@ -1,14 +1,12 @@
// @ts-check // @ts-check
import antfu, { GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_TESTS, GLOB_TS, GLOB_TSX, isInEditorEnv, isInGitHooksOrLintStaged } from '@antfu/eslint-config' import antfu, { GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_TESTS, GLOB_TS, GLOB_TSX, isInEditorEnv, isInGitHooksOrLintStaged } from '@antfu/eslint-config'
import pluginReact from '@eslint-react/eslint-plugin'
import pluginQuery from '@tanstack/eslint-plugin-query' import pluginQuery from '@tanstack/eslint-plugin-query'
import md from 'eslint-markdown' import md from 'eslint-markdown'
import tailwindcss from 'eslint-plugin-better-tailwindcss' import tailwindcss from 'eslint-plugin-better-tailwindcss'
import hyoban from 'eslint-plugin-hyoban' import hyoban from 'eslint-plugin-hyoban'
import markdownPreferences from 'eslint-plugin-markdown-preferences' import markdownPreferences from 'eslint-plugin-markdown-preferences'
import noBarrelFiles from 'eslint-plugin-no-barrel-files' import noBarrelFiles from 'eslint-plugin-no-barrel-files'
import { reactRefresh } from 'eslint-plugin-react-refresh'
import sonar from 'eslint-plugin-sonarjs' import sonar from 'eslint-plugin-sonarjs'
import storybook from 'eslint-plugin-storybook' import storybook from 'eslint-plugin-storybook'
import { import {
@@ -26,11 +24,14 @@ process.env.TAILWIND_MODE ??= 'ESLINT'
const disableRuleAutoFix = !(isInEditorEnv() || isInGitHooksOrLintStaged()) const disableRuleAutoFix = !(isInEditorEnv() || isInGitHooksOrLintStaged())
const plugins = pluginReact.configs.all.plugins
export default antfu( export default antfu(
{ {
react: false, react: {
overrides: {
'react/set-state-in-effect': 'error',
'react/no-unnecessary-use-prefix': 'error',
},
},
nextjs: { nextjs: {
overrides: { overrides: {
'next/no-img-element': 'off', 'next/no-img-element': 'off',
@@ -58,24 +59,6 @@ export default antfu(
e18e: false, e18e: false,
pnpm: false, pnpm: false,
}, },
{
plugins: {
'react': plugins?.['@eslint-react'],
'react-dom': plugins?.['@eslint-react/dom'],
'react-naming-convention': plugins?.['@eslint-react/naming-convention'],
'react-rsc': plugins?.['@eslint-react/rsc'],
'react-web-api': plugins?.['@eslint-react/web-api'],
},
},
{
files: [GLOB_TS, GLOB_TSX],
rules: {
...pluginReact.configs['recommended-typescript'].rules,
'react/prefer-namespace-import': 'error',
'react/set-state-in-effect': 'error',
'react/no-unnecessary-use-prefix': 'error',
},
},
{ {
files: [...GLOB_TESTS, GLOB_MARKDOWN_CODE, 'vitest.setup.ts', 'test/i18n-mock.ts'], files: [...GLOB_TESTS, GLOB_MARKDOWN_CODE, 'vitest.setup.ts', 'test/i18n-mock.ts'],
rules: { rules: {
@@ -92,7 +75,6 @@ export default antfu(
'no-barrel-files/no-barrel-files': 'error', 'no-barrel-files/no-barrel-files': 'error',
}, },
}, },
reactRefresh.configs.next(),
markdownPreferences.configs.standard, markdownPreferences.configs.standard,
{ {
files: [GLOB_MARKDOWN], files: [GLOB_MARKDOWN],
@@ -231,10 +213,3 @@ export default antfu(
'tailwindcss/no-unnecessary-whitespace', 'tailwindcss/no-unnecessary-whitespace',
] ]
: []) : [])
.renamePlugins({
'@eslint-react': 'react',
'@eslint-react/dom': 'react-dom',
'@eslint-react/naming-convention': 'react-naming-convention',
'@eslint-react/rsc': 'react-rsc',
'@eslint-react/web-api': 'react-web-api',
})

View File

@@ -6,7 +6,6 @@ export function getInitOptions(): InitOptions {
// We do not have en for fallback // We do not have en for fallback
load: 'currentOnly', load: 'currentOnly',
fallbackLng: 'en-US', fallbackLng: 'en-US',
showSupportNotice: false,
partialBundledLanguages: true, partialBundledLanguages: true,
keySeparator: false, keySeparator: false,
ns: namespaces, ns: namespaces,

View File

@@ -212,7 +212,6 @@
"eslint-plugin-hyoban": "catalog:", "eslint-plugin-hyoban": "catalog:",
"eslint-plugin-markdown-preferences": "catalog:", "eslint-plugin-markdown-preferences": "catalog:",
"eslint-plugin-no-barrel-files": "catalog:", "eslint-plugin-no-barrel-files": "catalog:",
"eslint-plugin-react-hooks": "catalog:",
"eslint-plugin-react-refresh": "catalog:", "eslint-plugin-react-refresh": "catalog:",
"eslint-plugin-sonarjs": "catalog:", "eslint-plugin-sonarjs": "catalog:",
"eslint-plugin-storybook": "catalog:", "eslint-plugin-storybook": "catalog:",
@@ -221,7 +220,6 @@
"knip": "catalog:", "knip": "catalog:",
"postcss": "catalog:", "postcss": "catalog:",
"react-server-dom-webpack": "catalog:", "react-server-dom-webpack": "catalog:",
"sass": "catalog:",
"storybook": "catalog:", "storybook": "catalog:",
"tailwindcss": "catalog:", "tailwindcss": "catalog:",
"tsx": "catalog:", "tsx": "catalog:",