Embrace nx monorepo structure with root package.json (#3255)

* Upgrade to node 18.17.1 and regroup dependencies in root package.json

* Sort package.json

* Fix lint

* Migrate zapier
This commit is contained in:
Charles Bochet 2024-01-05 14:59:58 +01:00 committed by GitHub
parent f35b40c428
commit f7034d6e7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 488 additions and 739 deletions

2
.nvmrc
View File

@ -1 +1 @@
18.16.0
18.17.1

View File

@ -1,13 +1,272 @@
{
"name": "twenty",
"version": "0.2.1",
"packageManager": "yarn@4.0.2",
"dependencies": {
"@air/react-drag-to-select": "^5.0.8",
"@apollo/client": "^3.7.17",
"@apollo/server": "^4.7.3",
"@aws-sdk/client-s3": "^3.363.0",
"@aws-sdk/credential-providers": "^3.363.0",
"@blocknote/core": "^0.10.1",
"@blocknote/react": "^0.10.1",
"@chakra-ui/accordion": "^2.3.0",
"@chakra-ui/system": "^2.6.0",
"@codesandbox/sandpack-react": "^2.9.0",
"@docusaurus/core": "^3.0.0",
"@docusaurus/preset-classic": "^3.0.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@floating-ui/react": "^0.24.3",
"@google-cloud/local-auth": "2.1.0",
"@graphiql/plugin-explorer": "^1.0.2",
"@graphql-tools/schema": "^10.0.0",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "^3.1.1",
"@jsdevtools/rehype-toc": "^3.0.2",
"@mdx-js/react": "^3.0.0",
"@nestjs/apollo": "^11.0.5",
"@nestjs/axios": "^3.0.1",
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.2",
"@nestjs/core": "^9.0.0",
"@nestjs/jwt": "^10.0.3",
"@nestjs/passport": "^9.0.3",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/serve-static": "^3.0.0",
"@nestjs/terminus": "^9.2.2",
"@nestjs/typeorm": "^10.0.0",
"@nivo/calendar": "^0.84.0",
"@nivo/core": "^0.84.0",
"@nx/eslint-plugin": "^17.2.8",
"@octokit/graphql": "^7.0.2",
"@ptc-org/nestjs-query-core": "^4.2.0",
"@ptc-org/nestjs-query-typeorm": "4.2.1-alpha.2",
"@sentry/node": "^7.66.0",
"@sentry/profiling-node": "^1.2.6",
"@sentry/react": "^7.88.0",
"@sentry/tracing": "^7.66.0",
"@sniptt/guards": "^0.2.0",
"@stoplight/elements": "^7.16.2",
"@swc/jest": "^0.2.29",
"@tabler/icons-react": "^2.44.0",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.merge": "^4.6.7",
"@types/mailparser": "^3.4.4",
"add": "^2.0.6",
"afterframe": "^1.0.2",
"apollo-server-express": "^3.12.0",
"apollo-upload-client": "^17.0.0",
"axios": "^1.6.2",
"bcrypt": "^5.1.1",
"better-sqlite3": "^9.2.2",
"body-parser": "^1.20.2",
"bullmq": "^4.14.0",
"bytes": "^3.1.2",
"class-transformer": "^0.5.1",
"clsx": "^1.2.1",
"danger-plugin-todos": "^1.3.1",
"dataloader": "^2.2.2",
"date-fns": "^2.30.0",
"deep-equal": "^2.2.2",
"docusaurus-node-polyfills": "^1.0.0",
"dotenv-cli": "^7.2.1",
"esbuild-plugin-svgr": "^2.1.0",
"file-type": "16.5.4",
"framer-motion": "^10.12.17",
"googleapis": "105",
"graphiql": "^3.0.10",
"graphql": "^16.8.1",
"graphql-fields": "^2.0.3",
"graphql-subscriptions": "2.0.0",
"graphql-tag": "^2.12.6",
"graphql-type-json": "^0.3.2",
"graphql-upload": "^13.0.0",
"graphql-yoga": "^4.0.4",
"hex-rgb": "^5.0.0",
"iframe-resizer-react": "^1.1.0",
"immer": "^10.0.2",
"jest-mock-extended": "^3.0.4",
"js-cookie": "^3.0.5",
"js-levenshtein": "^1.1.6",
"jsonwebtoken": "^9.0.0",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
"lodash.debounce": "^4.0.8",
"lodash.isempty": "^4.4.0",
"lodash.isequal": "^4.5.0",
"lodash.isobject": "^3.0.2",
"lodash.kebabcase": "^4.1.1",
"lodash.merge": "^4.6.2",
"lodash.snakecase": "^4.1.1",
"lodash.upperfirst": "^4.3.1",
"luxon": "^3.3.0",
"mailparser": "^3.6.5",
"microdiff": "^1.3.2",
"nest-commander": "^3.12.0",
"next": "14.0.4",
"next-mdx-remote": "^4.4.1",
"openapi-types": "^12.1.3",
"passport": "^0.6.0",
"passport-google-oauth20": "^2.0.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"patch-package": "^8.0.0",
"pg": "^8.11.3",
"pg-boss": "^9.0.3",
"prettier": "^3.0.3",
"prism-react-renderer": "^2.1.0",
"react": "^18.2.0",
"react-data-grid": "7.0.0-beta.13",
"react-datepicker": "^4.11.0",
"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.0",
"react-icons": "^4.12.0",
"react-intersection-observer": "^9.5.2",
"react-loading-skeleton": "^3.3.1",
"react-phone-number-input": "^3.3.4",
"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",
"scroll-into-view": "^1.16.2",
"semver": "^7.5.4",
"sharp": "^0.32.1",
"ts-key-enum": "^2.0.12",
"tslib": "^2.3.0",
"tsup": "^8.0.1",
"type-fest": "^4.1.0",
"typeorm": "^0.3.17",
"uuid": "^9.0.0",
"vite-tsconfig-paths": "^4.2.1",
"xlsx-ugnis": "^0.19.3",
"zapier-platform-core": "15.5.1",
"zod": "^3.22.2"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.0.0",
"@docusaurus/tsconfig": "3.0.0",
"@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": "17.2.7",
"@nx/eslint-plugin": "17.2.7",
"@nx/jest": "17.2.7",
"@nx/js": "17.2.7",
"@storybook/addon-actions": "^7.6.3",
"@storybook/addon-coverage": "^1.0.0",
"@storybook/addon-essentials": "^7.6.7",
"@storybook/addon-interactions": "^7.6.7",
"@storybook/addon-links": "^7.6.7",
"@storybook/addon-onboarding": "^1.0.10",
"@storybook/addon-themes": "^7.6.7",
"@storybook/blocks": "^7.6.3",
"@storybook/react": "^7.6.3",
"@storybook/react-vite": "^7.6.3",
"@storybook/test": "^7.6.3",
"@storybook/test-runner": "^0.16.0",
"@stylistic/eslint-plugin": "^1.5.0",
"@swc-node/register": "~1.6.7",
"@swc/core": "~1.3.100",
"@testing-library/jest-dom": "^6.1.5",
"@testing-library/react": "^13.4.0",
"@types/apollo-upload-client": "^17.0.2",
"@types/bcrypt": "^5.0.0",
"@types/better-sqlite3": "^7.6.8",
"@types/bytes": "^3.1.1",
"@types/deep-equal": "^1.0.1",
"@types/express": "^4.17.13",
"@types/graphql-fields": "^1.3.6",
"@types/graphql-upload": "^8.0.12",
"@types/jest": "^29.5.11",
"@types/js-cookie": "^3.0.3",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.isempty": "^4.4.7",
"@types/lodash.isequal": "^4.5.7",
"@types/lodash.isobject": "^3.0.7",
"@types/lodash.kebabcase": "^4.1.7",
"@types/lodash.snakecase": "^4.1.7",
"@types/lodash.upperfirst": "^4.3.7",
"@types/luxon": "^3.3.0",
"@types/ms": "^0.7.31",
"@types/node": "^20.10.6",
"@types/passport-google-oauth20": "^2.0.11",
"@types/passport-jwt": "^3.0.8",
"@types/react": "^18.2.39",
"@types/react-datepicker": "^4.11.2",
"@types/react-dom": "^18.2.15",
"@types/scroll-into-view": "^1.16.0",
"@types/supertest": "^2.0.11",
"@types/uuid": "^9.0.2",
"@typescript-eslint/eslint-plugin": "^6.10.0",
"@typescript-eslint/parser": "^6.10.0",
"@typescript-eslint/utils": "^6.9.1",
"@vitejs/plugin-react-swc": "^3.5.0",
"chromatic": "^6.18.0",
"concurrently": "^8.0.1",
"cross-var": "^1.1.0",
"danger": "^11.3.0",
"dotenv-cli": "^7.2.1",
"eslint": "^8.53.0",
"eslint-config-next": "14.0.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.4",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-unused-imports": "^3.0.0",
"http-server": "^14.1.1",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"msw": "^2.0.11",
"msw-storybook-addon": "2.0.0--canary.122.b3ed3b1.0",
"nx": "^17.2.8",
"prettier": "^3.1.1",
"raw-loader": "^4.0.2",
"rimraf": "^5.0.5",
"source-map-support": "^0.5.20",
"storybook": "^7.6.3",
"storybook-addon-cookie": "^3.2.0",
"storybook-addon-pseudo-states": "^2.1.2",
"supertest": "^6.1.3",
"ts-jest": "^29.1.1",
"ts-loader": "^9.2.3",
"ts-node": "10.9.1",
"typescript": "^5.3.3",
"vite": "^5.0.0",
"vite-plugin-svgr": "^4.2.0",
"zapier-platform-cli": "^15.4.1"
},
"engines": {
"node": "^18.16.0",
"node": "^18.17.1",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"license": "AGPL-3.0",
"name": "twenty",
"packageManager": "yarn@4.0.2",
"resolutions": {
"graphql": "16.8.0"
},
"version": "0.2.1",
"workspaces": {
"packages": [
"packages/twenty-front",
@ -18,16 +277,5 @@
"packages/twenty-website",
"tools/eslint-rules"
]
},
"dependencies": {
"patch-package": "^8.0.0",
"tslib": "^2.3.0"
},
"devDependencies": {
"@nx/eslint": "17.2.7",
"@nx/eslint-plugin": "17.2.7",
"@nx/jest": "17.2.7",
"@nx/js": "17.2.7",
"nx": "^17.2.8"
}
}

View File

@ -1,4 +1,4 @@
FROM node:18.16-bullseye as twenty-dev
FROM node:18.17.1-bullseye as twenty-dev
WORKDIR /app

View File

@ -1,4 +1,4 @@
FROM node:18.16.0-alpine as twenty-docs-build
FROM node:18.17.1-alpine as twenty-docs-build
WORKDIR /app
@ -16,7 +16,7 @@ RUN yarn nx build twenty-docs
CMD ["tail", "-f", "/dev/null"]
FROM node:18.16.0-alpine as twenty-docs
FROM node:18.17.1-alpine as twenty-docs
WORKDIR /app/packages/twenty-docs

View File

@ -1,4 +1,4 @@
FROM node:18.16.0-alpine as twenty-front-build
FROM node:18.17.1-alpine as twenty-front-build
ARG REACT_APP_SERVER_BASE_URL
ARG REACT_APP_SERVER_AUTH_URL
@ -16,7 +16,7 @@ COPY ./packages/twenty-front /app/packages/twenty-front
RUN yarn
RUN yarn nx build twenty-front
FROM node:18.16.0-alpine as twenty-front
FROM node:18.17.1-alpine as twenty-front
WORKDIR /app/packages/twenty-front

View File

@ -15,29 +15,6 @@
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
},
"dependencies": {
"@codesandbox/sandpack-react": "^2.9.0",
"@docusaurus/core": "^3.0.0",
"@docusaurus/preset-classic": "^3.0.0",
"@graphiql/plugin-explorer": "^1.0.2",
"@mdx-js/react": "^3.0.0",
"@stoplight/elements": "^7.15.4",
"clsx": "^1.2.1",
"docusaurus-node-polyfills": "^1.0.0",
"graphiql": "^3.0.10",
"graphql": "^16.6.0",
"iframe-resizer-react": "^1.1.0",
"prism-react-renderer": "^2.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^4.9.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.0.0",
"@docusaurus/tsconfig": "3.0.0",
"raw-loader": "^4.0.2",
"typescript": "~5.2.2"
},
"overrides": {
"trim": "^0.0.3",
"got": "^11.8.5"

View File

@ -80,7 +80,7 @@ module.exports = {
rules: {
'storybook/no-uninstalled-addons': [
'error',
{ packageJsonLocation: path.resolve('package.json') },
{ packageJsonLocation: path.resolve('../../package.json') },
],
},
},

View File

@ -36,140 +36,8 @@
"graphql:metadata:generate": "dotenv cross-var graphql-codegen -- --config codegen-metadata.cjs",
"chromatic": "dotenv cross-var npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN"
},
"dependencies": {
"@air/react-drag-to-select": "^5.0.8",
"@apollo/client": "^3.7.17",
"@blocknote/core": "^0.10.1",
"@blocknote/react": "^0.10.1",
"@chakra-ui/accordion": "^2.3.0",
"@chakra-ui/system": "^2.6.0",
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.5",
"@floating-ui/react": "^0.24.3",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "^3.1.1",
"@sentry/react": "^7.88.0",
"@sniptt/guards": "^0.2.0",
"@swc/jest": "^0.2.29",
"@tabler/icons-react": "^2.30.0",
"afterframe": "^1.0.2",
"apollo-upload-client": "^17.0.0",
"date-fns": "^2.30.0",
"deep-equal": "^2.2.2",
"esbuild-plugin-svgr": "^2.1.0",
"framer-motion": "^10.12.17",
"graphql": "^16.6.0",
"hex-rgb": "^5.0.0",
"immer": "^10.0.2",
"js-cookie": "^3.0.5",
"js-levenshtein": "^1.1.6",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
"lodash.debounce": "^4.0.8",
"lodash.kebabcase": "^4.1.1",
"lodash.snakecase": "^4.1.1",
"luxon": "^3.3.0",
"react": "^18.2.0",
"react-data-grid": "7.0.0-beta.13",
"react-datepicker": "^4.11.0",
"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.0",
"react-intersection-observer": "^9.5.2",
"react-loading-skeleton": "^3.3.1",
"react-phone-number-input": "^3.3.4",
"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",
"scroll-into-view": "^1.16.2",
"ts-key-enum": "^2.0.12",
"tsup": "^8.0.1",
"type-fest": "^4.1.0",
"uuid": "^9.0.0",
"vite-tsconfig-paths": "^4.2.1",
"xlsx-ugnis": "^0.19.3",
"zod": "^3.22.2"
},
"devDependencies": {
"@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",
"@storybook/addon-actions": "^7.6.3",
"@storybook/addon-coverage": "^1.0.0",
"@storybook/addon-essentials": "^7.6.7",
"@storybook/addon-interactions": "^7.6.7",
"@storybook/addon-links": "^7.6.7",
"@storybook/addon-onboarding": "^1.0.10",
"@storybook/addon-themes": "^7.6.7",
"@storybook/blocks": "^7.6.3",
"@storybook/react": "^7.6.3",
"@storybook/react-vite": "^7.6.3",
"@storybook/test": "^7.6.3",
"@storybook/test-runner": "^0.16.0",
"@stylistic/eslint-plugin": "^1.5.0",
"@swc-node/register": "~1.6.7",
"@swc/core": "~1.3.100",
"@testing-library/jest-dom": "^6.1.5",
"@testing-library/react": "^13.4.0",
"@types/apollo-upload-client": "^17.0.2",
"@types/deep-equal": "^1.0.1",
"@types/jest": "^29.5.11",
"@types/js-cookie": "^3.0.3",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.kebabcase": "^4.1.7",
"@types/lodash.snakecase": "^4.1.9",
"@types/luxon": "^3.3.0",
"@types/node": "^20.10.6",
"@types/react": "^18.2.39",
"@types/react-datepicker": "^4.11.2",
"@types/react-dom": "^18.2.15",
"@types/scroll-into-view": "^1.16.0",
"@types/uuid": "^9.0.1",
"@typescript-eslint/eslint-plugin": "^6.10.0",
"@typescript-eslint/parser": "^6.10.0",
"@typescript-eslint/utils": "^6.9.1",
"@vitejs/plugin-react-swc": "^3.5.0",
"chromatic": "^6.18.0",
"concurrently": "^8.0.1",
"cross-var": "^1.1.0",
"dotenv-cli": "^7.2.1",
"eslint": "^8.53.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-prettier": "^5.0.1",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.4",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-unused-imports": "^3.0.0",
"http-server": "^14.1.1",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"msw": "^2.0.11",
"msw-storybook-addon": "2.0.0--canary.122.b3ed3b1.0",
"prettier": "3.1.0",
"storybook": "^7.6.3",
"storybook-addon-cookie": "^3.2.0",
"storybook-addon-pseudo-states": "^2.1.2",
"ts-jest": "^29.1.1",
"ts-node": "10.9.1",
"typescript": "^5.3.3",
"vite": "^5.0.0",
"vite-plugin-svgr": "^4.2.0"
},
"engines": {
"node": "^18.16.0",
"node": "^18.17.1",
"npm": "please-use-yarn",
"yarn": "^4.0.2"
},

View File

@ -39,7 +39,7 @@ export const RecordTableBodyFetchMoreLoader = () => {
return (
<tbody ref={tbodyRef}>
{!isFetchingMoreObjects && (
{isFetchingMoreObjects && (
<StyledRow selected={false}>
<td colSpan={7}>
<StyledText>Loading more...</StyledText>

View File

@ -4,7 +4,7 @@
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"license": "AGPL-3.0",
"scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-server node ../../node_modules/nx/bin/nx.js",
"prebuild": "rimraf dist",
@ -34,111 +34,13 @@
"queue:work": "node dist/src/queue-worker"
},
"dependencies": {
"@apollo/server": "^4.7.3",
"@aws-sdk/client-s3": "^3.363.0",
"@aws-sdk/credential-providers": "^3.363.0",
"@google-cloud/local-auth": "2.1.0",
"@graphql-tools/schema": "^10.0.0",
"@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch",
"@nestjs/apollo": "^11.0.5",
"@nestjs/axios": "^3.0.1",
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.2",
"@nestjs/core": "^9.0.0",
"@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch",
"@nestjs/jwt": "^10.0.3",
"@nestjs/passport": "^9.0.3",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/serve-static": "^3.0.0",
"@nestjs/terminus": "^9.2.2",
"@nestjs/typeorm": "^10.0.0",
"@ptc-org/nestjs-query-core": "^4.2.0",
"@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch",
"@ptc-org/nestjs-query-typeorm": "4.2.1-alpha.2",
"@sentry/node": "^7.66.0",
"@sentry/profiling-node": "^1.2.6",
"@sentry/tracing": "^7.66.0",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.merge": "^4.6.7",
"@types/mailparser": "^3.4.4",
"add": "^2.0.6",
"apollo-server-express": "^3.12.0",
"axios": "^1.6.2",
"bcrypt": "^5.1.1",
"body-parser": "^1.20.2",
"bullmq": "^4.14.0",
"bytes": "^3.1.2",
"class-transformer": "^0.5.1",
"class-validator": "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch",
"dataloader": "^2.2.2",
"date-fns": "^2.30.0",
"file-type": "16.5.4",
"googleapis": "105",
"graphql": "16.8.0",
"graphql-fields": "^2.0.3",
"graphql-subscriptions": "2.0.0",
"graphql-tag": "^2.12.6",
"graphql-type-json": "^0.3.2",
"graphql-upload": "^13.0.0",
"graphql-yoga": "^4.0.4",
"jest-mock-extended": "^3.0.4",
"jsonwebtoken": "^9.0.0",
"lodash.camelcase": "^4.3.0",
"lodash.isempty": "^4.4.0",
"lodash.isequal": "^4.5.0",
"lodash.isobject": "^3.0.2",
"lodash.kebabcase": "^4.1.1",
"lodash.merge": "^4.6.2",
"lodash.snakecase": "^4.1.1",
"lodash.upperfirst": "^4.3.1",
"mailparser": "^3.6.5",
"microdiff": "^1.3.2",
"nest-commander": "^3.12.0",
"openapi-types": "^12.1.3",
"passport": "^0.6.0",
"passport-google-oauth20": "^2.0.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"pg": "^8.11.3",
"pg-boss": "^9.0.3",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
"sharp": "^0.32.1",
"type-fest": "^3.12.0",
"typeorm": "^0.3.17",
"uuid": "^9.0.0"
},
"devDependencies": {
"@nestjs/cli": "^9.0.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"@types/bcrypt": "^5.0.0",
"@types/bytes": "^3.1.1",
"@types/express": "^4.17.13",
"@types/graphql-fields": "^1.3.6",
"@types/graphql-upload": "^8.0.12",
"@types/jest": "^29.5.11",
"@types/lodash.isempty": "^4.4.7",
"@types/lodash.isequal": "^4.5.7",
"@types/lodash.isobject": "^3.0.7",
"@types/lodash.kebabcase": "^4.1.7",
"@types/lodash.snakecase": "^4.1.7",
"@types/lodash.upperfirst": "^4.3.7",
"@types/ms": "^0.7.31",
"@types/node": "^20.10.6",
"@types/passport-google-oauth20": "^2.0.11",
"@types/passport-jwt": "^3.0.8",
"@types/supertest": "^2.0.11",
"@types/uuid": "^9.0.2",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
"ts-loader": "^9.2.3"
},
"resolutions": {
"graphql": "16.8.0"
"class-validator": "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch"
},
"engines": {
"node": "^18.16.0",
"node": "^18.17.1",
"npm": "please-use-yarn",
"yarn": "^4.0.2"
}

View File

@ -24,7 +24,6 @@ export class FieldsStringFactory {
info: GraphQLResolveInfo,
fieldMetadataCollection: FieldMetadataInterface[],
): Promise<string> {
// @ts-expect-error Todo: Fix typing error
const selectedFields: Record<string, any> = graphqlFields(info);
return this.createFieldsStringRecursive(

View File

@ -1,44 +1,55 @@
import { danger, warn, markdown, schedule } from "danger";
import todos from "danger-plugin-todos";
import { danger, markdown, schedule, warn } from 'danger';
import todos from 'danger-plugin-todos';
function getMdSection(category: string, message: string) {
return `# ${category} <br>${message}`;
}
// Check if package.json was changed, but not yarn.lock
const packageChanged = danger.git.modified_files.find(x=>x.includes("package.json"));
const lockfileChanged = danger.git.modified_files.find(x=>x.includes("yarn.lock"));
const packageChanged = danger.git.modified_files.find((x) =>
x.includes('package.json'),
);
const lockfileChanged = danger.git.modified_files.find((x) =>
x.includes('yarn.lock'),
);
if (packageChanged && !lockfileChanged) {
const message = "Changes were made to package.json, but not to yarn.lock";
const idea = "Perhaps you need to run `yarn install`?";
const message = 'Changes were made to package.json, but not to yarn.lock';
const idea = 'Perhaps you need to run `yarn install`?';
warn(`${message} - <i>${idea}</i>`);
}
// Check if .env.example was changed, but not enviroment variable documentation
const envChanged =
danger.git.modified_files.find(x=>x.includes(".env.example")) ||
danger.git.modified_files.find(x=>x.includes("environment.service.ts"));
danger.git.modified_files.find((x) => x.includes('.env.example')) ||
danger.git.modified_files.find((x) => x.includes('environment.service.ts'));
const envDocsChanged = danger.git.modified_files.includes(
"enviroment-variables.mdx"
'enviroment-variables.mdx',
);
if (envChanged && !envDocsChanged) {
const message =
"Changes were made to the enviroment variables, but not to the documentation";
'Changes were made to the enviroment variables, but not to the documentation';
const idea =
"Please review your changes and check if a change needs to be documented!";
'Please review your changes and check if a change needs to be documented!';
warn(`${message} - <i>${idea}</i>`);
}
// CLA alert if first time contributor
if (danger.github && danger.github.pr &&
(danger.github.pr.author_association === "FIRST_TIME_CONTRIBUTOR" ||
danger.github.pr.author_association === "NONE")
if (
danger.github &&
danger.github.pr &&
(danger.github.pr.author_association === 'FIRST_TIME_CONTRIBUTOR' ||
danger.github.pr.author_association === 'NONE')
) {
markdown(getMdSection('CLA', `
markdown(
getMdSection(
'CLA',
`
Hello there and welcome to our project!
By submitting your Pull Request, you acknowledge that you agree with the terms of our [Contributor License Agreement](https://github.com/twentyhq/twenty/blob/main/.github/CLA.md).
Although we don't have a dedicated legal counsel, having this kind of agreement can protect us from potential legal issues or patent trolls.
Thank you for your understanding.`))
Thank you for your understanding.`,
),
);
}
// TODOS / Fixme

View File

@ -3,13 +3,5 @@
"private": true,
"scripts": {
"release": "node release.js"
},
"dependencies": {
"danger-plugin-todos": "^1.3.1",
"semver": "^7.5.4",
"typescript": "^5.3.2"
},
"devDependencies": {
"danger": "^11.3.0"
}
}

View File

@ -8,41 +8,5 @@
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@jsdevtools/rehype-toc": "^3.0.2",
"@nivo/calendar": "^0.84.0",
"@nivo/core": "^0.84.0",
"@nx/eslint-plugin": "^17.2.8",
"@octokit/graphql": "^7.0.2",
"@stoplight/elements": "^7.16.2",
"@tabler/icons-react": "^2.44.0",
"better-sqlite3": "^9.2.2",
"graphiql": "^3.0.10",
"graphql": "^16.8.1",
"next": "14.0.4",
"next-mdx-remote": "^4.4.1",
"react": "^18",
"react-dom": "^18",
"react-icons": "^4.12.0",
"rehype-slug": "^6.0.0",
"remark-behead": "^3.1.0",
"remark-gfm": "^3.0.1"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.8",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"@typescript-eslint/eslint-plugin": "^6.16.0",
"eslint": "^8",
"eslint-config-next": "14.0.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-react": "^7.33.2",
"prettier": "^3.1.1",
"typescript": "^5"
}
}

View File

@ -4,6 +4,7 @@
"description": "Effortlessly sync Twenty with 3000+ apps. Automate tasks, boost productivity, and supercharge your customer relationships!",
"main": "src/index.ts",
"scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-zapier node ../../node_modules/nx/bin/nx.js",
"format": "prettier . --write \"!build\"",
"test": "yarn build && jest --testTimeout 10000 --rootDir ./lib/test",
"build": "yarn clean && tsc",
@ -14,21 +15,9 @@
"_zapier-build": "yarn build"
},
"engines": {
"node": ">=v18",
"npm": ">=5.6.0"
},
"dependencies": {
"dotenv-cli": "^7.2.1",
"prettier": "^3.0.3",
"zapier-platform-core": "15.5.1"
},
"devDependencies": {
"@types/jest": "^29.5.5",
"@types/node": "^20.8.6",
"jest": "^29.6.0",
"rimraf": "^5.0.5",
"typescript": "^5.2.2",
"zapier-platform-cli": "^15.4.1"
"node": "^18.17.1",
"npm": "please-use-yarn",
"yarn": "^4.0.2"
},
"private": true,
"zapier": {

565
yarn.lock
View File

@ -4242,7 +4242,7 @@ __metadata:
languageName: node
linkType: hard
"@emotion/react@npm:^11.10.5, @emotion/react@npm:^11.10.6, @emotion/react@npm:^11.11.1":
"@emotion/react@npm:^11.10.5, @emotion/react@npm:^11.11.1":
version: 11.11.3
resolution: "@emotion/react@npm:11.11.3"
dependencies:
@ -4283,7 +4283,7 @@ __metadata:
languageName: node
linkType: hard
"@emotion/styled@npm:^11.10.5, @emotion/styled@npm:^11.11.0":
"@emotion/styled@npm:^11.11.0":
version: 11.11.0
resolution: "@emotion/styled@npm:11.11.0"
dependencies:
@ -7673,15 +7673,6 @@ __metadata:
languageName: node
linkType: hard
"@nrwl/devkit@npm:17.2.8":
version: 17.2.8
resolution: "@nrwl/devkit@npm:17.2.8"
dependencies:
"@nx/devkit": "npm:17.2.8"
checksum: 0deab7982d2e193b7c9b66ed8b3ebc134dee08ea3e1a15edb5b8404372f9ec262fc7cb875ab9d365c6016fa140447dd76e8ec8509306ce6d72ac493f57164d8e
languageName: node
linkType: hard
"@nrwl/eslint-plugin-nx@npm:17.2.7":
version: 17.2.7
resolution: "@nrwl/eslint-plugin-nx@npm:17.2.7"
@ -7691,15 +7682,6 @@ __metadata:
languageName: node
linkType: hard
"@nrwl/eslint-plugin-nx@npm:17.2.8":
version: 17.2.8
resolution: "@nrwl/eslint-plugin-nx@npm:17.2.8"
dependencies:
"@nx/eslint-plugin": "npm:17.2.8"
checksum: 3540eda9978462d9a7376916ac1eeb45a81083a91f340b9db0251f6f7dd5ecd3a59d762fceac8ddd3a1d718ad028713bced1050ea64fec98ea1b314abb10210c
languageName: node
linkType: hard
"@nrwl/jest@npm:17.2.7":
version: 17.2.7
resolution: "@nrwl/jest@npm:17.2.7"
@ -7718,15 +7700,6 @@ __metadata:
languageName: node
linkType: hard
"@nrwl/js@npm:17.2.8":
version: 17.2.8
resolution: "@nrwl/js@npm:17.2.8"
dependencies:
"@nx/js": "npm:17.2.8"
checksum: 87a9095f9282db6ff2bca3a9a90e667c05309839aca892968a726fd50adfeba08595b3ec0aefb80602ef2a77451e556f4cde942171e71c9dd6f2af61be0d8b59
languageName: node
linkType: hard
"@nrwl/tao@npm:17.2.7":
version: 17.2.7
resolution: "@nrwl/tao@npm:17.2.7"
@ -7760,15 +7733,6 @@ __metadata:
languageName: node
linkType: hard
"@nrwl/workspace@npm:17.2.8":
version: 17.2.8
resolution: "@nrwl/workspace@npm:17.2.8"
dependencies:
"@nx/workspace": "npm:17.2.8"
checksum: f7878304444df92f540df8c3b83cfee53e2bc142ef8c74fda8d60e4432f27418397593ef15b4ead694d1ab46f46cb59481cea122ddee6679d06def74b6788e6f
languageName: node
linkType: hard
"@nuxtjs/opencollective@npm:0.3.2":
version: 0.3.2
resolution: "@nuxtjs/opencollective@npm:0.3.2"
@ -7799,23 +7763,6 @@ __metadata:
languageName: node
linkType: hard
"@nx/devkit@npm:17.2.8":
version: 17.2.8
resolution: "@nx/devkit@npm:17.2.8"
dependencies:
"@nrwl/devkit": "npm:17.2.8"
ejs: "npm:^3.1.7"
enquirer: "npm:~2.3.6"
ignore: "npm:^5.0.4"
semver: "npm:7.5.3"
tmp: "npm:~0.2.1"
tslib: "npm:^2.3.0"
peerDependencies:
nx: ">= 16 <= 18"
checksum: e339e2d0616b4374a7677ce3076b06c9b7d5619628b32ff41e6828c25d1bfd6fe4f71347d6151db078565bc2d8101d3ce75bcb67613c3a5c7eae3ed06b6432b3
languageName: node
linkType: hard
"@nx/eslint-plugin@npm:17.2.7":
version: 17.2.7
resolution: "@nx/eslint-plugin@npm:17.2.7"
@ -7840,30 +7787,6 @@ __metadata:
languageName: node
linkType: hard
"@nx/eslint-plugin@npm:17.2.8, @nx/eslint-plugin@npm:^17.2.8":
version: 17.2.8
resolution: "@nx/eslint-plugin@npm:17.2.8"
dependencies:
"@nrwl/eslint-plugin-nx": "npm:17.2.8"
"@nx/devkit": "npm:17.2.8"
"@nx/js": "npm:17.2.8"
"@typescript-eslint/type-utils": "npm:^6.9.1"
"@typescript-eslint/utils": "npm:^6.9.1"
chalk: "npm:^4.1.0"
confusing-browser-globals: "npm:^1.0.9"
jsonc-eslint-parser: "npm:^2.1.0"
semver: "npm:7.5.3"
tslib: "npm:^2.3.0"
peerDependencies:
"@typescript-eslint/parser": ^6.9.1
eslint-config-prettier: ^9.0.0
peerDependenciesMeta:
eslint-config-prettier:
optional: true
checksum: 6911c47c19b1781a03f1719d0d695be53b66cad5bf0993663a1093c5519f58720493f0182d9b6aca5c74ba6397076738b66efa7867577fa629e7b6e03f26d6b3
languageName: node
linkType: hard
"@nx/eslint@npm:17.2.7":
version: 17.2.7
resolution: "@nx/eslint@npm:17.2.7"
@ -7949,49 +7872,6 @@ __metadata:
languageName: node
linkType: hard
"@nx/js@npm:17.2.8":
version: 17.2.8
resolution: "@nx/js@npm:17.2.8"
dependencies:
"@babel/core": "npm:^7.22.9"
"@babel/plugin-proposal-decorators": "npm:^7.22.7"
"@babel/plugin-transform-class-properties": "npm:^7.22.5"
"@babel/plugin-transform-runtime": "npm:^7.22.9"
"@babel/preset-env": "npm:^7.22.9"
"@babel/preset-typescript": "npm:^7.22.5"
"@babel/runtime": "npm:^7.22.6"
"@nrwl/js": "npm:17.2.8"
"@nx/devkit": "npm:17.2.8"
"@nx/workspace": "npm:17.2.8"
"@phenomnomnominal/tsquery": "npm:~5.0.1"
babel-plugin-const-enum: "npm:^1.0.1"
babel-plugin-macros: "npm:^2.8.0"
babel-plugin-transform-typescript-metadata: "npm:^0.3.1"
chalk: "npm:^4.1.0"
columnify: "npm:^1.6.0"
detect-port: "npm:^1.5.1"
fast-glob: "npm:3.2.7"
fs-extra: "npm:^11.1.0"
ignore: "npm:^5.0.4"
js-tokens: "npm:^4.0.0"
minimatch: "npm:3.0.5"
npm-package-arg: "npm:11.0.1"
npm-run-path: "npm:^4.0.1"
ora: "npm:5.3.0"
semver: "npm:7.5.3"
source-map-support: "npm:0.5.19"
ts-node: "npm:10.9.1"
tsconfig-paths: "npm:^4.1.2"
tslib: "npm:^2.3.0"
peerDependencies:
verdaccio: ^5.0.4
peerDependenciesMeta:
verdaccio:
optional: true
checksum: 9ec84cc2f8af23b57297d66d651b21de6eed1899e327d9f9b801420fa7f6348e2c36c78459c83bc708ae6ffc1e38b22a417c1f15808b162c1be29ba59e44e2ed
languageName: node
linkType: hard
"@nx/linter@npm:17.2.7":
version: 17.2.7
resolution: "@nx/linter@npm:17.2.7"
@ -8156,21 +8036,6 @@ __metadata:
languageName: node
linkType: hard
"@nx/workspace@npm:17.2.8":
version: 17.2.8
resolution: "@nx/workspace@npm:17.2.8"
dependencies:
"@nrwl/workspace": "npm:17.2.8"
"@nx/devkit": "npm:17.2.8"
chalk: "npm:^4.1.0"
enquirer: "npm:~2.3.6"
nx: "npm:17.2.8"
tslib: "npm:^2.3.0"
yargs-parser: "npm:21.1.1"
checksum: c0f1c03f64910749a15dee678dc5e60f9d0cabf818c0201b523e4679c4cfe2830ae04622d9d05a17ce2349b6ed7a70969924dc5f91f573746cb7663536cb9465
languageName: node
linkType: hard
"@oclif/color@npm:^0.x":
version: 0.1.2
resolution: "@oclif/color@npm:0.1.2"
@ -11309,7 +11174,7 @@ __metadata:
languageName: node
linkType: hard
"@stoplight/elements@npm:^7.15.4, @stoplight/elements@npm:^7.16.2":
"@stoplight/elements@npm:^7.16.2":
version: 7.16.3
resolution: "@stoplight/elements@npm:7.16.3"
dependencies:
@ -13112,7 +12977,7 @@ __metadata:
languageName: node
linkType: hard
"@tabler/icons-react@npm:^2.30.0, @tabler/icons-react@npm:^2.44.0":
"@tabler/icons-react@npm:^2.44.0":
version: 2.45.0
resolution: "@tabler/icons-react@npm:2.45.0"
dependencies:
@ -14170,7 +14035,7 @@ __metadata:
languageName: node
linkType: hard
"@types/jest@npm:^29.5.11, @types/jest@npm:^29.5.5":
"@types/jest@npm:^29.5.11":
version: 29.5.11
resolution: "@types/jest@npm:29.5.11"
dependencies:
@ -14369,7 +14234,7 @@ __metadata:
languageName: node
linkType: hard
"@types/lodash.snakecase@npm:^4.1.7, @types/lodash.snakecase@npm:^4.1.9":
"@types/lodash.snakecase@npm:^4.1.7":
version: 4.1.9
resolution: "@types/lodash.snakecase@npm:4.1.9"
dependencies:
@ -14518,7 +14383,7 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:^20, @types/node@npm:^20.10.6, @types/node@npm:^20.3.1, @types/node@npm:^20.8.6":
"@types/node@npm:*, @types/node@npm:^20.10.6, @types/node@npm:^20.3.1":
version: 20.10.6
resolution: "@types/node@npm:20.10.6"
dependencies:
@ -14709,7 +14574,7 @@ __metadata:
languageName: node
linkType: hard
"@types/react-dom@npm:^18, @types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.15":
"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.15":
version: 18.2.18
resolution: "@types/react-dom@npm:18.2.18"
dependencies:
@ -14759,7 +14624,7 @@ __metadata:
languageName: node
linkType: hard
"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18, @types/react@npm:^18.2.39":
"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18.2.39":
version: 18.2.46
resolution: "@types/react@npm:18.2.46"
dependencies:
@ -15034,7 +14899,7 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.10.0, @typescript-eslint/eslint-plugin@npm:^6.16.0":
"@typescript-eslint/eslint-plugin@npm:^6.10.0":
version: 6.17.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.17.0"
dependencies:
@ -22638,7 +22503,7 @@ __metadata:
languageName: node
linkType: hard
"eslint-config-prettier@npm:^9.0.0, eslint-config-prettier@npm:^9.1.0":
"eslint-config-prettier@npm:^9.1.0":
version: 9.1.0
resolution: "eslint-config-prettier@npm:9.1.0"
peerDependencies:
@ -22752,7 +22617,7 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-prettier@npm:^5.0.1, eslint-plugin-prettier@npm:^5.1.2":
"eslint-plugin-prettier@npm:^5.1.2":
version: 5.1.2
resolution: "eslint-plugin-prettier@npm:5.1.2"
dependencies:
@ -22897,7 +22762,7 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^8, eslint@npm:^8.53.0":
"eslint@npm:^8.53.0":
version: 8.56.0
resolution: "eslint@npm:8.56.0"
dependencies:
@ -25275,13 +25140,6 @@ __metadata:
languageName: node
linkType: hard
"graphql@npm:*, graphql@npm:0.13.1 - 16, graphql@npm:14 - 16, graphql@npm:^16.6.0, graphql@npm:^16.8.1":
version: 16.8.1
resolution: "graphql@npm:16.8.1"
checksum: 129c318156b466f440914de80dbf7bc67d17f776f2a088a40cb0da611d19a97c224b1c6d2b13cbcbc6e5776e45ed7468b8432f9c3536724e079b44f1a3d57a8a
languageName: node
linkType: hard
"graphql@npm:16.8.0":
version: 16.8.0
resolution: "graphql@npm:16.8.0"
@ -28597,7 +28455,7 @@ __metadata:
languageName: node
linkType: hard
"jest@npm:29.7.0, jest@npm:^29.6.0, jest@npm:^29.6.4":
"jest@npm:29.7.0, jest@npm:^29.6.4":
version: 29.7.0
resolution: "jest@npm:29.7.0"
dependencies:
@ -35980,16 +35838,7 @@ __metadata:
languageName: node
linkType: hard
"prettier@npm:3.1.0":
version: 3.1.0
resolution: "prettier@npm:3.1.0"
bin:
prettier: bin/prettier.cjs
checksum: a45ea70aa97fde162ea4c4aba3dfc7859aa6a732a1db34458d9535dc3c2c16d3bc3fb5689e6cd76aa835562555303b02d9449fd2e15af3b73c8053557e25c5b6
languageName: node
linkType: hard
"prettier@npm:^3.0.3, prettier@npm:^3.1.0, prettier@npm:^3.1.1":
"prettier@npm:^3.1.0, prettier@npm:^3.1.1":
version: 3.1.1
resolution: "prettier@npm:3.1.1"
bin:
@ -36870,7 +36719,7 @@ __metadata:
languageName: node
linkType: hard
"react-dom@npm:^18, react-dom@npm:^18.2.0":
"react-dom@npm:^18.2.0":
version: 18.2.0
resolution: "react-dom@npm:18.2.0"
dependencies:
@ -36983,7 +36832,7 @@ __metadata:
languageName: node
linkType: hard
"react-icons@npm:^4.12.0, react-icons@npm:^4.3.1, react-icons@npm:^4.9.0":
"react-icons@npm:^4.12.0, react-icons@npm:^4.3.1":
version: 4.12.0
resolution: "react-icons@npm:4.12.0"
peerDependencies:
@ -41577,51 +41426,106 @@ __metadata:
"twenty-docs@workspace:packages/twenty-docs":
version: 0.0.0-use.local
resolution: "twenty-docs@workspace:packages/twenty-docs"
dependencies:
"@codesandbox/sandpack-react": "npm:^2.9.0"
"@docusaurus/core": "npm:^3.0.0"
"@docusaurus/module-type-aliases": "npm:^3.0.0"
"@docusaurus/preset-classic": "npm:^3.0.0"
"@docusaurus/tsconfig": "npm:3.0.0"
"@graphiql/plugin-explorer": "npm:^1.0.2"
"@mdx-js/react": "npm:^3.0.0"
"@stoplight/elements": "npm:^7.15.4"
clsx: "npm:^1.2.1"
docusaurus-node-polyfills: "npm:^1.0.0"
graphiql: "npm:^3.0.10"
graphql: "npm:^16.6.0"
iframe-resizer-react: "npm:^1.1.0"
prism-react-renderer: "npm:^2.1.0"
raw-loader: "npm:^4.0.2"
react: "npm:^18.2.0"
react-dom: "npm:^18.2.0"
react-icons: "npm:^4.9.0"
typescript: "npm:~5.2.2"
languageName: unknown
linkType: soft
"twenty-front@workspace:packages/twenty-front":
version: 0.0.0-use.local
resolution: "twenty-front@workspace:packages/twenty-front"
languageName: unknown
linkType: soft
"twenty-server@workspace:packages/twenty-server":
version: 0.0.0-use.local
resolution: "twenty-server@workspace:packages/twenty-server"
dependencies:
"@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch"
"@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch"
"@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch"
class-validator: "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch"
languageName: unknown
linkType: soft
"twenty-utils@workspace:packages/twenty-utils":
version: 0.0.0-use.local
resolution: "twenty-utils@workspace:packages/twenty-utils"
languageName: unknown
linkType: soft
"twenty-website@workspace:packages/twenty-website":
version: 0.0.0-use.local
resolution: "twenty-website@workspace:packages/twenty-website"
languageName: unknown
linkType: soft
"twenty-zapier@workspace:packages/twenty-zapier":
version: 0.0.0-use.local
resolution: "twenty-zapier@workspace:packages/twenty-zapier"
languageName: unknown
linkType: soft
"twenty@workspace:.":
version: 0.0.0-use.local
resolution: "twenty@workspace:."
dependencies:
"@air/react-drag-to-select": "npm:^5.0.8"
"@apollo/client": "npm:^3.7.17"
"@apollo/server": "npm:^4.7.3"
"@aws-sdk/client-s3": "npm:^3.363.0"
"@aws-sdk/credential-providers": "npm:^3.363.0"
"@blocknote/core": "npm:^0.10.1"
"@blocknote/react": "npm:^0.10.1"
"@chakra-ui/accordion": "npm:^2.3.0"
"@chakra-ui/system": "npm:^2.6.0"
"@emotion/react": "npm:^11.10.6"
"@emotion/styled": "npm:^11.10.5"
"@codesandbox/sandpack-react": "npm:^2.9.0"
"@docusaurus/core": "npm:^3.0.0"
"@docusaurus/module-type-aliases": "npm:^3.0.0"
"@docusaurus/preset-classic": "npm:^3.0.0"
"@docusaurus/tsconfig": "npm:3.0.0"
"@emotion/react": "npm:^11.11.1"
"@emotion/styled": "npm:^11.11.0"
"@floating-ui/react": "npm:^0.24.3"
"@google-cloud/local-auth": "npm:2.1.0"
"@graphiql/plugin-explorer": "npm:^1.0.2"
"@graphql-codegen/cli": "npm:^3.3.1"
"@graphql-codegen/client-preset": "npm:^4.1.0"
"@graphql-codegen/typescript": "npm:^3.0.4"
"@graphql-codegen/typescript-operations": "npm:^3.0.4"
"@graphql-codegen/typescript-react-apollo": "npm:^3.3.7"
"@graphql-tools/schema": "npm:^10.0.0"
"@hello-pangea/dnd": "npm:^16.2.0"
"@hookform/resolvers": "npm:^3.1.1"
"@jsdevtools/rehype-toc": "npm:^3.0.2"
"@mdx-js/react": "npm:^3.0.0"
"@nestjs/apollo": "npm:^11.0.5"
"@nestjs/axios": "npm:^3.0.1"
"@nestjs/cli": "npm:^9.0.0"
"@nestjs/common": "npm:^9.0.0"
"@nestjs/config": "npm:^2.3.2"
"@nestjs/core": "npm:^9.0.0"
"@nestjs/jwt": "npm:^10.0.3"
"@nestjs/passport": "npm:^9.0.3"
"@nestjs/platform-express": "npm:^9.0.0"
"@nestjs/schematics": "npm:^9.0.0"
"@nestjs/serve-static": "npm:^3.0.0"
"@nestjs/terminus": "npm:^9.2.2"
"@nestjs/testing": "npm:^9.0.0"
"@nestjs/typeorm": "npm:^10.0.0"
"@nivo/calendar": "npm:^0.84.0"
"@nivo/core": "npm:^0.84.0"
"@nx/eslint": "npm:17.2.7"
"@nx/eslint-plugin": "npm:17.2.7"
"@nx/jest": "npm:17.2.7"
"@nx/js": "npm:17.2.7"
"@octokit/graphql": "npm:^7.0.2"
"@ptc-org/nestjs-query-core": "npm:^4.2.0"
"@ptc-org/nestjs-query-typeorm": "npm:4.2.1-alpha.2"
"@sentry/node": "npm:^7.66.0"
"@sentry/profiling-node": "npm:^1.2.6"
"@sentry/react": "npm:^7.88.0"
"@sentry/tracing": "npm:^7.66.0"
"@sniptt/guards": "npm:^0.2.0"
"@stoplight/elements": "npm:^7.16.2"
"@storybook/addon-actions": "npm:^7.6.3"
"@storybook/addon-coverage": "npm:^1.0.0"
"@storybook/addon-essentials": "npm:^7.6.7"
@ -41638,67 +41542,131 @@ __metadata:
"@swc-node/register": "npm:~1.6.7"
"@swc/core": "npm:~1.3.100"
"@swc/jest": "npm:^0.2.29"
"@tabler/icons-react": "npm:^2.30.0"
"@tabler/icons-react": "npm:^2.44.0"
"@testing-library/jest-dom": "npm:^6.1.5"
"@testing-library/react": "npm:^13.4.0"
"@types/apollo-upload-client": "npm:^17.0.2"
"@types/bcrypt": "npm:^5.0.0"
"@types/better-sqlite3": "npm:^7.6.8"
"@types/bytes": "npm:^3.1.1"
"@types/deep-equal": "npm:^1.0.1"
"@types/express": "npm:^4.17.13"
"@types/graphql-fields": "npm:^1.3.6"
"@types/graphql-upload": "npm:^8.0.12"
"@types/jest": "npm:^29.5.11"
"@types/js-cookie": "npm:^3.0.3"
"@types/lodash.camelcase": "npm:^4.3.7"
"@types/lodash.debounce": "npm:^4.0.7"
"@types/lodash.isempty": "npm:^4.4.7"
"@types/lodash.isequal": "npm:^4.5.7"
"@types/lodash.isobject": "npm:^3.0.7"
"@types/lodash.kebabcase": "npm:^4.1.7"
"@types/lodash.snakecase": "npm:^4.1.9"
"@types/lodash.merge": "npm:^4.6.7"
"@types/lodash.snakecase": "npm:^4.1.7"
"@types/lodash.upperfirst": "npm:^4.3.7"
"@types/luxon": "npm:^3.3.0"
"@types/mailparser": "npm:^3.4.4"
"@types/ms": "npm:^0.7.31"
"@types/node": "npm:^20.10.6"
"@types/passport-google-oauth20": "npm:^2.0.11"
"@types/passport-jwt": "npm:^3.0.8"
"@types/react": "npm:^18.2.39"
"@types/react-datepicker": "npm:^4.11.2"
"@types/react-dom": "npm:^18.2.15"
"@types/scroll-into-view": "npm:^1.16.0"
"@types/uuid": "npm:^9.0.1"
"@types/supertest": "npm:^2.0.11"
"@types/uuid": "npm:^9.0.2"
"@typescript-eslint/eslint-plugin": "npm:^6.10.0"
"@typescript-eslint/parser": "npm:^6.10.0"
"@typescript-eslint/utils": "npm:^6.9.1"
"@vitejs/plugin-react-swc": "npm:^3.5.0"
add: "npm:^2.0.6"
afterframe: "npm:^1.0.2"
apollo-server-express: "npm:^3.12.0"
apollo-upload-client: "npm:^17.0.0"
axios: "npm:^1.6.2"
bcrypt: "npm:^5.1.1"
better-sqlite3: "npm:^9.2.2"
body-parser: "npm:^1.20.2"
bullmq: "npm:^4.14.0"
bytes: "npm:^3.1.2"
chromatic: "npm:^6.18.0"
class-transformer: "npm:^0.5.1"
clsx: "npm:^1.2.1"
concurrently: "npm:^8.0.1"
cross-var: "npm:^1.1.0"
danger: "npm:^11.3.0"
danger-plugin-todos: "npm:^1.3.1"
dataloader: "npm:^2.2.2"
date-fns: "npm:^2.30.0"
deep-equal: "npm:^2.2.2"
docusaurus-node-polyfills: "npm:^1.0.0"
dotenv-cli: "npm:^7.2.1"
esbuild-plugin-svgr: "npm:^2.1.0"
eslint: "npm:^8.53.0"
eslint-config-prettier: "npm:^9.0.0"
eslint-config-next: "npm:14.0.4"
eslint-config-prettier: "npm:^9.1.0"
eslint-plugin-import: "npm:^2.27.5"
eslint-plugin-jsx-a11y: "npm:^6.8.0"
eslint-plugin-prefer-arrow: "npm:^1.2.3"
eslint-plugin-prettier: "npm:^5.0.1"
eslint-plugin-prettier: "npm:^5.1.2"
eslint-plugin-react: "npm:^7.33.2"
eslint-plugin-react-hooks: "npm:^4.6.0"
eslint-plugin-react-refresh: "npm:^0.4.4"
eslint-plugin-simple-import-sort: "npm:^10.0.0"
eslint-plugin-storybook: "npm:^0.6.15"
eslint-plugin-unused-imports: "npm:^3.0.0"
file-type: "npm:16.5.4"
framer-motion: "npm:^10.12.17"
graphql: "npm:^16.6.0"
googleapis: "npm:105"
graphiql: "npm:^3.0.10"
graphql: "npm:^16.8.1"
graphql-fields: "npm:^2.0.3"
graphql-subscriptions: "npm:2.0.0"
graphql-tag: "npm:^2.12.6"
graphql-type-json: "npm:^0.3.2"
graphql-upload: "npm:^13.0.0"
graphql-yoga: "npm:^4.0.4"
hex-rgb: "npm:^5.0.0"
http-server: "npm:^14.1.1"
iframe-resizer-react: "npm:^1.1.0"
immer: "npm:^10.0.2"
jest: "npm:29.7.0"
jest-environment-jsdom: "npm:29.7.0"
jest-mock-extended: "npm:^3.0.4"
js-cookie: "npm:^3.0.5"
js-levenshtein: "npm:^1.1.6"
jsonwebtoken: "npm:^9.0.0"
libphonenumber-js: "npm:^1.10.26"
lodash.camelcase: "npm:^4.3.0"
lodash.debounce: "npm:^4.0.8"
lodash.isempty: "npm:^4.4.0"
lodash.isequal: "npm:^4.5.0"
lodash.isobject: "npm:^3.0.2"
lodash.kebabcase: "npm:^4.1.1"
lodash.merge: "npm:^4.6.2"
lodash.snakecase: "npm:^4.1.1"
lodash.upperfirst: "npm:^4.3.1"
luxon: "npm:^3.3.0"
mailparser: "npm:^3.6.5"
microdiff: "npm:^1.3.2"
msw: "npm:^2.0.11"
msw-storybook-addon: "npm:2.0.0--canary.122.b3ed3b1.0"
prettier: "npm:3.1.0"
nest-commander: "npm:^3.12.0"
next: "npm:14.0.4"
next-mdx-remote: "npm:^4.4.1"
nx: "npm:^17.2.8"
openapi-types: "npm:^12.1.3"
passport: "npm:^0.6.0"
passport-google-oauth20: "npm:^2.0.0"
passport-jwt: "npm:^4.0.1"
passport-local: "npm:^1.0.0"
patch-package: "npm:^8.0.0"
pg: "npm:^8.11.3"
pg-boss: "npm:^9.0.3"
prettier: "npm:^3.1.1"
prism-react-renderer: "npm:^2.1.0"
raw-loader: "npm:^4.0.2"
react: "npm:^18.2.0"
react-data-grid: "npm:7.0.0-beta.13"
react-datepicker: "npm:^4.11.0"
@ -41708,6 +41676,7 @@ __metadata:
react-helmet-async: "npm:^1.3.0"
react-hook-form: "npm:^7.45.1"
react-hotkeys-hook: "npm:^4.4.0"
react-icons: "npm:^4.12.0"
react-intersection-observer: "npm:^9.5.2"
react-loading-skeleton: "npm:^3.3.1"
react-phone-number-input: "npm:^3.3.4"
@ -41716,206 +41685,36 @@ __metadata:
react-textarea-autosize: "npm:^8.4.1"
react-tooltip: "npm:^5.13.1"
recoil: "npm:^0.7.7"
rehype-slug: "npm:^6.0.0"
remark-behead: "npm:^3.1.0"
remark-gfm: "npm:^3.0.1"
rimraf: "npm:^5.0.5"
rxjs: "npm:^7.2.0"
scroll-into-view: "npm:^1.16.2"
semver: "npm:^7.5.4"
sharp: "npm:^0.32.1"
source-map-support: "npm:^0.5.20"
storybook: "npm:^7.6.3"
storybook-addon-cookie: "npm:^3.2.0"
storybook-addon-pseudo-states: "npm:^2.1.2"
supertest: "npm:^6.1.3"
ts-jest: "npm:^29.1.1"
ts-key-enum: "npm:^2.0.12"
ts-loader: "npm:^9.2.3"
ts-node: "npm:10.9.1"
tslib: "npm:^2.3.0"
tsup: "npm:^8.0.1"
type-fest: "npm:^4.1.0"
typeorm: "npm:^0.3.17"
typescript: "npm:^5.3.3"
uuid: "npm:^9.0.0"
vite: "npm:^5.0.0"
vite-plugin-svgr: "npm:^4.2.0"
vite-tsconfig-paths: "npm:^4.2.1"
xlsx-ugnis: "npm:^0.19.3"
zod: "npm:^3.22.2"
languageName: unknown
linkType: soft
"twenty-server@workspace:packages/twenty-server":
version: 0.0.0-use.local
resolution: "twenty-server@workspace:packages/twenty-server"
dependencies:
"@apollo/server": "npm:^4.7.3"
"@aws-sdk/client-s3": "npm:^3.363.0"
"@aws-sdk/credential-providers": "npm:^3.363.0"
"@google-cloud/local-auth": "npm:2.1.0"
"@graphql-tools/schema": "npm:^10.0.0"
"@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch"
"@nestjs/apollo": "npm:^11.0.5"
"@nestjs/axios": "npm:^3.0.1"
"@nestjs/cli": "npm:^9.0.0"
"@nestjs/common": "npm:^9.0.0"
"@nestjs/config": "npm:^2.3.2"
"@nestjs/core": "npm:^9.0.0"
"@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch"
"@nestjs/jwt": "npm:^10.0.3"
"@nestjs/passport": "npm:^9.0.3"
"@nestjs/platform-express": "npm:^9.0.0"
"@nestjs/schematics": "npm:^9.0.0"
"@nestjs/serve-static": "npm:^3.0.0"
"@nestjs/terminus": "npm:^9.2.2"
"@nestjs/testing": "npm:^9.0.0"
"@nestjs/typeorm": "npm:^10.0.0"
"@ptc-org/nestjs-query-core": "npm:^4.2.0"
"@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch"
"@ptc-org/nestjs-query-typeorm": "npm:4.2.1-alpha.2"
"@sentry/node": "npm:^7.66.0"
"@sentry/profiling-node": "npm:^1.2.6"
"@sentry/tracing": "npm:^7.66.0"
"@types/bcrypt": "npm:^5.0.0"
"@types/bytes": "npm:^3.1.1"
"@types/express": "npm:^4.17.13"
"@types/graphql-fields": "npm:^1.3.6"
"@types/graphql-upload": "npm:^8.0.12"
"@types/jest": "npm:^29.5.11"
"@types/lodash.camelcase": "npm:^4.3.7"
"@types/lodash.isempty": "npm:^4.4.7"
"@types/lodash.isequal": "npm:^4.5.7"
"@types/lodash.isobject": "npm:^3.0.7"
"@types/lodash.kebabcase": "npm:^4.1.7"
"@types/lodash.merge": "npm:^4.6.7"
"@types/lodash.snakecase": "npm:^4.1.7"
"@types/lodash.upperfirst": "npm:^4.3.7"
"@types/mailparser": "npm:^3.4.4"
"@types/ms": "npm:^0.7.31"
"@types/node": "npm:^20.10.6"
"@types/passport-google-oauth20": "npm:^2.0.11"
"@types/passport-jwt": "npm:^3.0.8"
"@types/supertest": "npm:^2.0.11"
"@types/uuid": "npm:^9.0.2"
add: "npm:^2.0.6"
apollo-server-express: "npm:^3.12.0"
axios: "npm:^1.6.2"
bcrypt: "npm:^5.1.1"
body-parser: "npm:^1.20.2"
bullmq: "npm:^4.14.0"
bytes: "npm:^3.1.2"
class-transformer: "npm:^0.5.1"
class-validator: "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch"
dataloader: "npm:^2.2.2"
date-fns: "npm:^2.30.0"
file-type: "npm:16.5.4"
googleapis: "npm:105"
graphql: "npm:16.8.0"
graphql-fields: "npm:^2.0.3"
graphql-subscriptions: "npm:2.0.0"
graphql-tag: "npm:^2.12.6"
graphql-type-json: "npm:^0.3.2"
graphql-upload: "npm:^13.0.0"
graphql-yoga: "npm:^4.0.4"
jest-mock-extended: "npm:^3.0.4"
jsonwebtoken: "npm:^9.0.0"
lodash.camelcase: "npm:^4.3.0"
lodash.isempty: "npm:^4.4.0"
lodash.isequal: "npm:^4.5.0"
lodash.isobject: "npm:^3.0.2"
lodash.kebabcase: "npm:^4.1.1"
lodash.merge: "npm:^4.6.2"
lodash.snakecase: "npm:^4.1.1"
lodash.upperfirst: "npm:^4.3.1"
mailparser: "npm:^3.6.5"
microdiff: "npm:^1.3.2"
nest-commander: "npm:^3.12.0"
openapi-types: "npm:^12.1.3"
passport: "npm:^0.6.0"
passport-google-oauth20: "npm:^2.0.0"
passport-jwt: "npm:^4.0.1"
passport-local: "npm:^1.0.0"
pg: "npm:^8.11.3"
pg-boss: "npm:^9.0.3"
rimraf: "npm:^3.0.2"
rxjs: "npm:^7.2.0"
sharp: "npm:^0.32.1"
source-map-support: "npm:^0.5.20"
supertest: "npm:^6.1.3"
ts-loader: "npm:^9.2.3"
type-fest: "npm:^3.12.0"
typeorm: "npm:^0.3.17"
uuid: "npm:^9.0.0"
languageName: unknown
linkType: soft
"twenty-utils@workspace:packages/twenty-utils":
version: 0.0.0-use.local
resolution: "twenty-utils@workspace:packages/twenty-utils"
dependencies:
danger: "npm:^11.3.0"
danger-plugin-todos: "npm:^1.3.1"
semver: "npm:^7.5.4"
typescript: "npm:^5.3.2"
languageName: unknown
linkType: soft
"twenty-website@workspace:packages/twenty-website":
version: 0.0.0-use.local
resolution: "twenty-website@workspace:packages/twenty-website"
dependencies:
"@emotion/react": "npm:^11.11.1"
"@emotion/styled": "npm:^11.11.0"
"@jsdevtools/rehype-toc": "npm:^3.0.2"
"@nivo/calendar": "npm:^0.84.0"
"@nivo/core": "npm:^0.84.0"
"@nx/eslint-plugin": "npm:^17.2.8"
"@octokit/graphql": "npm:^7.0.2"
"@stoplight/elements": "npm:^7.16.2"
"@tabler/icons-react": "npm:^2.44.0"
"@types/better-sqlite3": "npm:^7.6.8"
"@types/node": "npm:^20"
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
"@typescript-eslint/eslint-plugin": "npm:^6.16.0"
better-sqlite3: "npm:^9.2.2"
eslint: "npm:^8"
eslint-config-next: "npm:14.0.4"
eslint-config-prettier: "npm:^9.1.0"
eslint-plugin-prettier: "npm:^5.1.2"
eslint-plugin-react: "npm:^7.33.2"
graphiql: "npm:^3.0.10"
graphql: "npm:^16.8.1"
next: "npm:14.0.4"
next-mdx-remote: "npm:^4.4.1"
prettier: "npm:^3.1.1"
react: "npm:^18"
react-dom: "npm:^18"
react-icons: "npm:^4.12.0"
rehype-slug: "npm:^6.0.0"
remark-behead: "npm:^3.1.0"
remark-gfm: "npm:^3.0.1"
typescript: "npm:^5"
languageName: unknown
linkType: soft
"twenty-zapier@workspace:packages/twenty-zapier":
version: 0.0.0-use.local
resolution: "twenty-zapier@workspace:packages/twenty-zapier"
dependencies:
"@types/jest": "npm:^29.5.5"
"@types/node": "npm:^20.8.6"
dotenv-cli: "npm:^7.2.1"
jest: "npm:^29.6.0"
prettier: "npm:^3.0.3"
rimraf: "npm:^5.0.5"
typescript: "npm:^5.2.2"
zapier-platform-cli: "npm:^15.4.1"
zapier-platform-core: "npm:15.5.1"
languageName: unknown
linkType: soft
"twenty@workspace:.":
version: 0.0.0-use.local
resolution: "twenty@workspace:."
dependencies:
"@nx/eslint": "npm:17.2.7"
"@nx/eslint-plugin": "npm:17.2.7"
"@nx/jest": "npm:17.2.7"
"@nx/js": "npm:17.2.7"
nx: "npm:^17.2.8"
patch-package: "npm:^8.0.0"
tslib: "npm:^2.3.0"
zod: "npm:^3.22.2"
languageName: unknown
linkType: soft
@ -41984,7 +41783,7 @@ __metadata:
languageName: node
linkType: hard
"type-fest@npm:^3.0.0, type-fest@npm:^3.12.0":
"type-fest@npm:^3.0.0":
version: 3.13.1
resolution: "type-fest@npm:3.13.1"
checksum: 547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629
@ -42175,7 +41974,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^5, typescript@npm:^5.2.2, typescript@npm:^5.3.2, typescript@npm:^5.3.3":
"typescript@npm:^5.3.3":
version: 5.3.3
resolution: "typescript@npm:5.3.3"
bin:
@ -42205,7 +42004,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A^5#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.2.2#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.3.2#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin<compat/typescript>":
"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin<compat/typescript>":
version: 5.3.3
resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"
bin: