From 208bca496ec094206a9c7579689bee2de73ba6df Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 10 Dec 2025 14:37:23 -0600 Subject: [PATCH 1/5] refactor(doc-gen): use rolldown over rollup --- package-lock.json | 333 +++++++++++++++++- packages/doc-gen/package.json | 13 +- .../{rollup.config.js => rolldown.config.js} | 10 +- packages/doc-gen/tsconfig.build.json | 3 +- packages/doc-gen/tsconfig.json | 2 +- 5 files changed, 337 insertions(+), 24 deletions(-) rename packages/doc-gen/{rollup.config.js => rolldown.config.js} (79%) diff --git a/package-lock.json b/package-lock.json index 2ddb0a8af80..487c4369c06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78,7 +78,7 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@primer/react": "38.4.0", + "@primer/react": "38.5.0", "@primer/styled-react": "1.0.2", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", @@ -92,7 +92,7 @@ "name": "example-nextjs", "version": "0.0.0", "dependencies": { - "@primer/react": "38.4.0", + "@primer/react": "38.5.0", "@primer/styled-react": "1.0.2", "next": "^16.0.7", "react": "^19.2.0", @@ -135,7 +135,7 @@ "version": "0.0.0", "dependencies": { "@primer/octicons-react": "^19.14.0", - "@primer/react": "38.4.0", + "@primer/react": "38.5.0", "@primer/styled-react": "1.0.2", "clsx": "^2.1.1", "next": "^16.0.7", @@ -3470,10 +3470,33 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/@emnapi/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/runtime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz", - "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5948,6 +5971,19 @@ "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.0.tgz", + "integrity": "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + } + }, "node_modules/@next/env": { "version": "16.0.7", "resolved": "https://registry.npmjs.org/@next/env/-/env-16.0.7.tgz", @@ -6424,6 +6460,16 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/@oxc-project/types": { + "version": "0.101.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.101.0.tgz", + "integrity": "sha512-nuFhqlUzJX+gVIPPfuE6xurd4lST3mdcWOhyK/rZO0B9XWMKm79SuszIQEnSMmmDhq1DC8WWVYGVd+6F93o1gQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "dev": true, @@ -7420,6 +7466,234 @@ "dev": true, "license": "MIT" }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.53.tgz", + "integrity": "sha512-Ok9V8o7o6YfSdTTYA/uHH30r3YtOxLD6G3wih/U9DO0ucBBFq8WPt/DslU53OgfteLRHITZny9N/qCUxMf9kjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.53.tgz", + "integrity": "sha512-yIsKqMz0CtRnVa6x3Pa+mzTihr4Ty+Z6HfPbZ7RVbk1Uxnco4+CUn7Qbm/5SBol1JD/7nvY8rphAgyAi7Lj6Vg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.53.tgz", + "integrity": "sha512-GTXe+mxsCGUnJOFMhfGWmefP7Q9TpYUseHvhAhr21nCTgdS8jPsvirb0tJwM3lN0/u/cg7bpFNa16fQrjKrCjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.53.tgz", + "integrity": "sha512-9Tmp7bBvKqyDkMcL4e089pH3RsjD3SUungjmqWtyhNOxoQMh0fSmINTyYV8KXtE+JkxYMPWvnEt+/mfpVCkk8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.53.tgz", + "integrity": "sha512-a1y5fiB0iovuzdbjUxa7+Zcvgv+mTmlGGC4XydVIsyl48eoxgaYkA3l9079hyTyhECsPq+mbr0gVQsFU11OJAQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.53.tgz", + "integrity": "sha512-bpIGX+ov9PhJYV+wHNXl9rzq4F0QvILiURn0y0oepbQx+7stmQsKA0DhPGwmhfvF856wq+gbM8L92SAa/CBcLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.53.tgz", + "integrity": "sha512-bGe5EBB8FVjHBR1mOLOPEFg1Lp3//7geqWkU5NIhxe+yH0W8FVrQ6WRYOap4SUTKdklD/dC4qPLREkMMQ855FA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.53.tgz", + "integrity": "sha512-qL+63WKVQs1CMvFedlPt0U9PiEKJOAL/bsHMKUDS6Vp2Q+YAv/QLPu8rcvkfIMvQ0FPU2WL0aX4eWwF6e/GAnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.53.tgz", + "integrity": "sha512-VGl9JIGjoJh3H8Mb+7xnVqODajBmrdOOb9lxWXdcmxyI+zjB2sux69br0hZJDTyLJfvBoYm439zPACYbCjGRmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.53.tgz", + "integrity": "sha512-B4iIserJXuSnNzA5xBLFUIjTfhNy7d9sq4FUMQY3GhQWGVhS2RWWzzDnkSU6MUt7/aHUrep0CdQfXUJI9D3W7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.53.tgz", + "integrity": "sha512-BUjAEgpABEJXilGq/BPh7jeU3WAJ5o15c1ZEgHaDWSz3LB881LQZnbNJHmUiM4d1JQWMYYyR1Y490IBHi2FPJg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.53.tgz", + "integrity": "sha512-s27uU7tpCWSjHBnxyVXHt3rMrQdJq5MHNv3BzsewCIroIw3DJFjMH1dzCPPMUFxnh1r52Nf9IJ/eWp6LDoyGcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.53.tgz", + "integrity": "sha512-cjWL/USPJ1g0en2htb4ssMjIycc36RvdQAx1WlXnS6DpULswiUTVXPDesTifSKYSyvx24E0YqQkEm0K/M2Z/AA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-babel": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz", @@ -8628,6 +8902,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/acorn": { "version": "4.0.6", "dev": true, @@ -21589,6 +21874,38 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rolldown": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.53.tgz", + "integrity": "sha512-Qd9c2p0XKZdgT5AYd+KgAMggJ8ZmCs3JnS9PTMWkyUfteKlfmKtxJbWTHkVakxwXs1Ub7jrRYVeFeF7N0sQxyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.101.0", + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-beta.53", + "@rolldown/binding-darwin-arm64": "1.0.0-beta.53", + "@rolldown/binding-darwin-x64": "1.0.0-beta.53", + "@rolldown/binding-freebsd-x64": "1.0.0-beta.53", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.53", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.53", + "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.53", + "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.53", + "@rolldown/binding-linux-x64-musl": "1.0.0-beta.53", + "@rolldown/binding-openharmony-arm64": "1.0.0-beta.53", + "@rolldown/binding-wasm32-wasi": "1.0.0-beta.53", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.53", + "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.53" + } + }, "node_modules/rollup": { "version": "4.53.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", @@ -26035,7 +26352,9 @@ "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", + "prettier": "^3.4.2", "rimraf": "^6.0.1", + "rolldown": "^1.0.0-beta.53", "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.8.3" @@ -26263,7 +26582,7 @@ }, "packages/react": { "name": "@primer/react", - "version": "38.4.0", + "version": "38.5.0", "license": "MIT", "dependencies": { "@github/mini-throttle": "^2.1.1", diff --git a/packages/doc-gen/package.json b/packages/doc-gen/package.json index 68edbe0b4ce..40a5df90d89 100644 --- a/packages/doc-gen/package.json +++ b/packages/doc-gen/package.json @@ -21,18 +21,18 @@ ], "scripts": { "clean": "rimraf dist", - "build": "rollup -c", + "build": "rolldown -c", "type-check": "tsc --noEmit", - "watch": "rollup -c -w", + "watch": "rolldown -w -c", "test": "vitest --run", "test:watch": "vitest" }, "dependencies": { "@babel/runtime": "^7.28.2", "@types/signale": "^1.4.7", + "@types/yargs": "^17.0.33", "signale": "^1.4.0", - "yargs": "^18.0.0", - "@types/yargs": "^17.0.33" + "yargs": "^18.0.0" }, "devDependencies": { "@babel/core": "^7.28.5", @@ -40,10 +40,9 @@ "@babel/preset-env": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@rollup/plugin-babel": "^6.1.0", - "@rollup/plugin-commonjs": "^29.0.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", + "prettier": "^3.4.2", "rimraf": "^6.0.1", + "rolldown": "^1.0.0-beta.53", "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.8.3" diff --git a/packages/doc-gen/rollup.config.js b/packages/doc-gen/rolldown.config.js similarity index 79% rename from packages/doc-gen/rollup.config.js rename to packages/doc-gen/rolldown.config.js index 0a2a6db641a..adca6c84aff 100644 --- a/packages/doc-gen/rollup.config.js +++ b/packages/doc-gen/rolldown.config.js @@ -1,8 +1,5 @@ -import {defineConfig} from 'rollup' +import {defineConfig} from 'rolldown' import babel from '@rollup/plugin-babel' -import json from '@rollup/plugin-json' -import nodeResolve from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' import typescript from 'rollup-plugin-typescript2' import packageJson from './package.json' with {type: 'json'} @@ -17,9 +14,8 @@ const external = [ const config = defineConfig({ input: ['./src/index.ts'], external, + platform: 'node', plugins: [ - nodeResolve(), - commonjs(), typescript({ tsconfig: './tsconfig.build.json', }), @@ -39,12 +35,10 @@ const config = defineConfig({ plugins: ['@babel/plugin-transform-runtime'], babelHelpers: 'runtime', }), - json(), ], output: { dir: 'dist', format: 'esm', - importAttributesKey: 'with', }, }) diff --git a/packages/doc-gen/tsconfig.build.json b/packages/doc-gen/tsconfig.build.json index f8dbf0c35ca..efcc8cdd005 100644 --- a/packages/doc-gen/tsconfig.build.json +++ b/packages/doc-gen/tsconfig.build.json @@ -4,5 +4,6 @@ "emitDeclarationOnly": true, "outDir": "./dist", "rootDir": "./src" - } + }, + "exclude": ["**/__tests__/**", "vitest.config.mts"] } diff --git a/packages/doc-gen/tsconfig.json b/packages/doc-gen/tsconfig.json index 564a5990051..1c7a7e8dc7a 100644 --- a/packages/doc-gen/tsconfig.json +++ b/packages/doc-gen/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "../../tsconfig.base.json", - "include": ["src"] + "include": ["src", "vitest.config.mts"] } From c237fcd2404f37cb95e0e6a2230c463ea0f73560 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 10 Dec 2025 14:39:07 -0600 Subject: [PATCH 2/5] refactor(mcp): use rolldown over rollup --- package-lock.json | 7 +------ packages/mcp/package.json | 8 +++----- packages/mcp/{rollup.config.js => rolldown.config.js} | 9 +-------- 3 files changed, 5 insertions(+), 19 deletions(-) rename packages/mcp/{rollup.config.js => rolldown.config.js} (79%) diff --git a/package-lock.json b/package-lock.json index 487c4369c06..7dd02e3e064 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26349,9 +26349,6 @@ "@babel/preset-env": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@rollup/plugin-babel": "^6.1.0", - "@rollup/plugin-commonjs": "^29.0.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", "prettier": "^3.4.2", "rimraf": "^6.0.1", "rolldown": "^1.0.0-beta.53", @@ -26522,11 +26519,9 @@ "@babel/preset-typescript": "^7.28.5", "@modelcontextprotocol/inspector": "^0.16.6", "@rollup/plugin-babel": "^6.1.0", - "@rollup/plugin-commonjs": "^29.0.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", "@types/turndown": "^5.0.5", "rimraf": "^6.0.1", + "rolldown": "^1.0.0-beta.53", "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.9.2" diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 81ca366d259..7d0abc7be5e 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -29,9 +29,9 @@ }, "scripts": { "clean": "rimraf dist", - "build": "rollup -c", + "build": "rolldown -c", "type-check": "tsc --noEmit", - "watch": "rollup -c -w" + "watch": "rolldown -w -c" }, "dependencies": { "@babel/runtime": "^7.28.4", @@ -50,11 +50,9 @@ "@babel/preset-typescript": "^7.28.5", "@modelcontextprotocol/inspector": "^0.16.6", "@rollup/plugin-babel": "^6.1.0", - "@rollup/plugin-commonjs": "^29.0.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", "@types/turndown": "^5.0.5", "rimraf": "^6.0.1", + "rolldown": "^1.0.0-beta.53", "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.9.2" diff --git a/packages/mcp/rollup.config.js b/packages/mcp/rolldown.config.js similarity index 79% rename from packages/mcp/rollup.config.js rename to packages/mcp/rolldown.config.js index ff8163f96e0..5219f911ba0 100644 --- a/packages/mcp/rollup.config.js +++ b/packages/mcp/rolldown.config.js @@ -1,8 +1,5 @@ -import {defineConfig} from 'rollup' +import {defineConfig} from 'rolldown' import babel from '@rollup/plugin-babel' -import json from '@rollup/plugin-json' -import nodeResolve from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' import typescript from 'rollup-plugin-typescript2' import packageJson from './package.json' with {type: 'json'} @@ -18,8 +15,6 @@ const config = defineConfig({ input: ['./src/index.ts', './src/transports/stdio.ts'], external, plugins: [ - nodeResolve(), - commonjs(), typescript({ tsconfig: './tsconfig.build.json', }), @@ -39,12 +34,10 @@ const config = defineConfig({ plugins: ['@babel/plugin-transform-runtime'], babelHelpers: 'runtime', }), - json(), ], output: { dir: 'dist', format: 'esm', - importAttributesKey: 'with', }, }) From aed52cd8d175cf90f9a160e39da1cd94735af72a Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 10 Dec 2025 14:41:54 -0600 Subject: [PATCH 3/5] chore: remove rollup from deps --- packages/doc-gen/package.json | 1 - packages/mcp/package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/doc-gen/package.json b/packages/doc-gen/package.json index 40a5df90d89..c69cd5a8f03 100644 --- a/packages/doc-gen/package.json +++ b/packages/doc-gen/package.json @@ -43,7 +43,6 @@ "prettier": "^3.4.2", "rimraf": "^6.0.1", "rolldown": "^1.0.0-beta.53", - "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.8.3" } diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 7d0abc7be5e..b3ccc4dfeca 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -53,7 +53,6 @@ "@types/turndown": "^5.0.5", "rimraf": "^6.0.1", "rolldown": "^1.0.0-beta.53", - "rollup": "^4.53.3", "rollup-plugin-typescript2": "^0.36.0", "typescript": "^5.9.2" } From 9ce5f677e4c29ff77069f8b65d9e89a483cd31f9 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 10 Dec 2025 14:42:06 -0600 Subject: [PATCH 4/5] refactor(styled-react): use rolldown over rollup --- package-lock.json | 1 + packages/styled-react/package.json | 5 +- packages/styled-react/rolldown.config.js | 48 ++++++++ packages/styled-react/rollup.config.js | 137 ----------------------- packages/styled-react/script/build | 2 +- 5 files changed, 54 insertions(+), 139 deletions(-) create mode 100644 packages/styled-react/rolldown.config.js delete mode 100644 packages/styled-react/rollup.config.js diff --git a/package-lock.json b/package-lock.json index 7dd02e3e064..2632d767b26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26980,6 +26980,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "rimraf": "^6.0.1", + "rolldown": "^1.0.0-beta.53", "rollup": "4.53.3", "rollup-plugin-typescript2": "^0.36.0", "styled-components": "5.3.11", diff --git a/packages/styled-react/package.json b/packages/styled-react/package.json index 242792c6490..5cb5d3eeb09 100644 --- a/packages/styled-react/package.json +++ b/packages/styled-react/package.json @@ -38,6 +38,9 @@ "@types/styled-system": "^5.1.23", "@types/styled-system__css": "^5.0.16", "@types/styled-system__theme-get": "^5.0.1", + "clsx": "^2.1.1", + "deepmerge": "^4.3.1", + "focus-visible": "^5.2.1", "styled-system": "^5.1.5" }, "devDependencies": { @@ -54,7 +57,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "rimraf": "^6.0.1", - "rollup": "4.53.3", + "rolldown": "^1.0.0-beta.53", "rollup-plugin-typescript2": "^0.36.0", "styled-components": "5.3.11", "typescript": "^5.9.2" diff --git a/packages/styled-react/rolldown.config.js b/packages/styled-react/rolldown.config.js new file mode 100644 index 00000000000..7d0ff36b1da --- /dev/null +++ b/packages/styled-react/rolldown.config.js @@ -0,0 +1,48 @@ +import babel from '@rollup/plugin-babel' +import {defineConfig} from 'rollup' +import typescript from 'rollup-plugin-typescript2' +import packageJson from './package.json' with {type: 'json'} + +const dependencies = [ + ...Object.keys(packageJson.peerDependencies ?? {}), + ...Object.keys(packageJson.dependencies ?? {}), + ...Object.keys(packageJson.devDependencies ?? {}), +] + +function createPackageRegex(name) { + return new RegExp(`^${name}(/.*)?`) +} + +export default defineConfig({ + input: ['src/index.tsx', 'src/experimental.tsx', 'src/deprecated.tsx'], + external: dependencies.map(createPackageRegex), + plugins: [ + typescript({ + tsconfig: 'tsconfig.build.json', + }), + babel({ + presets: ['@babel/preset-typescript', ['@babel/preset-react', {runtime: 'automatic'}]], + plugins: ['babel-plugin-styled-components'], + extensions: ['.ts', '.tsx'], + babelHelpers: 'bundled', + }), + ], + onwarn(warning, defaultHandler) { + // Dependencies or modules may use "use client" as an indicator for React + // Server Components that this module should only be loaded on the client. + if (warning.code === 'MODULE_LEVEL_DIRECTIVE' && warning.message.includes('use client')) { + return + } + + if (warning.code === 'CIRCULAR_DEPENDENCY') { + throw warning + } + + defaultHandler(warning) + }, + output: { + dir: 'dist', + format: 'esm', + preserveModules: true, + }, +}) diff --git a/packages/styled-react/rollup.config.js b/packages/styled-react/rollup.config.js deleted file mode 100644 index 60091798713..00000000000 --- a/packages/styled-react/rollup.config.js +++ /dev/null @@ -1,137 +0,0 @@ -import babel from '@rollup/plugin-babel' -import {defineConfig} from 'rollup' -import typescript from 'rollup-plugin-typescript2' -import packageJson from './package.json' with {type: 'json'} -import MagicString from 'magic-string' - -const dependencies = [ - ...Object.keys(packageJson.peerDependencies ?? {}), - ...Object.keys(packageJson.dependencies ?? {}), - ...Object.keys(packageJson.devDependencies ?? {}), -] - -function createPackageRegex(name) { - return new RegExp(`^${name}(/.*)?`) -} - -export default defineConfig({ - input: ['src/index.tsx', 'src/experimental.tsx', 'src/deprecated.tsx'], - external: dependencies.map(createPackageRegex), - plugins: [ - typescript({ - tsconfig: 'tsconfig.build.json', - }), - babel({ - presets: ['@babel/preset-typescript', ['@babel/preset-react', {runtime: 'automatic'}]], - plugins: ['babel-plugin-styled-components'], - extensions: ['.ts', '.tsx'], - babelHelpers: 'bundled', - }), - /** - * This custom rollup plugin allows us to preserve directives in source - * code, such as "use client", in order to support React Server Components. - * - * The source for this plugin is inspired by: - * https://github.com/Ephem/rollup-plugin-preserve-directives - */ - { - name: 'preserve-directives', - transform(code) { - const ast = this.parse(code) - if (ast.type !== 'Program' || !ast.body) { - return { - code, - ast, - map: null, - } - } - - let hasClientDirective = false - - for (const node of ast.body) { - if (!node) { - continue - } - - if (node.type !== 'ExpressionStatement') { - continue - } - - if (node.directive === 'use client') { - hasClientDirective = true - break - } - } - - if (hasClientDirective) { - return { - code, - ast, - map: null, - meta: { - hasClientDirective: true, - }, - } - } - - return { - code, - ast, - map: null, - } - }, - renderChunk: { - order: 'post', - handler(code, chunk, options) { - // If `preserveModules` is not set to true, we can't be sure if the client - // directive corresponds to the whole chunk or just a part of it. - if (!options.preserveModules) { - return undefined - } - - let chunkHasClientDirective = false - - for (const moduleId of Object.keys(chunk.modules)) { - const hasClientDirective = this.getModuleInfo(moduleId)?.meta?.hasClientDirective - if (hasClientDirective) { - chunkHasClientDirective = true - break - } - } - - if (chunkHasClientDirective) { - const transformed = new MagicString(code) - transformed.prepend(`"use client";\n`) - const sourcemap = transformed.generateMap({ - includeContent: true, - }) - return { - code: transformed.toString(), - map: sourcemap, - } - } - - return null - }, - }, - }, - ], - onwarn(warning, defaultHandler) { - // Dependencies or modules may use "use client" as an indicator for React - // Server Components that this module should only be loaded on the client. - if (warning.code === 'MODULE_LEVEL_DIRECTIVE' && warning.message.includes('use client')) { - return - } - - if (warning.code === 'CIRCULAR_DEPENDENCY') { - throw warning - } - - defaultHandler(warning) - }, - output: { - dir: 'dist', - format: 'esm', - preserveModules: true, - }, -}) diff --git a/packages/styled-react/script/build b/packages/styled-react/script/build index 34b63316201..936f26e15ed 100755 --- a/packages/styled-react/script/build +++ b/packages/styled-react/script/build @@ -1,7 +1,7 @@ #!/bin/bash # Build the package -npx rollup -c +npx rolldown -c # Generate components.json ./script/generate-components-json From 62669218de4c507cf6877df6a21a8d0bd8ccec3f Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 10 Dec 2025 14:44:29 -0600 Subject: [PATCH 5/5] chore: add changeset --- .changeset/chatty-windows-grin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/chatty-windows-grin.md diff --git a/.changeset/chatty-windows-grin.md b/.changeset/chatty-windows-grin.md new file mode 100644 index 00000000000..fb19933311c --- /dev/null +++ b/.changeset/chatty-windows-grin.md @@ -0,0 +1,5 @@ +--- +'@primer/styled-react': patch +--- + +Add clsx, deepmerge, and focus-visible as dependencies to the package