chore: scope package.json deps to packages (#13835)

- Move dev-only types to devDependencies
- Move frontend-only deps from root to twenty-front
- Add website-only deps to twenty-website
- Fix react-phone-number-input patch path

CI should validate.
This commit is contained in:
Félix Malfait
2025-08-12 07:15:20 +02:00
committed by GitHub
parent 245e69e622
commit af2dace71c
8 changed files with 155 additions and 688 deletions
+2 -59
View File
@@ -2,17 +2,9 @@
"private": true,
"dependencies": {
"@apollo/client": "^3.7.17",
"@calcom/embed-react": "^1.5.3",
"@codesandbox/sandpack-react": "^2.13.5",
"@dagrejs/dagre": "^1.1.2",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@envelop/on-resolve": "^4.1.0",
"@floating-ui/react": "^0.24.3",
"@graphiql/plugin-explorer": "^1.0.2",
"@graphql-tools/schema": "^10.0.0",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "^3.1.1",
"@linaria/core": "^6.2.0",
"@linaria/react": "^6.2.1",
"@react-email/components": "0.0.35",
@@ -20,44 +12,22 @@
"@sentry/profiling-node": "^9.26.0",
"@sentry/react": "^9.26.0",
"@sniptt/guards": "^0.2.0",
"@swc/jest": "^0.2.39",
"@tabler/icons-react": "^3.31.0",
"@types/dompurify": "^3.0.5",
"@types/facepaint": "^1.2.5",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.chunk": "^4.2.9",
"@types/lodash.merge": "^4.6.7",
"@types/lodash.pick": "^4.3.7",
"@wyw-in-js/vite": "^0.5.3",
"@xyflow/react": "^12.4.2",
"add": "^2.0.6",
"apollo-link-rest": "^0.9.0",
"apollo-server-express": "^3.12.0",
"apollo-upload-client": "^17.0.0",
"archiver": "^7.0.1",
"axios": "^1.6.2",
"bcrypt": "^5.1.1",
"bytes": "^3.1.2",
"danger-plugin-todos": "^1.3.1",
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"deep-equal": "^2.2.2",
"dompurify": "^3.0.11",
"dotenv-cli": "^7.2.1",
"drizzle-orm": "^0.29.3",
"facepaint": "^1.2.1",
"file-type": "16.5.4",
"framer-motion": "^11.18.0",
"fuse.js": "^7.1.0",
"googleapis": "105",
"graphiql": "^3.1.1",
"hex-rgb": "^5.0.0",
"iframe-resizer-react": "^1.1.0",
"immer": "^10.1.1",
"jest-mock-extended": "^3.0.4",
"js-cookie": "^3.0.5",
"json-2-csv": "^5.4.0",
"jsonwebtoken": "^9.0.0",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
"lodash.chunk": "^4.2.0",
@@ -80,45 +50,25 @@
"microdiff": "^1.3.2",
"moize": "^6.1.6",
"patch-package": "^8.0.0",
"pg": "^8.11.3",
"pg-boss": "^9.0.3",
"planer": "^1.2.0",
"pluralize": "^8.0.0",
"prettier": "^3.0.3",
"qs": "^6.11.2",
"react": "^18.2.0",
"react-data-grid": "7.0.0-beta.13",
"react-datepicker": "^6.7.1",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-error-boundary": "^4.0.11",
"react-helmet-async": "^1.3.0",
"react-hook-form": "^7.45.1",
"react-hotkeys-hook": "^4.4.4",
"react-imask": "^7.6.0",
"react-intersection-observer": "^9.15.1",
"react-loading-skeleton": "^3.3.1",
"react-phone-number-input": "patch:react-phone-number-input@npm%3A3.4.5#./.yarn/patches/react-phone-number-input-npm-3.4.5-dc2895c306.patch",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.4.4",
"react-textarea-autosize": "^8.4.1",
"react-tooltip": "^5.13.1",
"recoil": "^0.7.7",
"rehype-slug": "^6.0.0",
"remark-behead": "^3.1.0",
"remark-gfm": "^3.0.1",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
"semver": "^7.5.4",
"sharp": "^0.32.1",
"slash": "^5.1.0",
"storybook-addon-mock-date": "^0.6.0",
"stripe": "^17.3.1",
"ts-key-enum": "^2.0.12",
"tslib": "^2.3.0",
"type-fest": "4.10.1",
"typescript": "5.3.3",
"use-debounce": "^10.0.0",
"uuid": "^9.0.0",
"vite-tsconfig-paths": "^4.2.1",
"xlsx-ugnis": "^0.19.3",
@@ -129,15 +79,11 @@
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.24.6",
"@chromatic-com/storybook": "^3",
"@crxjs/vite-plugin": "^1.0.14",
"@graphql-codegen/cli": "^3.3.1",
"@graphql-codegen/client-preset": "^4.1.0",
"@graphql-codegen/typescript": "^3.0.4",
"@graphql-codegen/typescript-operations": "^3.0.4",
"@graphql-codegen/typescript-react-apollo": "^3.3.7",
"@nestjs/cli": "^9.0.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"@nx/eslint": "21.3.11",
"@nx/eslint-plugin": "21.3.11",
"@nx/jest": "21.3.11",
@@ -153,7 +99,6 @@
"@storybook/addon-essentials": "8.6.14",
"@storybook/addon-interactions": "8.6.14",
"@storybook/addon-links": "8.6.14",
"@storybook/addon-onboarding": "8.6.14",
"@storybook/blocks": "8.6.14",
"@storybook/core-server": "8.6.14",
"@storybook/icons": "^1.2.9",
@@ -168,21 +113,18 @@
"@swc/cli": "^0.3.12",
"@swc/core": "1.13.3",
"@swc/helpers": "~0.5.2",
"@swc/jest": "^0.2.39",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@types/addressparser": "^1.0.3",
"@types/apollo-upload-client": "^17.0.2",
"@types/bcrypt": "^5.0.0",
"@types/bytes": "^3.1.1",
"@types/chrome": "^0.0.267",
"@types/deep-equal": "^1.0.1",
"@types/express": "^4.17.13",
"@types/file-saver": "^2.0.7",
"@types/graphql-fields": "^1.3.6",
"@types/graphql-upload": "^8.0.12",
"@types/imapflow": "^1.0.21",
"@types/jest": "^30.0.0",
"@types/js-cookie": "^3.0.3",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.compact": "^3.0.9",
"@types/lodash.escaperegexp": "^4.1.9",
@@ -194,6 +136,7 @@
"@types/lodash.kebabcase": "^4.1.7",
"@types/lodash.mapvalues": "^4.6.9",
"@types/lodash.omit": "^4.5.9",
"@types/lodash.pick": "^4.3.7",
"@types/lodash.pickby": "^4.6.9",
"@types/lodash.snakecase": "^4.1.7",
"@types/lodash.upperfirst": "^4.3.7",
-1
View File
@@ -49,7 +49,6 @@ const config: StorybookConfig = {
addons: [
getAbsolutePath('@storybook/addon-links'),
getAbsolutePath('@storybook/addon-essentials'),
getAbsolutePath('@storybook/addon-onboarding'),
getAbsolutePath('@storybook/addon-interactions'),
getAbsolutePath('@storybook/addon-coverage'),
// getAbsolutePath("storybook-dark-mode"),
+38 -3
View File
@@ -29,11 +29,19 @@
"workerDirectory": "public"
},
"dependencies": {
"@apollo/client": "^3.7.17",
"@blocknote/mantine": "^0.31.1",
"@blocknote/react": "^0.31.1",
"@blocknote/xl-docx-exporter": "^0.31.1",
"@blocknote/xl-pdf-exporter": "^0.31.1",
"@calcom/embed-react": "^1.5.3",
"@cyntler/react-doc-viewer": "^1.17.0",
"@dagrejs/dagre": "^1.1.2",
"@floating-ui/react": "^0.24.3",
"@graphiql/plugin-explorer": "^1.0.2",
"@graphiql/react": "^0.23.0",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "^3.1.1",
"@lingui/core": "^5.1.2",
"@lingui/detect-locale": "^5.2.0",
"@lingui/react": "^5.1.2",
@@ -51,23 +59,49 @@
"@tiptap/extension-text-style": "^2.10.4",
"@tiptap/react": "^2.10.4",
"@xyflow/react": "^12.4.2",
"apollo-link-rest": "^0.9.0",
"apollo-upload-client": "^17.0.0",
"buffer": "^6.0.3",
"date-fns": "^2.30.0",
"docx": "^9.1.0",
"file-saver": "^2.0.5",
"graphiql": "^3.1.1",
"graphql": "^16.8.0",
"graphql-sse": "^2.5.4",
"input-otp": "^1.4.2",
"js-cookie": "^3.0.5",
"json-2-csv": "^5.4.0",
"qs": "^6.11.2",
"react-data-grid": "7.0.0-beta.13",
"react-datepicker": "^6.7.1",
"react-dropzone": "^14.2.3",
"react-error-boundary": "^4.0.11",
"react-helmet-async": "^1.3.0",
"react-hook-form": "^7.45.1",
"react-hotkeys-hook": "^4.4.4",
"react-imask": "^7.6.0",
"react-intersection-observer": "^9.15.1",
"react-loading-skeleton": "^3.3.1",
"react-markdown": "^10.1.0",
"react-phone-number-input": "patch:react-phone-number-input@npm%3A3.4.5#../../.yarn/patches/react-phone-number-input-npm-3.4.5-dc2895c306.patch",
"react-qr-code": "^2.0.18",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.4.4",
"react-textarea-autosize": "^8.4.1",
"recoil": "^0.7.7",
"remark-gfm": "^4.0.1",
"transliteration": "^2.3.5",
"twenty-shared": "workspace:*",
"twenty-ui": "workspace:*"
"twenty-ui": "workspace:*",
"use-debounce": "^10.0.0"
},
"devDependencies": {
"@lingui/cli": "^5.1.2",
"@lingui/swc-plugin": "^5.6.0",
"@lingui/vite-plugin": "^5.1.2",
"@types/file-saver": "^2",
"@types/apollo-upload-client": "^17.0.2",
"@types/file-saver": "^2.0.7",
"@types/js-cookie": "^3.0.3",
"@typescript-eslint/eslint-plugin": "^8.39.0",
"@typescript-eslint/parser": "^8.39.0",
"@typescript-eslint/utils": "^8.39.0",
@@ -87,6 +121,7 @@
"eslint-plugin-unicorn": "^56.0.1",
"eslint-plugin-unused-imports": "^3.0.0",
"optionator": "^0.9.1",
"rollup-plugin-visualizer": "^5.14.0"
"rollup-plugin-visualizer": "^5.14.0",
"vite-tsconfig-paths": "^4.2.1"
}
}
+18 -12
View File
@@ -75,18 +75,6 @@
"@sentry/node": "9.26.0",
"@sentry/profiling-node": "9.26.0",
"@sniptt/guards": "0.2.0",
"@types/babel__preset-env": "7.10.0",
"@types/express-session": "1.18.0",
"@types/handlebars": "4.1.0",
"@types/lodash.differencewith": "4.5.9",
"@types/lodash.merge": "4.6.9",
"@types/lodash.omitby": "4.6.9",
"@types/lodash.uniq": "4.5.9",
"@types/lodash.uniqby": "4.7.9",
"@types/openid-client": "3.7.0",
"@types/psl": "1.1.3",
"@types/unzipper": "0.10.10",
"@yarnpkg/types": "^4.0.0",
"addressparser": "1.0.1",
"ai": "^4.3.16",
"apollo-server-core": "3.13.0",
@@ -202,8 +190,18 @@
"@faker-js/faker": "^9.8.0",
"@lingui/cli": "^5.1.2",
"@nestjs/cli": "10.3.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"@nx/js": "21.3.11",
"@types/babel__preset-env": "7.10.0",
"@types/bytes": "^3.1.1",
"@types/dompurify": "^3.0.5",
"@types/express": "^4.17.13",
"@types/express-session": "^1.18.0",
"@types/graphql-upload": "^8.0.12",
"@types/handlebars": "4.1.0",
"@types/imapflow": "^1.0.21",
"@types/lodash.chunk": "^4.2.9",
"@types/lodash.differencewith": "^4.5.9",
"@types/lodash.isempty": "^4.4.7",
"@types/lodash.isequal": "^4.5.8",
@@ -215,11 +213,19 @@
"@types/lodash.uniq": "^4.5.9",
"@types/lodash.uniqby": "^4.7.9",
"@types/lodash.upperfirst": "^4.3.7",
"@types/mailparser": "^3.4.6",
"@types/ms": "^0.7.31",
"@types/node": "^24.0.0",
"@types/nodemailer": "^6.4.17",
"@types/openid-client": "^3.7.0",
"@types/passport-google-oauth20": "^2.0.11",
"@types/passport-jwt": "^3.0.8",
"@types/passport-microsoft": "^2.1.0",
"@types/pluralize": "^0.0.33",
"@types/psl": "^1.1.3",
"@types/react": "^18.2.39",
"@types/unzipper": "^0",
"@yarnpkg/types": "^4.0.0",
"rimraf": "^5.0.5",
"twenty-emails": "workspace:*",
"twenty-shared": "workspace:*",
@@ -47,7 +47,7 @@ export const removeEmptyLinks = ({
}
}
const firstLink = filteredLinks.at(0);
const firstLink = filteredLinks[0];
const otherLinks = filteredLinks.slice(1);
return {
-1
View File
@@ -14,7 +14,6 @@ const config: StorybookConfig = {
addons: [
getAbsolutePath("@storybook/addon-links"),
getAbsolutePath("@storybook/addon-essentials"),
getAbsolutePath("@storybook/addon-onboarding"),
getAbsolutePath("@storybook/addon-interactions"),
getAbsolutePath("@storybook/addon-coverage"),
getAbsolutePath("storybook-addon-cookie"),
+6 -1
View File
@@ -6,28 +6,33 @@
"dev": "npx next dev",
"build": "npx next build",
"start": "npx next start",
"lint": "npx next lint",
"lint": "ESLINT_USE_FLAT_CONFIG=true npx next lint",
"github:sync": "npx tsx src/github/github-sync.ts",
"github:init": "npx tsx src/github/github-sync.ts --isFullSync",
"database:migrate": "npx tsx src/database/migrate-database.ts",
"database:generate:pg": "npx drizzle-kit generate:pg --config=src/database/drizzle-posgres.config.ts"
},
"dependencies": {
"@codesandbox/sandpack-react": "^2.13.5",
"@docsearch/react": "^3.6.2",
"@keystatic/core": "^0.5.45",
"@keystatic/next": "^5.0.3",
"@markdoc/markdoc": "^0.5.1",
"@nivo/calendar": "^0.87.0",
"date-fns": "^2.30.0",
"drizzle-kit": "^0.20.14",
"facepaint": "^1.2.1",
"gray-matter": "^4.0.3",
"next": "^14.2.0",
"next-mdx-remote": "^4.4.1",
"next-runtime-env": "^3.2.2",
"postgres": "^3.4.3",
"react-tooltip": "^5.13.1",
"twenty-ui": "workspace:*"
},
"devDependencies": {
"@next/eslint-plugin-next": "^14.1.4",
"@types/facepaint": "^1.2.5",
"eslint-config-next": "^15.1.0"
}
}
+90 -610
View File
File diff suppressed because it is too large Load Diff