build: migrate from npm to pnpm with workspace catalogs

- Switch package manager to pnpm 10 via corepack
- Add pnpm-workspace.yaml with 54+ shared dependency catalogs
- Convert all workspace packages to catalog: and workspace:* protocols
- Upgrade Turborepo from 1.x to 2.8.12 (pipeline -> tasks)
- Upgrade apps/openpage-api from Next 15 to Next 16
- Update Docker, CI workflows, and GitHub Actions for pnpm
- Convert patch file to pnpm native format
- Replace deprecated next lint with standalone eslint
- Update all documentation references from npm to pnpm
- Fix stale dependabot config and documentation paths
This commit is contained in:
Lucas Smith
2026-03-01 00:01:57 +11:00
parent 1ff8680c32
commit 960217c78d
54 changed files with 23522 additions and 37744 deletions
+10 -10
View File
@@ -15,15 +15,15 @@
"v1/"
],
"dependencies": {
"@documenso/lib": "*",
"@documenso/prisma": "*",
"@ts-rest/core": "^3.52.1",
"@ts-rest/open-api": "^3.52.1",
"@ts-rest/serverless": "^3.52.1",
"@documenso/lib": "workspace:*",
"@documenso/prisma": "workspace:*",
"@ts-rest/core": "catalog:",
"@ts-rest/open-api": "catalog:",
"@ts-rest/serverless": "catalog:",
"@types/swagger-ui-react": "^5.18.0",
"luxon": "^3.7.2",
"superjson": "^2.2.5",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76"
"luxon": "catalog:",
"superjson": "catalog:",
"ts-pattern": "catalog:",
"zod": "catalog:"
}
}
}
+6 -6
View File
@@ -7,16 +7,16 @@
"scripts": {
"test:dev": "NODE_OPTIONS=--experimental-require-module playwright test",
"test-ui:dev": "NODE_OPTIONS=--experimental-require-module playwright test --ui",
"test:e2e": "NODE_OPTIONS=--experimental-require-module NODE_ENV=test NEXT_PRIVATE_LOGGER_FILE_PATH=./logs.json start-server-and-test \"npm run start -w @documenso/remix\" http://localhost:3000 \"playwright test $E2E_TEST_PATH\""
"test:e2e": "NODE_OPTIONS=--experimental-require-module NODE_ENV=test NEXT_PRIVATE_LOGGER_FILE_PATH=./logs.json start-server-and-test \"pnpm run --filter @documenso/remix start\" http://localhost:3000 \"playwright test $E2E_TEST_PATH\""
},
"keywords": [],
"author": "",
"devDependencies": {
"@documenso/lib": "*",
"@documenso/prisma": "*",
"@napi-rs/canvas": "^0.1.83",
"@documenso/lib": "workspace:*",
"@documenso/prisma": "workspace:*",
"@napi-rs/canvas": "catalog:",
"@playwright/test": "1.56.1",
"@types/node": "^20",
"@types/node": "catalog:",
"@types/pngjs": "^6.0.5",
"pixelmatch": "^7.1.0",
"pngjs": "^7.0.0"
@@ -24,4 +24,4 @@
"dependencies": {
"start-server-and-test": "^2.1.3"
}
}
}
+11 -11
View File
@@ -10,17 +10,17 @@
"clean": "rimraf node_modules"
},
"dependencies": {
"@documenso/lib": "*",
"@documenso/prisma": "*",
"@hono/standard-validator": "^0.2.0",
"@oslojs/crypto": "^1.0.1",
"@oslojs/encoding": "^1.1.0",
"@simplewebauthn/server": "^13.2.2",
"@documenso/lib": "workspace:*",
"@documenso/prisma": "workspace:*",
"@hono/standard-validator": "catalog:",
"@oslojs/crypto": "catalog:",
"@oslojs/encoding": "catalog:",
"@simplewebauthn/server": "catalog:",
"arctic": "^3.7.0",
"hono": "^4.12.2",
"luxon": "^3.7.2",
"nanoid": "^5.1.6",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76"
"hono": "catalog:",
"luxon": "catalog:",
"nanoid": "catalog:",
"ts-pattern": "catalog:",
"zod": "catalog:"
}
}
+7 -7
View File
@@ -13,12 +13,12 @@
"clean": "rimraf node_modules"
},
"dependencies": {
"@aws-sdk/client-sesv2": "^3.998.0",
"@documenso/lib": "*",
"@documenso/prisma": "*",
"luxon": "^3.7.2",
"react": "^18",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76"
"@aws-sdk/client-sesv2": "catalog:",
"@documenso/lib": "workspace:*",
"@documenso/prisma": "workspace:*",
"luxon": "catalog:",
"react": "catalog:",
"ts-pattern": "catalog:",
"zod": "catalog:"
}
}
+2 -2
View File
@@ -16,7 +16,7 @@
"clean": "rimraf node_modules"
},
"dependencies": {
"@documenso/tailwind-config": "*",
"@documenso/tailwind-config": "workspace:*",
"@documenso/nodemailer-resend": "4.0.0",
"@react-email/body": "0.2.0",
"@react-email/button": "0.2.0",
@@ -42,7 +42,7 @@
"resend": "^6.5.2"
},
"devDependencies": {
"@documenso/tsconfig": "*",
"@documenso/tsconfig": "workspace:*",
"@types/nodemailer": "^7.0.4"
}
}
+4 -4
View File
@@ -9,12 +9,12 @@
"dependencies": {
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.0",
"eslint": "catalog:",
"eslint-config-next": "^15",
"eslint-config-turbo": "^1.13.4",
"eslint-config-turbo": "^2.8.12",
"eslint-plugin-package-json": "^0.85.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-unused-imports": "^4.3.0",
"typescript": "5.6.2"
"typescript": "catalog:"
}
}
}
@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/consistent-type-assertions */
import { RefObject, useEffect, useState } from 'react';
import { useEffect, useState } from 'react';
/**
* Calculate the width and height of a text element.
+26 -26
View File
@@ -16,25 +16,25 @@
},
"dependencies": {
"@ai-sdk/google-vertex": "3.0.81",
"@aws-sdk/client-s3": "^3.998.0",
"@aws-sdk/client-sesv2": "^3.998.0",
"@aws-sdk/cloudfront-signer": "^3.998.0",
"@aws-sdk/s3-request-presigner": "^3.998.0",
"@aws-sdk/signature-v4-crt": "^3.998.0",
"@documenso/assets": "*",
"@documenso/email": "*",
"@documenso/prisma": "*",
"@documenso/signing": "*",
"@lingui/core": "^5.6.0",
"@lingui/macro": "^5.6.0",
"@lingui/react": "^5.6.0",
"@napi-rs/canvas": "^0.1.83",
"@aws-sdk/client-s3": "catalog:",
"@aws-sdk/client-sesv2": "catalog:",
"@aws-sdk/cloudfront-signer": "catalog:",
"@aws-sdk/s3-request-presigner": "catalog:",
"@aws-sdk/signature-v4-crt": "catalog:",
"@documenso/assets": "workspace:*",
"@documenso/email": "workspace:*",
"@documenso/prisma": "workspace:*",
"@documenso/signing": "workspace:*",
"@lingui/core": "catalog:",
"@lingui/macro": "catalog:",
"@lingui/react": "catalog:",
"@napi-rs/canvas": "catalog:",
"@noble/ciphers": "0.6.0",
"@noble/hashes": "1.8.0",
"@node-rs/bcrypt": "^1.10.7",
"@pdf-lib/fontkit": "^1.1.1",
"@scure/base": "^1.2.6",
"@simplewebauthn/server": "^13.2.2",
"@scure/base": "catalog:",
"@simplewebauthn/server": "catalog:",
"@sindresorhus/slugify": "^3.0.0",
"@team-plain/typescript-sdk": "^5.11.0",
"@vvo/tzdb": "^6.196.0",
@@ -42,29 +42,29 @@
"csv-parse": "^6.1.0",
"inngest": "^3.45.1",
"jose": "^6.1.2",
"konva": "^10.0.9",
"kysely": "0.28.8",
"luxon": "^3.7.2",
"nanoid": "^5.1.6",
"konva": "catalog:",
"kysely": "catalog:",
"luxon": "catalog:",
"nanoid": "catalog:",
"oslo": "^0.17.0",
"p-map": "^7.0.4",
"pg": "^8.16.3",
"pino": "^9.14.0",
"pino-pretty": "^13.1.2",
"playwright": "1.56.1",
"posthog-js": "^1.297.2",
"posthog-node": "4.18.0",
"react": "^18",
"remeda": "^2.32.0",
"posthog-js": "catalog:",
"posthog-node": "catalog:",
"react": "catalog:",
"remeda": "catalog:",
"sharp": "0.34.5",
"skia-canvas": "^3.0.8",
"stripe": "^12.18.0",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76"
"ts-pattern": "catalog:",
"zod": "catalog:"
},
"devDependencies": {
"@playwright/browser-chromium": "1.56.1",
"@types/luxon": "^3.7.1",
"@types/luxon": "catalog:",
"@types/pg": "^8.15.6"
}
}
+2 -2
View File
@@ -8,8 +8,8 @@
},
"dependencies": {
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"prettier": "^3.6.2",
"prettier": "catalog:",
"prettier-plugin-tailwindcss": "^0.7.1"
},
"devDependencies": {}
}
}
+8 -8
View File
@@ -21,21 +21,21 @@
"seed": "tsx ./seed-database.ts"
},
"dependencies": {
"@prisma/client": "^6.19.0",
"kysely": "0.28.8",
"nanoid": "^5.1.6",
"prisma": "^6.19.0",
"@prisma/client": "catalog:",
"kysely": "catalog:",
"nanoid": "catalog:",
"prisma": "catalog:",
"prisma-extension-kysely": "^3.0.0",
"prisma-kysely": "^2.3.0",
"prisma-json-types-generator": "^3.6.2",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76",
"ts-pattern": "catalog:",
"zod": "catalog:",
"zod-prisma-types": "3.3.5"
},
"devDependencies": {
"dotenv": "^17.2.3",
"dotenv-cli": "^11.0.0",
"tsx": "^4.20.6",
"typescript": "5.6.2"
"tsx": "catalog:",
"typescript": "catalog:"
}
}
+3 -3
View File
@@ -14,9 +14,9 @@
"dependencies": {
"@google-cloud/kms": "^5.2.1",
"@google-cloud/secret-manager": "^6.1.1",
"ts-pattern": "^5.9.0"
"ts-pattern": "catalog:"
},
"devDependencies": {
"@documenso/tsconfig": "*"
"@documenso/tsconfig": "workspace:*"
}
}
}
+4 -4
View File
@@ -10,13 +10,13 @@
"dependencies": {
"@tailwindcss/container-queries": "^0.1.1",
"@tailwindcss/typography": "^0.5.19",
"autoprefixer": "^10.4.22",
"autoprefixer": "catalog:",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.18",
"tailwindcss-animate": "^1.0.7"
"tailwindcss": "catalog:",
"tailwindcss-animate": "catalog:"
},
"devDependencies": {},
"publishConfig": {
"access": "public"
}
}
}
+13 -13
View File
@@ -10,24 +10,24 @@
"clean": "rimraf node_modules"
},
"dependencies": {
"@documenso/lib": "*",
"@documenso/prisma": "*",
"@simplewebauthn/server": "^13.2.2",
"@tanstack/react-query": "5.90.10",
"@trpc/client": "11.8.1",
"@trpc/react-query": "11.8.1",
"@trpc/server": "11.8.1",
"@ts-rest/core": "^3.52.1",
"@documenso/lib": "workspace:*",
"@documenso/prisma": "workspace:*",
"@simplewebauthn/server": "catalog:",
"@tanstack/react-query": "catalog:",
"@trpc/client": "catalog:",
"@trpc/react-query": "catalog:",
"@trpc/server": "catalog:",
"@ts-rest/core": "catalog:",
"formidable": "^3.5.4",
"luxon": "^3.7.2",
"superjson": "^2.2.5",
"luxon": "catalog:",
"superjson": "catalog:",
"trpc-to-openapi": "^2.1.5",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76",
"ts-pattern": "catalog:",
"zod": "catalog:",
"zod-form-data": "^2.0.8",
"zod-openapi": "^4.2.4"
},
"devDependencies": {
"@types/formidable": "^3.4.6"
"@types/formidable": "catalog:"
}
}
@@ -1,4 +1,4 @@
import { Prisma, WebhookCallStatus, WebhookTriggerEvents } from '@prisma/client';
import type { Prisma, WebhookCallStatus, WebhookTriggerEvents } from '@prisma/client';
import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams';
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
@@ -1,8 +1,7 @@
import { Prisma, WebhookCallStatus, WebhookTriggerEvents } from '@prisma/client';
import { Prisma, WebhookCallStatus } from '@prisma/client';
import { TEAM_MEMBER_ROLE_PERMISSIONS_MAP } from '@documenso/lib/constants/teams';
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
import type { FindResultResponse } from '@documenso/lib/types/search-params';
import { buildTeamWhereQuery } from '@documenso/lib/utils/teams';
import { prisma } from '@documenso/prisma';
@@ -1,4 +1,3 @@
import { WebhookCallStatus, WebhookTriggerEvents } from '@prisma/client';
import { z } from 'zod';
import WebhookCallSchema from '@documenso/prisma/generated/zod/modelSchema/WebhookCallSchema';
+24 -24
View File
@@ -17,20 +17,20 @@
"clean": "rimraf node_modules"
},
"devDependencies": {
"@documenso/tailwind-config": "*",
"@documenso/tsconfig": "*",
"@types/luxon": "^3.7.1",
"@types/react": "18.3.27",
"@types/react-dom": "^18",
"react": "^18",
"typescript": "5.6.2"
"@documenso/tailwind-config": "workspace:*",
"@documenso/tsconfig": "workspace:*",
"@types/luxon": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"react": "catalog:",
"typescript": "catalog:"
},
"dependencies": {
"@documenso/lib": "*",
"@documenso/lib": "workspace:*",
"@hello-pangea/dnd": "^16.6.0",
"@hookform/resolvers": "^3",
"@lingui/macro": "^5.6.0",
"@lingui/react": "^5.6.0",
"@hookform/resolvers": "catalog:",
"@lingui/macro": "catalog:",
"@lingui/react": "catalog:",
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-alert-dialog": "^1.1.15",
"@radix-ui/react-aspect-ratio": "^1.1.8",
@@ -58,26 +58,26 @@
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.11",
"@radix-ui/react-tooltip": "^1.2.8",
"@scure/base": "^1.2.6",
"@scure/base": "catalog:",
"@tanstack/react-table": "^8.21.3",
"class-variance-authority": "^0.7.1",
"clsx": "^1.2.1",
"cmdk": "^0.2.1",
"framer-motion": "^12.23.24",
"lucide-react": "^0.554.0",
"luxon": "^3.7.2",
"pdfjs-dist": "5.4.296",
"framer-motion": "catalog:",
"lucide-react": "catalog:",
"luxon": "catalog:",
"perfect-freehand": "^1.2.2",
"react": "^18",
"pdfjs-dist": "5.4.296",
"react": "catalog:",
"react-colorful": "^5.6.1",
"react-day-picker": "^8.10.1",
"react-dom": "^18",
"react-hook-form": "^7.66.1",
"react-rnd": "^10.5.2",
"remeda": "^2.32.0",
"react-dom": "catalog:",
"react-hook-form": "catalog:",
"react-rnd": "catalog:",
"remeda": "catalog:",
"tailwind-merge": "^1.14.0",
"tailwindcss-animate": "^1.0.7",
"ts-pattern": "^5.9.0",
"zod": "^3.25.76"
"tailwindcss-animate": "catalog:",
"ts-pattern": "catalog:",
"zod": "catalog:"
}
}