From 9bcb7b0d9d3fa1ac881aebc3e270712f33354d1d Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Wed, 1 Oct 2025 15:05:37 -0700 Subject: [PATCH] feat: bundle types (#14020) This PR updates the build process to generate a single `dist/index.bundled.d.ts` file that bundles all `payload` package types. Having one bundled declaration file makes it easy to load types into the Monaco editor (e.g. for the new Code block), enabling full type completion for the `payload` package. ## Example ```ts BlocksFeature({ blocks: [ CodeBlock({ slug: 'PayloadCode', languages: { ts: 'TypeScript', }, typescript: { fetchTypes: [ { filePath: 'file:///node_modules/payload/index.d.ts', url: 'https://unpkg.com/payload@3.59.0-internal.e247081/dist/index.bundled.d.ts', // <= download bundled .d.ts }, ], paths: { payload: ['file:///node_modules/payload/index.d.ts'], }, typeRoots: ['node_modules/@types', 'node_modules/payload'], }, }), ], }), ``` Screenshot 2025-10-01 at 12 38
54@2x --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1211524241290884 --- eslint.config.js | 1 + packages/payload/eslint.config.js | 8 +- packages/payload/package.json | 5 +- packages/payload/rollup.dts.config.mjs | 46 +++ packages/payload/tsconfig.bundletypes.json | 13 + pnpm-lock.yaml | 315 +++++++++++++++++++-- 6 files changed, 353 insertions(+), 35 deletions(-) create mode 100644 packages/payload/rollup.dts.config.mjs create mode 100644 packages/payload/tsconfig.bundletypes.json diff --git a/eslint.config.js b/eslint.config.js index 448abc5cc..b1cf9054a 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -24,6 +24,7 @@ export const defaultESLintIgnores = [ '**/app', 'src/**/*.spec.ts', '**/jest.setup.js', + 'packages/payload/rollup.dts.config.mjs', ] /** @typedef {import('eslint').Linter.Config} Config */ diff --git a/packages/payload/eslint.config.js b/packages/payload/eslint.config.js index 1cc7ef76f..5aa859996 100644 --- a/packages/payload/eslint.config.js +++ b/packages/payload/eslint.config.js @@ -5,10 +5,10 @@ import { rootEslintConfig, rootParserOptions } from '../../eslint.config.js' /** * We've removed all eslint.config.js from the packages, but we have to leave this one as an exception. - * The payload package is so large that without its own eslint.config, an M3 Pro (18GB) runs out of + * The payload package is so large that without its own eslint.config, an M3 Pro (18GB) runs out of * memory when linting. Interestingly, two days ago when I started this PR, this didn't happen, but it * started happening when I did a merge from main to update the PR. - * tsc also takes a long time to run. It's likely that at some point we'll need to split the package + * tsc also takes a long time to run. It's likely that at some point we'll need to split the package * (into payload1, payload2, etc.) and re-export them in payload. */ /** @type {Config[]} */ @@ -21,11 +21,11 @@ export const index = [ tsconfigRootDir: import.meta.dirname, projectService: { // See comment in packages/eslint-config/index.mjs - allowDefaultProject: ['bin.js', 'bundle.js'], + allowDefaultProject: ['bin.js', 'bundle.js', 'rollup.dts.config.mjs'], }, }, }, }, ] -export default index \ No newline at end of file +export default index diff --git a/packages/payload/package.json b/packages/payload/package.json index 45874cc6d..39b39808e 100644 --- a/packages/payload/package.json +++ b/packages/payload/package.json @@ -71,10 +71,11 @@ "bin.js" ], "scripts": { - "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && echo skipping esbuild", + "build": "rimraf .dist && rimraf tsconfig.tsbuildinfo && pnpm copyfiles && pnpm build:types && pnpm build:swc && pnpm bundle:types && echo skipping esbuild", "build:bundle-for-analysis": "node ./bundle.js esbuild", "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths", "build:types": "tsc --emitDeclarationOnly --outDir dist", + "bundle:types": "rollup -c rollup.dts.config.mjs", "clean": "rimraf -g {dist,*.tsbuildinfo}", "clean:cache": "rimraf node_modules/.cache", "copyfiles": "copyfiles -u 1 \"src/**/*.{html,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/", @@ -132,6 +133,8 @@ "graphql-http": "^1.22.0", "react-datepicker": "7.6.0", "rimraf": "6.0.1", + "rollup": "4.52.3", + "rollup-plugin-dts": "6.2.3", "sharp": "0.32.6" }, "peerDependencies": { diff --git a/packages/payload/rollup.dts.config.mjs b/packages/payload/rollup.dts.config.mjs new file mode 100644 index 000000000..70f27460f --- /dev/null +++ b/packages/payload/rollup.dts.config.mjs @@ -0,0 +1,46 @@ +import dts from 'rollup-plugin-dts' +import path from 'node:path' + +import { builtinModules } from 'node:module' + +const WHITELIST = ['ts-essentials', 'croner', '@payloadcms/translations'] // <-- only these get bundled + +/** + * One-step DTS bundle: + * - Input from your TS source entry + * - Output to a single dist/index.bundled.d.ts + * - respectExternal: true -> aggressively inline third-party .d.ts (helps with ts-essentials) + */ +export default [ + { + input: 'src/index.ts', + output: { file: 'dist/index.bundled.d.ts', format: 'es' }, + plugins: [ + dts({ + tsconfig: './tsconfig.bundletypes.json', + respectExternal: true, + compilerOptions: {}, + }), + ], + + /** + * Externalize all non-whitelisted packages and Node builtins. + * If we bundle all packages, this script runs out of memory. + */ + external: (id) => { + // 1) Always keep Node builtins external + if (builtinModules.includes(id) || builtinModules.includes(id.replace(/^node:/, ''))) + return true + + // 2) Keep virtual/internal rollup ids external just in case + if (id.startsWith('\0')) return true + + // 3) Never externalize *local* files (we want our own .d.ts bundled) + if (id.startsWith('.') || path.isAbsolute(id)) return false + + // 4) Bundle only whitelisted packages (opt-in) + const isWhitelisted = WHITELIST.some((p) => id === p || id.startsWith(`${p}/`)) + return !isWhitelisted // everything else is external + }, + }, +] diff --git a/packages/payload/tsconfig.bundletypes.json b/packages/payload/tsconfig.bundletypes.json new file mode 100644 index 000000000..c7eabaa2a --- /dev/null +++ b/packages/payload/tsconfig.bundletypes.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "references": [{ "path": "../translations" }], + "compilerOptions": { + // Do not include DOM and DOM.Iterable as payload is a server-only package. + // This ensures node types do not conflict with node types (e.g. fetch.dispatcher) + "lib": ["ES2022"], + "paths": { + "@payloadcms/translations": ["../translations/dist/exports/index.d.ts"], + "@payloadcms/translations/utilities": ["../translations/dist/exports/utilities.d.ts"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e9c9f873..466d71ebf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -980,6 +980,12 @@ importers: rimraf: specifier: 6.0.1 version: 6.0.1 + rollup: + specifier: 4.52.3 + version: 4.52.3 + rollup-plugin-dts: + specifier: 6.2.3 + version: 6.2.3(rollup@4.52.3)(typescript@5.7.3) sharp: specifier: 0.32.6 version: 0.32.6 @@ -1949,7 +1955,7 @@ importers: version: 8.6.0(react@19.1.1) geist: specifier: ^1.3.0 - version: 1.4.2(next@15.5.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) + version: 1.4.2(next@15.5.4(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) jsonwebtoken: specifier: 9.0.1 version: 9.0.1 @@ -1958,7 +1964,7 @@ importers: version: 0.477.0(react@19.1.1) next: specifier: ^15.5.4 - version: 15.5.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) + version: 15.5.4(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) next-themes: specifier: 0.4.6 version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -2148,7 +2154,7 @@ importers: version: 16.4.7 geist: specifier: ^1.3.0 - version: 1.4.2(next@15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) + version: 1.4.2(next@15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) graphql: specifier: ^16.8.1 version: 16.9.0 @@ -2157,10 +2163,10 @@ importers: version: 0.378.0(react@19.1.1) next: specifier: 15.4.4 - version: 15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) + version: 15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) + version: 4.2.3(next@15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)) payload: specifier: workspace:* version: link:../../packages/payload @@ -3035,10 +3041,6 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} @@ -5993,51 +5995,106 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.52.3': + resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.43.0': resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.52.3': + resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.43.0': resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.52.3': + resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.43.0': resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.52.3': + resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.43.0': resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.52.3': + resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.43.0': resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.3': + resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.43.0': resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.43.0': resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.52.3': + resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.43.0': resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.52.3': + resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.43.0': resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.52.3': + resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.52.3': + resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.43.0': resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} cpu: [loong64] @@ -6048,46 +6105,101 @@ packages: cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.52.3': + resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.43.0': resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.52.3': + resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.43.0': resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.52.3': + resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.43.0': resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.52.3': + resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.43.0': resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.52.3': + resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.43.0': resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.52.3': + resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.52.3': + resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.43.0': resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.52.3': + resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.43.0': resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.3': + resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.3': + resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.43.0': resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.52.3': + resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} + cpu: [x64] + os: [win32] + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -6898,6 +7010,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/find-node-modules@2.1.2': resolution: {integrity: sha512-5hRcqDclY6MTkHXJBc5q79z5luG+IJRlGR01wluMVMM9lYogYc2sfclXTVU5Edp0Ja4viIOCDI1lXhFRlsNTKA==} @@ -11842,6 +11957,13 @@ packages: engines: {node: 20 || >=22} hasBin: true + rollup-plugin-dts@6.2.3: + resolution: {integrity: sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: 5.7.3 + rollup@3.29.5: resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -11852,6 +11974,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.52.3: + resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -14518,8 +14645,6 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-option@7.27.1': {} @@ -15214,7 +15339,7 @@ snapshots: '@babel/types@7.26.7': dependencies: '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 '@babel/types@7.27.3': dependencies: @@ -17728,7 +17853,7 @@ snapshots: '@rollup/pluginutils@5.1.3(rollup@3.29.5)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: @@ -17737,63 +17862,129 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.43.0': optional: true + '@rollup/rollup-android-arm-eabi@4.52.3': + optional: true + '@rollup/rollup-android-arm64@4.43.0': optional: true + '@rollup/rollup-android-arm64@4.52.3': + optional: true + '@rollup/rollup-darwin-arm64@4.43.0': optional: true + '@rollup/rollup-darwin-arm64@4.52.3': + optional: true + '@rollup/rollup-darwin-x64@4.43.0': optional: true + '@rollup/rollup-darwin-x64@4.52.3': + optional: true + '@rollup/rollup-freebsd-arm64@4.43.0': optional: true + '@rollup/rollup-freebsd-arm64@4.52.3': + optional: true + '@rollup/rollup-freebsd-x64@4.43.0': optional: true + '@rollup/rollup-freebsd-x64@4.52.3': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.43.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.43.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.3': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.43.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-arm64-musl@4.43.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.52.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.43.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.43.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.43.0': optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.3': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.43.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-x64-gnu@4.43.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-x64-musl@4.43.0': optional: true + '@rollup/rollup-linux-x64-musl@4.52.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.3': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.43.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.3': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.43.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.3': + optional: true + '@rollup/rollup-win32-x64-msvc@4.43.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.52.3': + optional: true + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.11.0': {} @@ -18869,7 +19060,7 @@ snapshots: '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/aria-query@5.0.4': {} @@ -18925,7 +19116,7 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/eslint@9.6.1': dependencies: @@ -18938,12 +19129,14 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/estree@1.0.6': {} '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/find-node-modules@2.1.2': {} '@types/fs-extra@11.0.4': @@ -19456,7 +19649,7 @@ snapshots: '@vue/compiler-ssr': 3.5.12 '@vue/shared': 3.5.12 estree-walker: 2.0.2 - magic-string: 0.30.12 + magic-string: 0.30.17 postcss: 8.5.5 source-map-js: 1.2.1 @@ -20121,7 +20314,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 bundle-name@4.1.0: dependencies: @@ -21827,13 +22020,13 @@ snapshots: - encoding - supports-color - geist@1.4.2(next@15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): + geist@1.4.2(next@15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): dependencies: - next: 15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) + next: 15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) - geist@1.4.2(next@15.5.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): + geist@1.4.2(next@15.5.4(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): dependencies: - next: 15.5.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) + next: 15.5.4(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) gel@2.0.1: dependencies: @@ -22411,7 +22604,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 is-regex@1.1.4: dependencies: @@ -23370,7 +23563,7 @@ snapshots: micromark-factory-mdx-expression@2.0.2: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -23435,7 +23628,7 @@ snapshots: micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 @@ -23691,13 +23884,13 @@ snapshots: transitivePeerDependencies: - supports-color - next-sitemap@4.2.3(next@15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): + next-sitemap@4.2.3(next@15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.11 fast-glob: 3.3.2 minimist: 1.2.8 - next: 15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) + next: 15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) next-themes@0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: @@ -23761,6 +23954,32 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.4.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4): + dependencies: + '@next/env': 15.4.4 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001720 + postcss: 8.4.31 + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + styled-jsx: 5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.4.4 + '@next/swc-darwin-x64': 15.4.4 + '@next/swc-linux-arm64-gnu': 15.4.4 + '@next/swc-linux-arm64-musl': 15.4.4 + '@next/swc-linux-x64-gnu': 15.4.4 + '@next/swc-linux-x64-musl': 15.4.4 + '@next/swc-win32-arm64-msvc': 15.4.4 + '@next/swc-win32-x64-msvc': 15.4.4 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.54.1 + sass: 1.77.4 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + next@15.4.4(@opentelemetry/api@1.9.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4): dependencies: '@next/env': 15.4.4 @@ -23788,7 +24007,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.5.4(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4): + next@15.5.4(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4): dependencies: '@next/env': 15.5.4 '@swc/helpers': 0.5.15 @@ -23907,7 +24126,7 @@ snapshots: dependencies: execa: 6.1.0 parse-package-name: 1.0.0 - semver: 7.7.1 + semver: 7.7.2 validate-npm-package-name: 4.0.0 nwsapi@2.2.20: {} @@ -24810,6 +25029,14 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 + rollup-plugin-dts@6.2.3(rollup@4.52.3)(typescript@5.7.3): + dependencies: + magic-string: 0.30.17 + rollup: 4.52.3 + typescript: 5.7.3 + optionalDependencies: + '@babel/code-frame': 7.27.1 + rollup@3.29.5: optionalDependencies: fsevents: 2.3.3 @@ -24840,6 +25067,34 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.43.0 fsevents: 2.3.3 + rollup@4.52.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.3 + '@rollup/rollup-android-arm64': 4.52.3 + '@rollup/rollup-darwin-arm64': 4.52.3 + '@rollup/rollup-darwin-x64': 4.52.3 + '@rollup/rollup-freebsd-arm64': 4.52.3 + '@rollup/rollup-freebsd-x64': 4.52.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.3 + '@rollup/rollup-linux-arm-musleabihf': 4.52.3 + '@rollup/rollup-linux-arm64-gnu': 4.52.3 + '@rollup/rollup-linux-arm64-musl': 4.52.3 + '@rollup/rollup-linux-loong64-gnu': 4.52.3 + '@rollup/rollup-linux-ppc64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-musl': 4.52.3 + '@rollup/rollup-linux-s390x-gnu': 4.52.3 + '@rollup/rollup-linux-x64-gnu': 4.52.3 + '@rollup/rollup-linux-x64-musl': 4.52.3 + '@rollup/rollup-openharmony-arm64': 4.52.3 + '@rollup/rollup-win32-arm64-msvc': 4.52.3 + '@rollup/rollup-win32-ia32-msvc': 4.52.3 + '@rollup/rollup-win32-x64-gnu': 4.52.3 + '@rollup/rollup-win32-x64-msvc': 4.52.3 + fsevents: 2.3.3 + rrweb-cssom@0.8.0: {} run-applescript@7.0.0: {} @@ -26529,7 +26784,7 @@ snapshots: webpack@5.96.1(@swc/core@1.11.29): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1