From 8c7f8c277435b76f5cb4b35ec59615061ea7fb9e Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 15:05:58 +0200 Subject: [PATCH 01/10] test: Rollup options - extract into its own directory --- test/package/rollup/.gitignore | 2 + .../case-options.mjs} | 0 .../options.test.ts} | 4 +- test/package/rollup/package-lock.json | 734 ++++++++++++++++++ test/package/{ => rollup}/package.json | 1 - test/package/{ => rollup}/src/index.js | 0 6 files changed, 738 insertions(+), 3 deletions(-) create mode 100644 test/package/rollup/.gitignore rename test/package/{rollup.config.mjs => rollup/case-options.mjs} (100%) rename test/package/{package.test.js => rollup/options.test.ts} (93%) create mode 100644 test/package/rollup/package-lock.json rename test/package/{ => rollup}/package.json (91%) rename test/package/{ => rollup}/src/index.js (100%) diff --git a/test/package/rollup/.gitignore b/test/package/rollup/.gitignore new file mode 100644 index 00000000..d2694976 --- /dev/null +++ b/test/package/rollup/.gitignore @@ -0,0 +1,2 @@ +package-lock.json +dist* diff --git a/test/package/rollup.config.mjs b/test/package/rollup/case-options.mjs similarity index 100% rename from test/package/rollup.config.mjs rename to test/package/rollup/case-options.mjs diff --git a/test/package/package.test.js b/test/package/rollup/options.test.ts similarity index 93% rename from test/package/package.test.js rename to test/package/rollup/options.test.ts index 5ec5e604..7ea2cc33 100644 --- a/test/package/package.test.js +++ b/test/package/rollup/options.test.ts @@ -4,9 +4,9 @@ import { beforeEach, describe, test, expect } from 'vitest'; import { rollup } from 'rollup'; import { vol } from 'memfs'; -import rollupConfig from './rollup.config'; +import rollupConfig from './case-options.mjs'; -describe('package test', () => { +describe('rollup options', () => { beforeEach(() => { vol.reset(); }); diff --git a/test/package/rollup/package-lock.json b/test/package/rollup/package-lock.json new file mode 100644 index 00000000..2e28ce5f --- /dev/null +++ b/test/package/rollup/package-lock.json @@ -0,0 +1,734 @@ +{ + "name": "rollup-plugin-webpack-stats-test", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "rollup-plugin-webpack-stats-test", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "rollup": "^4.9.1", + "rollup-plugin-webpack-stats": "*" + } + }, + "node_modules/@emnapi/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "dev": true, + "optional": true, + "peer": 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, + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.3.tgz", + "integrity": "sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@oxc-project/runtime": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.82.3.tgz", + "integrity": "sha512-LNh5GlJvYHAnMurO+EyA8jJwN1rki7l3PSHuosDh2I7h00T6/u9rCkUjg/SvPmT1CZzvhuW0y+gf7jcqUy/Usg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.82.3.tgz", + "integrity": "sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.34.tgz", + "integrity": "sha512-jf5GNe5jP3Sr1Tih0WKvg2bzvh5T/1TA0fn1u32xSH7ca/p5t+/QRr4VRFCV/na5vjwKEhwWrChsL2AWlY+eoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.34.tgz", + "integrity": "sha512-2F/TqH4QuJQ34tgWxqBjFL3XV1gMzeQgUO8YRtCPGBSP0GhxtoFzsp7KqmQEothsxztlv+KhhT9Dbg3HHwHViQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.34.tgz", + "integrity": "sha512-E1QuFslgLWbHQ8Qli/AqUKdfg0pockQPwRxVbhNQ74SciZEZpzLaujkdmOLSccMlSXDfFCF8RPnMoRAzQ9JV8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.34.tgz", + "integrity": "sha512-VS8VInNCwnkpI9WeQaWu3kVBq9ty6g7KrHdLxYMzeqz24+w9hg712TcWdqzdY6sn+24lUoMD9jTZrZ/qfVpk0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.34.tgz", + "integrity": "sha512-4St4emjcnULnxJYb/5ZDrH/kK/j6PcUgc3eAqH5STmTrcF+I9m/X2xvSF2a2bWv1DOQhxBewThu0KkwGHdgu5w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.34.tgz", + "integrity": "sha512-a737FTqhFUoWfnebS2SnQ2BS50p0JdukdkUBwy2J06j4hZ6Eej0zEB8vTfAqoCjn8BQKkXBy+3Sx0IRkgwz1gA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.34.tgz", + "integrity": "sha512-NH+FeQWKyuw0k+PbXqpFWNfvD8RPvfJk766B/njdaWz4TmiEcSB0Nb6guNw1rBpM1FmltQYb3fFnTumtC6pRfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.34.tgz", + "integrity": "sha512-Q3RSCivp8pNadYK8ke3hLnQk08BkpZX9BmMjgwae2FWzdxhxxUiUzd9By7kneUL0vRQ4uRnhD9VkFQ+Haeqdvw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.34.tgz", + "integrity": "sha512-wDd/HrNcVoBhWWBUW3evJHoo7GJE/RofssBy3Dsiip05YUBmokQVrYAyrboOY4dzs/lJ7HYeBtWQ9hj8wlyF0A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.34.tgz", + "integrity": "sha512-dH3FTEV6KTNWpYSgjSXZzeX7vLty9oBYn6R3laEdhwZftQwq030LKL+5wyQdlbX5pnbh4h127hpv3Hl1+sj8dg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "peer": true + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.34.tgz", + "integrity": "sha512-y5BUf+QtO0JsIDKA51FcGwvhJmv89BYjUl8AmN7jqD6k/eU55mH6RJYnxwCsODq5m7KSSTigVb6O7/GqB8wbPw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.34.tgz", + "integrity": "sha512-ga5hFhdTwpaNxEiuxZHWnD3ed0GBAzbgzS5tRHpe0ObptxM1a9Xrq6TVfNQirBLwb5Y7T/FJmJi3pmdLy95ljg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rolldown/binding-win32-ia32-msvc": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.34.tgz", + "integrity": "sha512-4/MBp9T9eRnZskxWr8EXD/xHvLhdjWaeX/qY9LPRG1JdCGV3DphkLTy5AWwIQ5jhAy2ZNJR5z2fYRlpWU0sIyQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.34.tgz", + "integrity": "sha512-7O5iUBX6HSBKlQU4WykpUoEmb0wQmonb6ziKFr3dJTHud2kzDnWMqk344T0qm3uGv9Ddq6Re/94pInxo1G2d4w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.34.tgz", + "integrity": "sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==", + "dev": true, + "peer": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", + "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", + "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", + "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", + "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", + "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", + "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", + "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", + "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", + "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", + "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", + "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", + "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", + "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", + "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", + "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", + "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", + "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", + "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", + "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", + "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", + "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", + "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/ansis": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.1.0.tgz", + "integrity": "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.34.tgz", + "integrity": "sha512-Wwh7EwalMzzX3Yy3VN58VEajeR2Si8+HDNMf706jPLIqU7CxneRW+dQVfznf5O0TWTnJyu4npelwg2bzTXB1Nw==", + "dev": true, + "peer": true, + "dependencies": { + "@oxc-project/runtime": "=0.82.3", + "@oxc-project/types": "=0.82.3", + "@rolldown/pluginutils": "1.0.0-beta.34", + "ansis": "^4.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-beta.34", + "@rolldown/binding-darwin-arm64": "1.0.0-beta.34", + "@rolldown/binding-darwin-x64": "1.0.0-beta.34", + "@rolldown/binding-freebsd-x64": "1.0.0-beta.34", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.34", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.34", + "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.34", + "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.34", + "@rolldown/binding-linux-x64-musl": "1.0.0-beta.34", + "@rolldown/binding-openharmony-arm64": "1.0.0-beta.34", + "@rolldown/binding-wasm32-wasi": "1.0.0-beta.34", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.34", + "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.34", + "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.34" + } + }, + "node_modules/rollup": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", + "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.0", + "@rollup/rollup-android-arm64": "4.50.0", + "@rollup/rollup-darwin-arm64": "4.50.0", + "@rollup/rollup-darwin-x64": "4.50.0", + "@rollup/rollup-freebsd-arm64": "4.50.0", + "@rollup/rollup-freebsd-x64": "4.50.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", + "@rollup/rollup-linux-arm-musleabihf": "4.50.0", + "@rollup/rollup-linux-arm64-gnu": "4.50.0", + "@rollup/rollup-linux-arm64-musl": "4.50.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", + "@rollup/rollup-linux-ppc64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-musl": "4.50.0", + "@rollup/rollup-linux-s390x-gnu": "4.50.0", + "@rollup/rollup-linux-x64-gnu": "4.50.0", + "@rollup/rollup-linux-x64-musl": "4.50.0", + "@rollup/rollup-openharmony-arm64": "4.50.0", + "@rollup/rollup-win32-arm64-msvc": "4.50.0", + "@rollup/rollup-win32-ia32-msvc": "4.50.0", + "@rollup/rollup-win32-x64-msvc": "4.50.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-stats": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-stats/-/rollup-plugin-stats-1.5.0.tgz", + "integrity": "sha512-TsWaV7ulwPA9JhqGJemrDJkvXNeNQb60lB13gIcT2kVDXlBM/PQD3GqVyhCJpvn43Y4YT5+VmWDRsbIAbuilBA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "^1.0.0-beta.0", + "rollup": "^3.0.0 || ^4.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-webpack-stats": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/rollup-plugin-webpack-stats/-/rollup-plugin-webpack-stats-2.1.4.tgz", + "integrity": "sha512-kv9W0rK9Qy1Q8/vkxEPGOwJvq7zVERnHD13At5Jv15FPPOXwxm1LblXtpuASeoM1ALhOPD0sJSDz64qgtSgh7g==", + "dev": true, + "dependencies": { + "rollup-plugin-stats": "1.5.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "^1.0.0-beta.0", + "rollup": "^3.0.0 || ^4.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "optional": true, + "peer": true + } + } +} diff --git a/test/package/package.json b/test/package/rollup/package.json similarity index 91% rename from test/package/package.json rename to test/package/rollup/package.json index 0905ec01..b1951bb5 100644 --- a/test/package/package.json +++ b/test/package/rollup/package.json @@ -4,7 +4,6 @@ "description": "", "main": "index.js", "scripts": { - "build": "rollup -c", "test": "vitest" }, "keywords": [], diff --git a/test/package/src/index.js b/test/package/rollup/src/index.js similarity index 100% rename from test/package/src/index.js rename to test/package/rollup/src/index.js From ce3836b3aa5a068c9b2c88adf6e374a81212cdda Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 15:29:15 +0200 Subject: [PATCH 02/10] test: Add vite package test --- package.json | 4 ++- test/package/vite/.gitignore | 2 ++ test/package/vite/case-options.mjs | 37 ++++++++++++++++++++++++ test/package/vite/index.html | 10 +++++++ test/package/vite/options.test.ts | 45 ++++++++++++++++++++++++++++++ test/package/vite/package.json | 15 ++++++++++ test/package/vite/src/index.js | 4 +++ 7 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 test/package/vite/.gitignore create mode 100644 test/package/vite/case-options.mjs create mode 100644 test/package/vite/index.html create mode 100644 test/package/vite/options.test.ts create mode 100644 test/package/vite/package.json create mode 100644 test/package/vite/src/index.js diff --git a/package.json b/package.json index eb2cb9ff..7c4ccd73 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,9 @@ "build": "tsc && rollup -c rollup.config.mjs", "lint": "exit 0", "test:unit": "vitest test/unit", - "test:package": "cd test/package && vitest", + "test:package": "npm run test:package:rollup && npm run test:package:vite", + "test:package:rollup": "cd test/package/rollup && vitest", + "test:package:vite": "cd test/package/vite && vitest", "bump": "./scripts/bump.sh", "release": "./scripts/release.sh" }, diff --git a/test/package/vite/.gitignore b/test/package/vite/.gitignore new file mode 100644 index 00000000..d2694976 --- /dev/null +++ b/test/package/vite/.gitignore @@ -0,0 +1,2 @@ +package-lock.json +dist* diff --git a/test/package/vite/case-options.mjs b/test/package/vite/case-options.mjs new file mode 100644 index 00000000..c6a21cae --- /dev/null +++ b/test/package/vite/case-options.mjs @@ -0,0 +1,37 @@ +import { basename } from 'path'; +import { defineConfig } from 'vite'; +import webpackStats from 'rollup-plugin-webpack-stats'; + +const baseConfig = { + build: { + outDir: 'dist', + rollupOptions: { + output: { + assetFileNames: 'assets/[name][extname]', + chunkFileNames: 'assets/[name].js', + entryFileNames: 'assets/[name].js', + }, + }, + }, +}; + +export default defineConfig([ + { + ...baseConfig, + plugins: [webpackStats()], + }, + { + ...baseConfig, + build: { + ...baseConfig.build, + }, + plugins: [ + // A contrived demo to show that plugin options can access vite outputOptions + webpackStats((outputOptions) => { + return { + fileName: `stats-${basename(outputOptions.dir)}.json`, + }; + }), + ], + }, +]); diff --git a/test/package/vite/index.html b/test/package/vite/index.html new file mode 100644 index 00000000..63aef619 --- /dev/null +++ b/test/package/vite/index.html @@ -0,0 +1,10 @@ + + + + + rollup-plugin-stats + + + + + diff --git a/test/package/vite/options.test.ts b/test/package/vite/options.test.ts new file mode 100644 index 00000000..61267c8b --- /dev/null +++ b/test/package/vite/options.test.ts @@ -0,0 +1,45 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { beforeEach, describe, test, expect } from 'vitest'; +import { build as vite } from 'vite'; +import { vol } from 'memfs'; + +import viteConfigs from './case-options.mjs'; + +describe('vite options', () => { + beforeEach(() => { + vol.reset(); + }); + + test('should output bundle stats JSON file when options is an object', async () => { + const config = viteConfigs[0]; + await vite(config); + + const actual = await fs.readFile(path.join(config.output.dir, 'webpack-stats.json'), 'utf8'); + const stats = JSON.parse(actual); + expect(stats).toMatchObject({ + assets: [ + { + name: 'assets/index.js', + size: 739, + }, + ], + }) + }); + + test('should output bundle stats JSON file when options is a builder function', async () => { + const config = viteConfigs[1]; + await vite(config); + + const actual = await fs.readFile(path.join(config.build.outDir, 'stats-dist2.json'), 'utf8'); + const stats = JSON.parse(actual); + expect(stats).toMatchObject({ + assets: [ + { + name: 'assets/index.js', + size: 739, + }, + ], + }) + }); +}); diff --git a/test/package/vite/package.json b/test/package/vite/package.json new file mode 100644 index 00000000..d952ee61 --- /dev/null +++ b/test/package/vite/package.json @@ -0,0 +1,15 @@ +{ + "name": "rollup-plugin-webpack-stats-test-vite", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "vitest" + }, + "keywords": [], + "license": "ISC", + "devDependencies": { + "rollup-plugin-webpack-stats": "*", + "vite": "^7.0.0" + } +} diff --git a/test/package/vite/src/index.js b/test/package/vite/src/index.js new file mode 100644 index 00000000..35a1d7cc --- /dev/null +++ b/test/package/vite/src/index.js @@ -0,0 +1,4 @@ +(() => { + const message = 'hello world!'; + console.log(message); +})(); From 62d405172ae6f370a438c15596de38725f213048 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 15:36:30 +0200 Subject: [PATCH 03/10] test: Rollup - add config tests --- test/package/rollup/case-config.js | 11 + test/package/rollup/case-config.mjs | 10 + test/package/rollup/case-config.ts | 10 + test/package/rollup/configs.test.ts | 22 + test/package/rollup/package-lock.json | 734 -------------------------- test/package/rollup/package.json | 8 +- 6 files changed, 60 insertions(+), 735 deletions(-) create mode 100644 test/package/rollup/case-config.js create mode 100644 test/package/rollup/case-config.mjs create mode 100644 test/package/rollup/case-config.ts create mode 100644 test/package/rollup/configs.test.ts delete mode 100644 test/package/rollup/package-lock.json diff --git a/test/package/rollup/case-config.js b/test/package/rollup/case-config.js new file mode 100644 index 00000000..1dbfe1c0 --- /dev/null +++ b/test/package/rollup/case-config.js @@ -0,0 +1,11 @@ +/* eslint-disable @typescript-eslint/no-require-imports */ +const { defineConfig } = require('rollup'); +const webpackStatsPlugin = require('rollup-plugin-webpack-stats'); + +module.exports = defineConfig({ + input: 'src/index.js', + output: { + dir: 'dist', + }, + plugins: [webpackStatsPlugin()], +}); diff --git a/test/package/rollup/case-config.mjs b/test/package/rollup/case-config.mjs new file mode 100644 index 00000000..17ff8443 --- /dev/null +++ b/test/package/rollup/case-config.mjs @@ -0,0 +1,10 @@ +import { defineConfig } from 'rollup'; +import webpackStatsPlugin from 'rollup-plugin-webpack-stats'; + +export default defineConfig({ + input: 'src/index.js', + output: { + dir: 'dist', + }, + plugins: [webpackStatsPlugin()], +}); diff --git a/test/package/rollup/case-config.ts b/test/package/rollup/case-config.ts new file mode 100644 index 00000000..1bcd5353 --- /dev/null +++ b/test/package/rollup/case-config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'rollup'; +import webpackStatsPlugin from 'rollup-plugin-webpack-stats'; + +export default defineConfig({ + input: 'src/index.js', + output: { + dir: 'dist', + }, + plugins: [webpackStatsPlugin({})], +}); diff --git a/test/package/rollup/configs.test.ts b/test/package/rollup/configs.test.ts new file mode 100644 index 00000000..f113d500 --- /dev/null +++ b/test/package/rollup/configs.test.ts @@ -0,0 +1,22 @@ +import { promisify } from 'node:util'; +import { exec as execCallback} from 'node:child_process'; +import { describe, expect, test } from 'vitest'; + +const exec = promisify(execCallback); + +const testCases = [ + { type: 'commonjs', run: 'npm run build-commonjs' }, + { type: 'esm', run: 'npm run build-esm' }, + { type: 'ts', run: 'npm run build-ts' }, +]; + +describe('package - rollup configs', () => { + testCases.forEach((testCase) => { + test(`should build successfully with rollup ${testCase.type} config`, async () => { + const { stderr } = await exec(`cross-env NO_COLOR=true ${testCase.run}`); + + expect(stderr).toMatch('Stats saved to dist'); + expect(stderr).toMatch('created dist in'); + }); + }); +}); diff --git a/test/package/rollup/package-lock.json b/test/package/rollup/package-lock.json deleted file mode 100644 index 2e28ce5f..00000000 --- a/test/package/rollup/package-lock.json +++ /dev/null @@ -1,734 +0,0 @@ -{ - "name": "rollup-plugin-webpack-stats-test", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "rollup-plugin-webpack-stats-test", - "version": "1.0.0", - "license": "ISC", - "devDependencies": { - "rollup": "^4.9.1", - "rollup-plugin-webpack-stats": "*" - } - }, - "node_modules/@emnapi/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", - "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", - "dev": true, - "optional": true, - "peer": 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, - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.3.tgz", - "integrity": "sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/core": "^1.4.5", - "@emnapi/runtime": "^1.4.5", - "@tybys/wasm-util": "^0.10.0" - } - }, - "node_modules/@oxc-project/runtime": { - "version": "0.82.3", - "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.82.3.tgz", - "integrity": "sha512-LNh5GlJvYHAnMurO+EyA8jJwN1rki7l3PSHuosDh2I7h00T6/u9rCkUjg/SvPmT1CZzvhuW0y+gf7jcqUy/Usg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.82.3", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.82.3.tgz", - "integrity": "sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==", - "dev": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.34.tgz", - "integrity": "sha512-jf5GNe5jP3Sr1Tih0WKvg2bzvh5T/1TA0fn1u32xSH7ca/p5t+/QRr4VRFCV/na5vjwKEhwWrChsL2AWlY+eoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.34.tgz", - "integrity": "sha512-2F/TqH4QuJQ34tgWxqBjFL3XV1gMzeQgUO8YRtCPGBSP0GhxtoFzsp7KqmQEothsxztlv+KhhT9Dbg3HHwHViQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.34.tgz", - "integrity": "sha512-E1QuFslgLWbHQ8Qli/AqUKdfg0pockQPwRxVbhNQ74SciZEZpzLaujkdmOLSccMlSXDfFCF8RPnMoRAzQ9JV8Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.34.tgz", - "integrity": "sha512-VS8VInNCwnkpI9WeQaWu3kVBq9ty6g7KrHdLxYMzeqz24+w9hg712TcWdqzdY6sn+24lUoMD9jTZrZ/qfVpk0g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.34.tgz", - "integrity": "sha512-4St4emjcnULnxJYb/5ZDrH/kK/j6PcUgc3eAqH5STmTrcF+I9m/X2xvSF2a2bWv1DOQhxBewThu0KkwGHdgu5w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.34.tgz", - "integrity": "sha512-a737FTqhFUoWfnebS2SnQ2BS50p0JdukdkUBwy2J06j4hZ6Eej0zEB8vTfAqoCjn8BQKkXBy+3Sx0IRkgwz1gA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.34.tgz", - "integrity": "sha512-NH+FeQWKyuw0k+PbXqpFWNfvD8RPvfJk766B/njdaWz4TmiEcSB0Nb6guNw1rBpM1FmltQYb3fFnTumtC6pRfA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.34.tgz", - "integrity": "sha512-Q3RSCivp8pNadYK8ke3hLnQk08BkpZX9BmMjgwae2FWzdxhxxUiUzd9By7kneUL0vRQ4uRnhD9VkFQ+Haeqdvw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.34.tgz", - "integrity": "sha512-wDd/HrNcVoBhWWBUW3evJHoo7GJE/RofssBy3Dsiip05YUBmokQVrYAyrboOY4dzs/lJ7HYeBtWQ9hj8wlyF0A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.34.tgz", - "integrity": "sha512-dH3FTEV6KTNWpYSgjSXZzeX7vLty9oBYn6R3laEdhwZftQwq030LKL+5wyQdlbX5pnbh4h127hpv3Hl1+sj8dg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openharmony" - ], - "peer": true - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.34.tgz", - "integrity": "sha512-y5BUf+QtO0JsIDKA51FcGwvhJmv89BYjUl8AmN7jqD6k/eU55mH6RJYnxwCsODq5m7KSSTigVb6O7/GqB8wbPw==", - "cpu": [ - "wasm32" - ], - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^1.0.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.34.tgz", - "integrity": "sha512-ga5hFhdTwpaNxEiuxZHWnD3ed0GBAzbgzS5tRHpe0ObptxM1a9Xrq6TVfNQirBLwb5Y7T/FJmJi3pmdLy95ljg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rolldown/binding-win32-ia32-msvc": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.34.tgz", - "integrity": "sha512-4/MBp9T9eRnZskxWr8EXD/xHvLhdjWaeX/qY9LPRG1JdCGV3DphkLTy5AWwIQ5jhAy2ZNJR5z2fYRlpWU0sIyQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.34.tgz", - "integrity": "sha512-7O5iUBX6HSBKlQU4WykpUoEmb0wQmonb6ziKFr3dJTHud2kzDnWMqk344T0qm3uGv9Ddq6Re/94pInxo1G2d4w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.34.tgz", - "integrity": "sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==", - "dev": true, - "peer": true - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", - "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", - "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", - "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", - "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", - "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", - "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", - "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", - "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", - "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", - "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", - "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", - "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", - "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", - "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", - "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", - "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", - "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", - "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", - "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", - "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", - "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", - "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "node_modules/ansis": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.1.0.tgz", - "integrity": "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/rolldown": { - "version": "1.0.0-beta.34", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.34.tgz", - "integrity": "sha512-Wwh7EwalMzzX3Yy3VN58VEajeR2Si8+HDNMf706jPLIqU7CxneRW+dQVfznf5O0TWTnJyu4npelwg2bzTXB1Nw==", - "dev": true, - "peer": true, - "dependencies": { - "@oxc-project/runtime": "=0.82.3", - "@oxc-project/types": "=0.82.3", - "@rolldown/pluginutils": "1.0.0-beta.34", - "ansis": "^4.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-beta.34", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.34", - "@rolldown/binding-darwin-x64": "1.0.0-beta.34", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.34", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.34", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.34", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.34", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.34", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.34", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.34", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.34", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.34", - "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.34", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.34" - } - }, - "node_modules/rollup": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", - "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.50.0", - "@rollup/rollup-android-arm64": "4.50.0", - "@rollup/rollup-darwin-arm64": "4.50.0", - "@rollup/rollup-darwin-x64": "4.50.0", - "@rollup/rollup-freebsd-arm64": "4.50.0", - "@rollup/rollup-freebsd-x64": "4.50.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", - "@rollup/rollup-linux-arm-musleabihf": "4.50.0", - "@rollup/rollup-linux-arm64-gnu": "4.50.0", - "@rollup/rollup-linux-arm64-musl": "4.50.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", - "@rollup/rollup-linux-ppc64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-musl": "4.50.0", - "@rollup/rollup-linux-s390x-gnu": "4.50.0", - "@rollup/rollup-linux-x64-gnu": "4.50.0", - "@rollup/rollup-linux-x64-musl": "4.50.0", - "@rollup/rollup-openharmony-arm64": "4.50.0", - "@rollup/rollup-win32-arm64-msvc": "4.50.0", - "@rollup/rollup-win32-ia32-msvc": "4.50.0", - "@rollup/rollup-win32-x64-msvc": "4.50.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-stats": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-stats/-/rollup-plugin-stats-1.5.0.tgz", - "integrity": "sha512-TsWaV7ulwPA9JhqGJemrDJkvXNeNQb60lB13gIcT2kVDXlBM/PQD3GqVyhCJpvn43Y4YT5+VmWDRsbIAbuilBA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "rolldown": "^1.0.0-beta.0", - "rollup": "^3.0.0 || ^4.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "rolldown": { - "optional": true - }, - "rollup": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-webpack-stats": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-webpack-stats/-/rollup-plugin-webpack-stats-2.1.4.tgz", - "integrity": "sha512-kv9W0rK9Qy1Q8/vkxEPGOwJvq7zVERnHD13At5Jv15FPPOXwxm1LblXtpuASeoM1ALhOPD0sJSDz64qgtSgh7g==", - "dev": true, - "dependencies": { - "rollup-plugin-stats": "1.5.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "rolldown": "^1.0.0-beta.0", - "rollup": "^3.0.0 || ^4.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "optional": true, - "peer": true - } - } -} diff --git a/test/package/rollup/package.json b/test/package/rollup/package.json index b1951bb5..b4815b71 100644 --- a/test/package/rollup/package.json +++ b/test/package/rollup/package.json @@ -4,12 +4,18 @@ "description": "", "main": "index.js", "scripts": { + "build-commonjs": "rollup -c case-config.js", + "build-esm": "rollup -c case-config.mjs", + "build-ts": "rollup --config case-config.ts --configPlugin typescript", "test": "vitest" }, "keywords": [], "license": "ISC", "devDependencies": { + "@rollup/plugin-typescript": "^12.1.4", + "cross-env": "^7.0.0", "rollup": "^4.9.1", - "rollup-plugin-webpack-stats": "*" + "rollup-plugin-webpack-stats": "*", + "typescript": "^5.9.2" } } From d05f670f1fc93a99fc24e2ee0bce17d91a061491 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 15:41:18 +0200 Subject: [PATCH 04/10] test: Vite - add config tests --- test/package/vite/case-config.js | 16 ++++++++++++++++ test/package/vite/case-config.mjs | 15 +++++++++++++++ test/package/vite/case-config.ts | 15 +++++++++++++++ test/package/vite/case-options.mjs | 1 + test/package/vite/configs.test.ts | 22 ++++++++++++++++++++++ test/package/vite/options.test.ts | 4 ++-- test/package/vite/package.json | 4 ++++ 7 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 test/package/vite/case-config.js create mode 100644 test/package/vite/case-config.mjs create mode 100644 test/package/vite/case-config.ts create mode 100644 test/package/vite/configs.test.ts diff --git a/test/package/vite/case-config.js b/test/package/vite/case-config.js new file mode 100644 index 00000000..bc7b01c4 --- /dev/null +++ b/test/package/vite/case-config.js @@ -0,0 +1,16 @@ +/* eslint-disable @typescript-eslint/no-require-imports */ +const { defineConfig } = require('vite'); +const webpackStatsPlugin = require('rollup-plugin-webpack-stats'); + +module.exports = defineConfig({ + build: { + rollupOptions: { + output: { + assetFileNames: 'assets/[name][extname]', + chunkFileNames: 'assets/[name].js', + entryFileNames: 'assets/[name].js', + }, + }, + }, + plugins: [webpackStatsPlugin()], +}); diff --git a/test/package/vite/case-config.mjs b/test/package/vite/case-config.mjs new file mode 100644 index 00000000..2074bfa7 --- /dev/null +++ b/test/package/vite/case-config.mjs @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import webpackStatsPlugin from 'rollup-plugin-webpack-stats'; + +export default defineConfig({ + build: { + rollupOptions: { + output: { + assetFileNames: 'assets/[name][extname]', + chunkFileNames: 'assets/[name].js', + entryFileNames: 'assets/[name].js', + }, + }, + }, + plugins: [webpackStatsPlugin()], +}); diff --git a/test/package/vite/case-config.ts b/test/package/vite/case-config.ts new file mode 100644 index 00000000..2074bfa7 --- /dev/null +++ b/test/package/vite/case-config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import webpackStatsPlugin from 'rollup-plugin-webpack-stats'; + +export default defineConfig({ + build: { + rollupOptions: { + output: { + assetFileNames: 'assets/[name][extname]', + chunkFileNames: 'assets/[name].js', + entryFileNames: 'assets/[name].js', + }, + }, + }, + plugins: [webpackStatsPlugin()], +}); diff --git a/test/package/vite/case-options.mjs b/test/package/vite/case-options.mjs index c6a21cae..50fade1e 100644 --- a/test/package/vite/case-options.mjs +++ b/test/package/vite/case-options.mjs @@ -24,6 +24,7 @@ export default defineConfig([ ...baseConfig, build: { ...baseConfig.build, + outDir: 'dist2', }, plugins: [ // A contrived demo to show that plugin options can access vite outputOptions diff --git a/test/package/vite/configs.test.ts b/test/package/vite/configs.test.ts new file mode 100644 index 00000000..b4afc97b --- /dev/null +++ b/test/package/vite/configs.test.ts @@ -0,0 +1,22 @@ +import { promisify } from 'node:util'; +import { exec as execCallback} from 'node:child_process'; +import { describe, expect, test } from 'vitest'; + +const exec = promisify(execCallback); + +const testCases = [ + { type: 'commonjs', run: 'npm run build-commonjs' }, + { type: 'esm', run: 'npm run build-esm' }, + { type: 'ts', run: 'npm run build-ts' }, +]; + +describe('package - vite configs', () => { + testCases.forEach((testCase) => { + test(`should build successfully with rollup ${testCase.type} config`, async () => { + const { stdout } = await exec(`cross-env NO_COLOR=true ${testCase.run}`); + + expect(stdout).toMatch('Stats saved to'); + expect(stdout).toMatch('built in'); + }); + }); +}); diff --git a/test/package/vite/options.test.ts b/test/package/vite/options.test.ts index 61267c8b..cd4d918d 100644 --- a/test/package/vite/options.test.ts +++ b/test/package/vite/options.test.ts @@ -6,7 +6,7 @@ import { vol } from 'memfs'; import viteConfigs from './case-options.mjs'; -describe('vite options', () => { +describe('package - vite options', () => { beforeEach(() => { vol.reset(); }); @@ -15,7 +15,7 @@ describe('vite options', () => { const config = viteConfigs[0]; await vite(config); - const actual = await fs.readFile(path.join(config.output.dir, 'webpack-stats.json'), 'utf8'); + const actual = await fs.readFile(path.join(config.build.outDir, 'webpack-stats.json'), 'utf8'); const stats = JSON.parse(actual); expect(stats).toMatchObject({ assets: [ diff --git a/test/package/vite/package.json b/test/package/vite/package.json index d952ee61..145ef4a8 100644 --- a/test/package/vite/package.json +++ b/test/package/vite/package.json @@ -4,11 +4,15 @@ "description": "", "main": "index.js", "scripts": { + "build-commonjs": "vite build -c case-config.js", + "build-esm": "vite build -c case-config.mjs", + "build-ts": "vite build -c case-config.ts", "test": "vitest" }, "keywords": [], "license": "ISC", "devDependencies": { + "cross-env": "^7.0.0", "rollup-plugin-webpack-stats": "*", "vite": "^7.0.0" } From 9fd5f54f99d2fb565eaed88e904f0fa428eae6e8 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 18:00:23 +0200 Subject: [PATCH 05/10] build: Individual test jobs for each bundler --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84efd31e..0fc3e154 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,7 @@ jobs: retention-days: 1 path: dist*/ - test-package: + test-package-rollup: name: Test package on node ${{ matrix.node }} / ${{ matrix.os }} / rollup v${{ matrix.rollup }} needs: - build @@ -99,16 +99,16 @@ jobs: npm install npm install rollup@${{ matrix.rollup }} --force npx rollup -v - working-directory: test/package + working-directory: test/package/rollup - name: Test package - run: npm run test:package + run: npm run test:package:rollup tests: needs: - lint - test-unit - - test-package + - test-package-rollup runs-on: ubuntu-latest steps: - run: exit 0 From 04fa477734ceb333270649aed842789aac4063b9 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 18:03:00 +0200 Subject: [PATCH 06/10] build: Add vite job --- .github/workflows/ci.yml | 57 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0fc3e154..06d3947f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: path: dist*/ test-package-rollup: - name: Test package on node ${{ matrix.node }} / ${{ matrix.os }} / rollup v${{ matrix.rollup }} + name: "rollup v${{ matrix.rollup }} / node ${{ matrix.node }} / ${{ matrix.os }}" needs: - build runs-on: ubuntu-latest @@ -102,13 +102,66 @@ jobs: working-directory: test/package/rollup - name: Test package - run: npm run test:package:rollup + run: npm run test + working-directory: test/package/rollup + + test-package-vite: + name: "vite v${{ matrix.vite }} / node ${{ matrix.node }} / ${{ matrix.os }}" + needs: + - build + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node: ["22", "20", "18"] + os: [ubuntu-latest, windows-latest] + vite: ["5", "6", "7"] + exclude: + - os: windows-latest + node: 20 + - os: windows-latest + node: 18 + - vite: 7 + node: 18 + steps: + - name: Checkout repo + uses: actions/checkout@v5.0.0 + + - name: Setup node & npm + uses: relative-ci/.github/actions/setup-node-npm@v1.1.1 + with: + version: ${{ matrix.node }} + cache: never + install: false + + - name: Install vitest + run: npm install vitest + + - name: Download build files + uses: actions/download-artifact@v5.0.0 + with: + name: build-artifacts + + - name: Setup local npm registry + run: ./scripts/setup-registry.sh + + - name: Install test package dependencies + run: | + npm install + npm install vite@${{ matrix.vite }} --force + npx vite -v + working-directory: test/package/vite + + - name: Test package + run: npm run test + working-directory: test/package/vite tests: needs: - lint - test-unit - test-package-rollup + - test-package-vite runs-on: ubuntu-latest steps: - run: exit 0 From fd6e4ccddccf8e7d6486e6b41f16387c6b7da15d Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Sun, 31 Aug 2025 19:15:40 +0200 Subject: [PATCH 07/10] fix: Export cjs/esm modules --- .github/workflows/ci.yml | 2 +- .gitignore | 2 +- package-lock.json | 111 +++++++++++++++++++++++++++++++ package.json | 32 +++++---- rollup.config.mjs | 53 +++++++++++---- test/package/rollup/package.json | 2 +- tsconfig.base.json | 30 +++++++++ tsconfig.cjs.json | 6 ++ tsconfig.esm.json | 6 ++ tsconfig.json | 41 ++++-------- 10 files changed, 229 insertions(+), 56 deletions(-) create mode 100644 tsconfig.base.json create mode 100644 tsconfig.cjs.json create mode 100644 tsconfig.esm.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06d3947f..964d7474 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,7 +49,7 @@ jobs: with: name: build-artifacts retention-days: 1 - path: dist*/ + path: lib*/ test-package-rollup: name: "rollup v${{ matrix.rollup }} / node ${{ matrix.node }} / ${{ matrix.os }}" diff --git a/.gitignore b/.gitignore index 29f34121..6a6f248a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *.log .DS_Store node_modules -dist +lib .env diff --git a/package-lock.json b/package-lock.json index 172ea8d6..ff5f73d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,8 @@ }, "devDependencies": { "@release-it/conventional-changelog": "10.0.1", + "@rollup/plugin-commonjs": "28.0.6", + "@rollup/plugin-node-resolve": "16.0.1", "@rollup/plugin-typescript": "12.1.4", "@tsconfig/node18": "18.2.4", "@types/node": "24.3.0", @@ -22,6 +24,7 @@ "release-it": "19.0.4", "rimraf": "6.0.1", "rollup": "4.46.4", + "rollup-plugin-node-externals": "8.1.0", "tslib": "2.8.1", "typescript": "5.9.2", "vitest": "3.2.4" @@ -1599,6 +1602,56 @@ "license": "MIT", "peer": true }, + "node_modules/@rollup/plugin-commonjs": { + "version": "28.0.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", + "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", + "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-typescript": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.4.tgz", @@ -1982,6 +2035,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", @@ -2479,6 +2538,12 @@ "dev": true, "license": "MIT" }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -2795,6 +2860,15 @@ "node": ">=6" } }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/default-browser": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", @@ -3573,6 +3647,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -3583,6 +3663,15 @@ "node": ">=8" } }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/is-ssh": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", @@ -4699,6 +4788,28 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-node-externals": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-externals/-/rollup-plugin-node-externals-8.1.0.tgz", + "integrity": "sha512-0D3S0E0Dl1V3Q6Cywnc7wt88VAfOB9AC5QHwVdgvP1vByRHW2wnEXoK0x3VYZzJ/EmGsR5Uix5HUmMJNG+hz2Q==", + "dev": true, + "funding": [ + { + "type": "patreon", + "url": "https://patreon.com/Septh" + }, + { + "type": "paypal", + "url": "https://paypal.me/septh07" + } + ], + "engines": { + "node": ">= 21 || ^20.6.0 || ^18.19.0" + }, + "peerDependencies": { + "rollup": "^4.0.0" + } + }, "node_modules/rollup-plugin-stats": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/rollup-plugin-stats/-/rollup-plugin-stats-1.5.0.tgz", diff --git a/package.json b/package.json index 7c4ccd73..e2778144 100644 --- a/package.json +++ b/package.json @@ -11,19 +11,19 @@ "stats", "bundle-stats" ], - "main": "dist/index.cjs", - "module": "dist/index.mjs", - "typings": "dist/index.d.ts", + "main": "lib/cjs/index.js", + "module": "lib/esm/index.js", + "typings": "lib/types/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" + "types": "./lib/types/index.d.ts", + "import": "./lib/esm/index.js", + "require": "./lib/cjs/index.js" }, "./transform": { - "types": "./dist/transform.d.ts", - "import": "./dist/transform.mjs", - "require": "./dist/transform.cjs" + "types": "./lib/types/transform.d.ts", + "import": "./lib/esm/transform.js", + "require": "./lib/cjs/transform.js" } }, "author": { @@ -40,14 +40,15 @@ }, "homepage": "https://github.com/relative-ci/rollup-plugin-webpack-stats/blob/master/#readme", "files": [ - "dist" + "lib" ], "engines": { "node": ">=18" }, "scripts": { - "prebuild": "rimraf ./dist", - "build": "tsc && rollup -c rollup.config.mjs", + "build": "npm run clean && rollup -c && npm run build-package-type", + "build-package-type": "echo '{\"type\":\"module\"}' > lib/esm/package.json", + "clean": "rimraf ./lib", "lint": "exit 0", "test:unit": "vitest test/unit", "test:package": "npm run test:package:rollup && npm run test:package:vite", @@ -69,6 +70,8 @@ }, "devDependencies": { "@release-it/conventional-changelog": "10.0.1", + "@rollup/plugin-commonjs": "28.0.6", + "@rollup/plugin-node-resolve": "16.0.1", "@rollup/plugin-typescript": "12.1.4", "@tsconfig/node18": "18.2.4", "@types/node": "24.3.0", @@ -78,6 +81,7 @@ "release-it": "19.0.4", "rimraf": "6.0.1", "rollup": "4.46.4", + "rollup-plugin-node-externals": "8.1.0", "tslib": "2.8.1", "typescript": "5.9.2", "vitest": "3.2.4" @@ -86,9 +90,9 @@ "rollup-plugin-stats": "1.5.0" }, "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "rolldown": "^1.0.0-beta.0", "rollup": "^3.0.0 || ^4.0.0", - "rolldown": "^1.0.0-beta.0" + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { "vite": { diff --git a/rollup.config.mjs b/rollup.config.mjs index 91d07488..ac360025 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,36 +1,65 @@ +import path from 'node:path'; import { defineConfig } from 'rollup'; -import typescript from '@rollup/plugin-typescript'; +import commonjsPlugin from '@rollup/plugin-commonjs'; +import nodeResolvePlugin from '@rollup/plugin-node-resolve'; +import typescriptPlugin from '@rollup/plugin-typescript'; + +const CONTEXT = path.join(import.meta.dirname, './src'); const INPUT = { 'index': './src/index.ts', 'transform': './src/transform.ts', }; -const OUTPUT_DIR = 'dist'; +const OUTPUT_DIR = 'lib'; export default defineConfig([ { + context: CONTEXT, input: INPUT, output: { dir: OUTPUT_DIR, - format: 'esm', - entryFileNames: '[name].mjs', - chunkFileNames: 'chunks/[name].mjs', + format: 'cjs', + entryFileNames: 'cjs/[name].js', sourcemap: true, + preserveModules: true, + preserveModulesRoot: CONTEXT, + interop: 'auto', }, - plugins: [typescript({ tsconfig: './tsconfig.json' })], - external: ['crypto', 'path'], + external: /node_modules/, + plugins: [ + nodeResolvePlugin({ + extensions: ['.js', '.cjs', '.json'], + }), + commonjsPlugin({ + defaultIsModuleExports: 'auto', + }), + typescriptPlugin({ + tsconfig: './tsconfig.cjs.json', + }), + ], }, { + context: CONTEXT, input: INPUT, output: { dir: OUTPUT_DIR, - format: 'commonjs', - entryFileNames: '[name].cjs', - chunkFileNames: 'chunks/[name].cjs', + format: 'esm', + entryFileNames: 'esm/[name].js', sourcemap: true, + preserveModules: true, + preserveModulesRoot: CONTEXT, + interop: 'auto', }, - plugins: [typescript({ tsconfig: './tsconfig.json' })], - external: ['crypto', 'path'], + external: /node_modules/, + plugins: [ + nodeResolvePlugin({ + extensions: ['.js', '.mjs', '.cjs', '.json'], + }), + commonjsPlugin(), + typescriptPlugin({ + tsconfig: './tsconfig.esm.json', + }), + ], }, ]); diff --git a/test/package/rollup/package.json b/test/package/rollup/package.json index b4815b71..d143ab58 100644 --- a/test/package/rollup/package.json +++ b/test/package/rollup/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-typescript": "^12.1.4", "cross-env": "^7.0.0", "rollup": "^4.9.1", - "rollup-plugin-webpack-stats": "*", + "rollup-plugin-webpack-stats": "file://../../../", "typescript": "^5.9.2" } } diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..fd640287 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,30 @@ +{ + "extends": "@tsconfig/node18/tsconfig.json", + "compilerOptions": { + /* dirs */ + "rootDir": "./src", + "declarationDir": "./lib/types", + "types": ["node"], + /* module config */ + "target": "es2020", + "lib": ["es2020", "es2022.error"], + "resolveJsonModule": true, + "esModuleInterop": true, + /* behaviour options */ + "strict": true, + "allowJs": true, + "allowSyntheticDefaultImports": true, + "noFallthroughCasesInSwitch": true, + "declaration": true, + "sourceMap": true, + "noImplicitReturns": true, + "noImplicitOverride": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true + }, + "include": ["src"], + "exclude": ["node_modules", "lib"] +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 00000000..81d76ce7 --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "outDir": "./lib/cjs" + } +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..5d7d443f --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "outDir": "./lib/esm" + } +} diff --git a/tsconfig.json b/tsconfig.json index 8d0176a3..2b7c8c9f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,33 +1,20 @@ { - "extends": "@tsconfig/node18/tsconfig.json", - // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs - "include": ["src", "types"], "compilerOptions": { - // output .d.ts declaration files for consumers - "declaration": true, - "declarationDir": "dist", - // output .js.map sourcemap files for consumers - "sourceMap": true, - // match output dir to input dir. e.g. dist/index instead of dist/src/index - "rootDir": "./src", - // stricter type-checking for stronger correctness. Recommended by TS - "strict": true, - // linter checks for common issues - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative - "noUnusedLocals": true, - "noUnusedParameters": true, - // use Node's module resolution algorithm, instead of the legacy TS one - "moduleResolution": "bundler", - "module": "esnext", - // interop between ESM and CJS modules. Recommended by TS + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "node", + "allowJs": true, "esModuleInterop": true, - // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS + "resolveJsonModule": true, + "declaration": false, + "noEmit": true, "skipLibCheck": true, - // error out if import and file system have a casing mismatch. Recommended by TS - "forceConsistentCasingInFileNames": true, - // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` - "noEmit": true + "types": ["node"], + "lib": ["es2020", "es2022.error"] + }, + "ts-node": { + "compilerOptions": { + "module": "CommonJS" + } } } From 125fa5f78efaf7fd7d56c56d7ec3f67356058791 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Tue, 2 Sep 2025 22:50:20 +0200 Subject: [PATCH 08/10] chore: Bump rollup-plugin-stats to v1.5.1 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff5f73d5..6c18913b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.1.4", "license": "MIT", "dependencies": { - "rollup-plugin-stats": "1.5.0" + "rollup-plugin-stats": "1.5.1-beta.3" }, "devDependencies": { "@release-it/conventional-changelog": "10.0.1", @@ -4811,9 +4811,9 @@ } }, "node_modules/rollup-plugin-stats": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-stats/-/rollup-plugin-stats-1.5.0.tgz", - "integrity": "sha512-TsWaV7ulwPA9JhqGJemrDJkvXNeNQb60lB13gIcT2kVDXlBM/PQD3GqVyhCJpvn43Y4YT5+VmWDRsbIAbuilBA==", + "version": "1.5.1-beta.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-stats/-/rollup-plugin-stats-1.5.1-beta.3.tgz", + "integrity": "sha512-lRX0oUgrsLCUZDwyuLAYz11qpbtb5WQgyKVToGwniaN2onNrlamqL5N+fIrIK6mmJUngXcX8xz+0qlG78c4UbQ==", "license": "MIT", "engines": { "node": ">=18" diff --git a/package.json b/package.json index e2778144..a77bcbef 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "vitest": "3.2.4" }, "dependencies": { - "rollup-plugin-stats": "1.5.0" + "rollup-plugin-stats": "1.5.1-beta.3" }, "peerDependencies": { "rolldown": "^1.0.0-beta.0", From 42e546e7779fb3ee2a0d80a8446e85cbdcb6f06b Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Tue, 2 Sep 2025 23:13:12 +0200 Subject: [PATCH 09/10] build: Update tsconfig --- rollup.config.mjs | 4 ++-- tsconfig.esm.json | 6 ------ tsconfig.json | 23 +++++++++++++--------- tsconfig.cjs.json => tsconfig.lib-cjs.json | 2 +- tsconfig.lib-esm.json | 8 ++++++++ tsconfig.base.json => tsconfig.lib.json | 4 ++-- 6 files changed, 27 insertions(+), 20 deletions(-) delete mode 100644 tsconfig.esm.json rename tsconfig.cjs.json => tsconfig.lib-cjs.json (60%) create mode 100644 tsconfig.lib-esm.json rename tsconfig.base.json => tsconfig.lib.json (92%) diff --git a/rollup.config.mjs b/rollup.config.mjs index ac360025..42bc6db5 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -35,7 +35,7 @@ export default defineConfig([ defaultIsModuleExports: 'auto', }), typescriptPlugin({ - tsconfig: './tsconfig.cjs.json', + tsconfig: './tsconfig.lib-cjs.json', }), ], }, @@ -58,7 +58,7 @@ export default defineConfig([ }), commonjsPlugin(), typescriptPlugin({ - tsconfig: './tsconfig.esm.json', + tsconfig: './tsconfig.lib-esm.json', }), ], }, diff --git a/tsconfig.esm.json b/tsconfig.esm.json deleted file mode 100644 index 5d7d443f..00000000 --- a/tsconfig.esm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "outDir": "./lib/esm" - } -} diff --git a/tsconfig.json b/tsconfig.json index 2b7c8c9f..f180f474 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,20 +1,25 @@ { "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "node", - "allowJs": true, - "esModuleInterop": true, + /* dirs */ + "rootDir": ".", + "types": ["node"], + /* module config */ + "target": "esnext", + "lib": ["es2020", "es2022.error"], + "module": "nodenext", + "moduleResolution": "NodeNext", "resolveJsonModule": true, - "declaration": false, + "esModuleInterop": true, + /* behaviour options */ + "allowJs": true, "noEmit": true, "skipLibCheck": true, - "types": ["node"], - "lib": ["es2020", "es2022.error"] + "strict": true }, "ts-node": { "compilerOptions": { "module": "CommonJS" } - } + }, + "exclude": ["node_modules", "lib", "dist"] } diff --git a/tsconfig.cjs.json b/tsconfig.lib-cjs.json similarity index 60% rename from tsconfig.cjs.json rename to tsconfig.lib-cjs.json index 81d76ce7..24de2d1b 100644 --- a/tsconfig.cjs.json +++ b/tsconfig.lib-cjs.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.base.json", + "extends": "./tsconfig.lib.json", "compilerOptions": { "outDir": "./lib/cjs" } diff --git a/tsconfig.lib-esm.json b/tsconfig.lib-esm.json new file mode 100644 index 00000000..8308689d --- /dev/null +++ b/tsconfig.lib-esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "outDir": "./lib/esm", + "declarationDir": "./lib/types", + "declaration": true + } +} diff --git a/tsconfig.base.json b/tsconfig.lib.json similarity index 92% rename from tsconfig.base.json rename to tsconfig.lib.json index fd640287..a4bf9773 100644 --- a/tsconfig.base.json +++ b/tsconfig.lib.json @@ -3,11 +3,12 @@ "compilerOptions": { /* dirs */ "rootDir": "./src", - "declarationDir": "./lib/types", "types": ["node"], /* module config */ "target": "es2020", "lib": ["es2020", "es2022.error"], + "module": "ESNext", + "moduleResolution": "bundler", "resolveJsonModule": true, "esModuleInterop": true, /* behaviour options */ @@ -15,7 +16,6 @@ "allowJs": true, "allowSyntheticDefaultImports": true, "noFallthroughCasesInSwitch": true, - "declaration": true, "sourceMap": true, "noImplicitReturns": true, "noImplicitOverride": true, From 9f4b79db272c62e4e3bccd861103669ff136cbc0 Mon Sep 17 00:00:00 2001 From: Viorel Cojocaru Date: Wed, 3 Sep 2025 00:14:12 +0200 Subject: [PATCH 10/10] DROP - release 2.1.5-beta.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6c18913b..ed3c9d60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup-plugin-webpack-stats", - "version": "2.1.4", + "version": "2.1.5-beta.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup-plugin-webpack-stats", - "version": "2.1.4", + "version": "2.1.5-beta.5", "license": "MIT", "dependencies": { "rollup-plugin-stats": "1.5.1-beta.3" diff --git a/package.json b/package.json index a77bcbef..cde2ff01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup-plugin-webpack-stats", - "version": "2.1.4", + "version": "2.1.5-beta.5", "private": false, "license": "MIT", "keywords": [