From d110136889c66ac8800b562270d06d2d1648b60e Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Tue, 20 Jan 2026 10:21:09 -0500 Subject: [PATCH 1/6] chore: switch to rolldown --- .../ContextLines/noAddedLines/test.ts | 5 +- .../moduleMetadata/appliesMetadata/test.ts | 6 +- .../appliesMetadataWithRewriteFrames/test.ts | 6 +- .../nextjs-15-t3/next.config.js | 6 +- .../nextjs-15-t3/package.json | 1 - .../nextjs-orpc/next.config.js | 4 +- .../nextjs-orpc/package.json | 1 - .../sveltekit-2/vite.config.js | 5 + .../node-core-integration-tests/package.json | 2 +- .../node-integration-tests/package.json | 2 +- dev-packages/rollup-utils/bundleHelpers.mjs | 63 ++-- dev-packages/rollup-utils/index.mjs | 7 +- dev-packages/rollup-utils/npmHelpers.mjs | 55 ++- .../rollup-utils/plugins/bundlePlugins.mjs | 199 +++++----- .../rollup-utils/plugins/make-esm-plugin.mjs | 7 +- .../rollup-utils/plugins/npmPlugins.mjs | 102 ++---- .../plugins/vendor/sucrase-plugin.mjs | 79 ---- dev-packages/rollup-utils/utils.mjs | 30 +- dev-packages/test-utils/package.json | 2 +- package.json | 15 +- packages/astro/package.json | 4 +- packages/aws-serverless/package.json | 6 +- .../scripts/buildLambdaLayer.ts | 4 +- packages/browser-utils/package.json | 4 +- packages/browser/package.json | 8 +- packages/browser/src/sdk.ts | 6 +- packages/bun/package.json | 4 +- packages/cloudflare/package.json | 4 +- packages/core/package.json | 4 +- packages/core/rollup.npm.config.mjs | 12 +- packages/core/src/utils/env.ts | 2 +- packages/deno/package.json | 2 +- packages/eslint-config-sdk/src/base.js | 2 + packages/feedback/package.json | 4 +- packages/feedback/rollup.bundle.config.mjs | 26 +- packages/feedback/rollup.npm.config.mjs | 7 - packages/gatsby/package.json | 4 +- packages/google-cloud-serverless/package.json | 4 +- packages/integration-shims/package.json | 2 +- packages/nestjs/package.json | 4 +- packages/nextjs/rollup.npm.config.mjs | 40 +- packages/nextjs/scripts/buildRollup.ts | 2 +- .../templates/routeHandlerWrapperTemplate.ts | 4 +- .../templates/sentryInitWrapperTemplate.ts | 7 +- .../nextjs/test/config/wrappingLoader.test.ts | 15 +- packages/node-core/package.json | 4 +- packages/node-core/rollup.npm.config.mjs | 47 ++- packages/node-native/package.json | 4 +- packages/node/package.json | 4 +- packages/nuxt/package.json | 4 +- packages/opentelemetry/package.json | 4 +- packages/profiling-node/package.json | 4 +- packages/react-router/package.json | 4 +- packages/react-router/rollup.npm.config.mjs | 6 - packages/react/package.json | 4 +- packages/react/rollup.npm.config.mjs | 6 - packages/remix/package.json | 12 +- packages/remix/rollup.npm.config.mjs | 6 - packages/remix/src/server/instrumentServer.ts | 31 +- .../remix/src/server/patchServerRuntime.ts | 46 +++ packages/remix/src/server/sdk.ts | 2 +- packages/remix/test/config/vite.test.ts | 24 +- .../test/integration/instrument.server.mjs | 28 ++ .../integration/test/server/utils/helpers.ts | 209 +++++++---- packages/replay-canvas/package.json | 4 +- packages/replay-internal/package.json | 4 +- .../replay-internal/rollup.npm.config.mjs | 8 +- packages/replay-worker/package.json | 4 +- .../replay-worker/rollup.examples.config.mjs | 33 +- .../replay-worker/rollup.worker.config.mjs | 54 +-- packages/replay-worker/tsconfig.build.json | 11 + packages/replay-worker/tsconfig.json | 5 +- packages/solid/package.json | 4 +- packages/solidstart/package.json | 4 +- packages/svelte/package.json | 4 +- packages/sveltekit/package.json | 4 +- packages/tanstackstart-react/package.json | 2 +- packages/tanstackstart/package.json | 2 +- packages/types/package.json | 4 +- packages/vercel-edge/package.json | 4 +- packages/vercel-edge/rollup.npm.config.mjs | 16 +- packages/vue/package.json | 4 +- packages/wasm/package.json | 8 +- yarn.lock | 343 ++++++++---------- 84 files changed, 861 insertions(+), 888 deletions(-) delete mode 100644 dev-packages/rollup-utils/plugins/vendor/sucrase-plugin.mjs create mode 100644 packages/remix/src/server/patchServerRuntime.ts create mode 100644 packages/replay-worker/tsconfig.build.json diff --git a/dev-packages/browser-integration-tests/suites/integrations/ContextLines/noAddedLines/test.ts b/dev-packages/browser-integration-tests/suites/integrations/ContextLines/noAddedLines/test.ts index 51e2a7ee7517..880c5ff0e8b4 100644 --- a/dev-packages/browser-integration-tests/suites/integrations/ContextLines/noAddedLines/test.ts +++ b/dev-packages/browser-integration-tests/suites/integrations/ContextLines/noAddedLines/test.ts @@ -16,7 +16,10 @@ sentryTest('should not add source context lines to errors from script files', as const exception = eventData.exception?.values?.[0]; const frames = exception?.stacktrace?.frames; - expect(frames).toHaveLength(1); + expect(frames?.length).toBeGreaterThanOrEqual(1); + // Verify the subject.bundle.js frame is present + expect(frames?.some(f => f.filename?.includes('subject.bundle.js'))).toBe(true); + // Core assertion: no context lines should be added for script files frames?.forEach(f => { expect(f).not.toHaveProperty('pre_context'); expect(f).not.toHaveProperty('context_line'); diff --git a/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadata/test.ts b/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadata/test.ts index 35a0cffeb13c..697da77aa512 100644 --- a/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadata/test.ts +++ b/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadata/test.ts @@ -7,5 +7,9 @@ sentryTest('should provide module_metadata on stack frames in beforeSend', async const url = await getLocalTestUrl({ testDir: __dirname }); const errorEvent = await getFirstSentryEnvelopeRequest(page, url); - expect(errorEvent.extra?.['module_metadata_entries']).toEqual([{ foo: 'bar' }]); + // Filter out null entries from internal Sentry frames that don't have module metadata + const metadataEntries = (errorEvent.extra?.['module_metadata_entries'] as Array)?.filter( + entry => entry !== null, + ); + expect(metadataEntries).toEqual([{ foo: 'bar' }]); }); diff --git a/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadataWithRewriteFrames/test.ts b/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadataWithRewriteFrames/test.ts index 296e76c219c5..41634d3edc63 100644 --- a/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadataWithRewriteFrames/test.ts +++ b/dev-packages/browser-integration-tests/suites/integrations/moduleMetadata/appliesMetadataWithRewriteFrames/test.ts @@ -9,6 +9,10 @@ sentryTest( const url = await getLocalTestUrl({ testDir: __dirname }); const errorEvent = await getFirstSentryEnvelopeRequest(page, url); - expect(errorEvent?.extra?.['module_metadata_entries']).toEqual([{ foo: 'baz' }]); + // Filter out null entries from internal Sentry frames that don't have module metadata + const metadataEntries = (errorEvent?.extra?.['module_metadata_entries'] as Array)?.filter( + entry => entry !== null, + ); + expect(metadataEntries).toEqual([{ foo: 'baz' }]); }, ); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15-t3/next.config.js b/dev-packages/e2e-tests/test-applications/nextjs-15-t3/next.config.js index b22141b67893..9209b1480ec0 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15-t3/next.config.js +++ b/dev-packages/e2e-tests/test-applications/nextjs-15-t3/next.config.js @@ -1,11 +1,11 @@ -await import('./src/env.js'); +require('./src/env.js'); /** @type {import("next").NextConfig} */ const config = {}; -import { withSentryConfig } from '@sentry/nextjs'; +const { withSentryConfig } = require('@sentry/nextjs'); -export default withSentryConfig(config, { +module.exports = withSentryConfig(config, { disableLogger: true, silent: true, }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15-t3/package.json b/dev-packages/e2e-tests/test-applications/nextjs-15-t3/package.json index b3cf747a0866..939efa0cbfc2 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15-t3/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-15-t3/package.json @@ -2,7 +2,6 @@ "name": "t3", "version": "0.1.0", "private": true, - "type": "module", "scripts": { "build": "next build", "clean": "npx rimraf node_modules pnpm-lock.yaml", diff --git a/dev-packages/e2e-tests/test-applications/nextjs-orpc/next.config.js b/dev-packages/e2e-tests/test-applications/nextjs-orpc/next.config.js index ade813b1cde3..c2c5f470b3a3 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-orpc/next.config.js +++ b/dev-packages/e2e-tests/test-applications/nextjs-orpc/next.config.js @@ -1,8 +1,8 @@ /** @type {import("next").NextConfig} */ const config = {}; -import { withSentryConfig } from '@sentry/nextjs'; +const { withSentryConfig } = require('@sentry/nextjs'); -export default withSentryConfig(config, { +module.exports = withSentryConfig(config, { disableLogger: true, }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-orpc/package.json b/dev-packages/e2e-tests/test-applications/nextjs-orpc/package.json index 7e32f562916a..ec0d324b5ab6 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-orpc/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-orpc/package.json @@ -2,7 +2,6 @@ "name": "next-orpc", "version": "0.1.0", "private": true, - "type": "module", "scripts": { "build": "next build", "dev": "next dev -p 3030", diff --git a/dev-packages/e2e-tests/test-applications/sveltekit-2/vite.config.js b/dev-packages/e2e-tests/test-applications/sveltekit-2/vite.config.js index 1a410bee7e11..4b361e3eabbf 100644 --- a/dev-packages/e2e-tests/test-applications/sveltekit-2/vite.config.js +++ b/dev-packages/e2e-tests/test-applications/sveltekit-2/vite.config.js @@ -9,4 +9,9 @@ export default defineConfig({ }), sveltekit(), ], + build: { + rollupOptions: { + external: ['fsevents'], + }, + }, }); diff --git a/dev-packages/node-core-integration-tests/package.json b/dev-packages/node-core-integration-tests/package.json index 82ec182686ee..9a36e313190e 100644 --- a/dev-packages/node-core-integration-tests/package.json +++ b/dev-packages/node-core-integration-tests/package.json @@ -12,7 +12,7 @@ "scripts": { "build": "run-s build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "clean": "rimraf -g **/node_modules && run-p clean:script", "clean:script": "node scripts/clean.js", diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 5dc6e4718394..0138759ee616 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -12,7 +12,7 @@ "scripts": { "build": "run-s build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "clean": "rimraf -g suites/**/node_modules suites/**/tmp_* && run-p clean:script", "clean:script": "node scripts/clean.js", diff --git a/dev-packages/rollup-utils/bundleHelpers.mjs b/dev-packages/rollup-utils/bundleHelpers.mjs index 8dd2ebd21999..005614f08b5b 100644 --- a/dev-packages/rollup-utils/bundleHelpers.mjs +++ b/dev-packages/rollup-utils/bundleHelpers.mjs @@ -3,48 +3,38 @@ */ import { builtinModules } from 'module'; - +import path from 'node:path'; +import fs from 'node:fs'; import deepMerge from 'deepmerge'; import { makeBrowserBuildPlugin, - makeCleanupPlugin, - makeCommonJSPlugin, makeIsDebugBuildPlugin, - makeLicensePlugin, - makeNodeResolvePlugin, makeRrwebBuildPlugin, makeSetSDKSourcePlugin, - makeSucrasePlugin, - makeTerserPlugin, + makeBannerOptions, + makeMinifierOptions, } from './plugins/index.mjs'; -import { mergePlugins } from './utils.mjs'; -import { makeProductionReplacePlugin } from './plugins/npmPlugins.mjs'; +import { mergePlugins, treeShakePreset } from './utils.mjs'; const BUNDLE_VARIANTS = ['.js', '.min.js', '.debug.min.js']; +const packageDotJSON = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), './package.json'), { encoding: 'utf8' })); + export function makeBaseBundleConfig(options) { - const { bundleType, entrypoints, licenseTitle, outputFileBase, packageSpecificConfig, sucrase } = options; + const { bundleType, entrypoints, licenseTitle, outputFileBase, packageSpecificConfig } = options; - const nodeResolvePlugin = makeNodeResolvePlugin(); - const sucrasePlugin = makeSucrasePlugin({}, sucrase); - const cleanupPlugin = makeCleanupPlugin(); const markAsBrowserBuildPlugin = makeBrowserBuildPlugin(true); - const licensePlugin = makeLicensePlugin(licenseTitle); + const banner = makeBannerOptions(licenseTitle, packageDotJSON.version); const rrwebBuildPlugin = makeRrwebBuildPlugin({ excludeIframe: false, excludeShadowDom: false, }); - const productionReplacePlugin = makeProductionReplacePlugin(); - - // The `commonjs` plugin is the `esModuleInterop` of the bundling world. When used with `transformMixedEsModules`, it - // will include all dependencies, imported or required, in the final bundle. (Without it, CJS modules aren't included - // at all, and without `transformMixedEsModules`, they're only included if they're imported, not if they're required.) - const commonJSPlugin = makeCommonJSPlugin({ transformMixedEsModules: true }); // used by `@sentry/browser` const standAloneBundleConfig = { output: { + banner, format: 'iife', name: 'Sentry', intro: () => { @@ -52,7 +42,7 @@ export function makeBaseBundleConfig(options) { }, }, context: 'window', - plugins: [rrwebBuildPlugin, markAsBrowserBuildPlugin, licensePlugin], + plugins: [rrwebBuildPlugin, markAsBrowserBuildPlugin], }; // used by `@sentry/wasm` & pluggable integrations from core/browser (bundles which need to be combined with a stand-alone SDK bundle) @@ -63,7 +53,7 @@ export function makeBaseBundleConfig(options) { format: 'cjs', // code to add before the CJS wrapper - banner: '(function (__window) {', + banner: `${banner}\n(function (__window) {`, // code to add just inside the CJS wrapper, before any of the wrapped code intro: 'var exports = {};', @@ -86,14 +76,15 @@ export function makeBaseBundleConfig(options) { // code to add after the CJS wrapper footer: '}(window));', }, - plugins: [rrwebBuildPlugin, markAsBrowserBuildPlugin, licensePlugin], + plugins: [rrwebBuildPlugin, markAsBrowserBuildPlugin], }; const workerBundleConfig = { output: { + banner, format: 'esm', + minify: makeMinifierOptions(), }, - plugins: [commonJSPlugin, makeTerserPlugin(), licensePlugin], // Don't bundle any of Node's core modules external: builtinModules, }; @@ -101,8 +92,9 @@ export function makeBaseBundleConfig(options) { const awsLambdaExtensionBundleConfig = { output: { format: 'esm', + minify: makeMinifierOptions(), }, - plugins: [commonJSPlugin, makeIsDebugBuildPlugin(true), makeTerserPlugin()], + plugins: [makeIsDebugBuildPlugin(true)], // Don't bundle any of Node's core modules external: builtinModules, }; @@ -110,16 +102,22 @@ export function makeBaseBundleConfig(options) { // used by all bundles const sharedBundleConfig = { input: entrypoints, + // Point to the package's tsconfig.json so rolldown respects TypeScript & JSX settings + tsconfig: path.resolve(process.cwd(), './tsconfig.json'), + + // Enforce ES2020 target for all builds + transform: { + target: 'es2020', + }, + output: { // a file extension will be added to this base value when we specify either a minified or non-minified build entryFileNames: outputFileBase, dir: 'build', sourcemap: true, - strict: false, esModule: false, }, - plugins: [productionReplacePlugin, sucrasePlugin, nodeResolvePlugin, cleanupPlugin], - treeshake: 'smallest', + treeshake: treeShakePreset('smallest'), }; const bundleTypeConfigMap = { @@ -149,7 +147,7 @@ export function makeBundleConfigVariants(baseConfig, options = {}) { const includeDebuggingPlugin = makeIsDebugBuildPlugin(true); const stripDebuggingPlugin = makeIsDebugBuildPlugin(false); - const terserPlugin = makeTerserPlugin(); + const minifierOptions = makeMinifierOptions(); const setSdkSourcePlugin = makeSetSDKSourcePlugin('cdn'); // The additional options to use for each variant we're going to create. @@ -164,15 +162,17 @@ export function makeBundleConfigVariants(baseConfig, options = {}) { '.min.js': { output: { entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.min.js`, + minify: minifierOptions, }, - plugins: [stripDebuggingPlugin, setSdkSourcePlugin, terserPlugin], + plugins: [stripDebuggingPlugin, setSdkSourcePlugin], }, '.debug.min.js': { output: { entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.debug.min.js`, + minify: minifierOptions, }, - plugins: [includeDebuggingPlugin, setSdkSourcePlugin, terserPlugin], + plugins: [includeDebuggingPlugin, setSdkSourcePlugin], }, }; @@ -180,6 +180,7 @@ export function makeBundleConfigVariants(baseConfig, options = {}) { if (!BUNDLE_VARIANTS.includes(variant)) { throw new Error(`Unknown bundle variant requested: ${variant}`); } + return deepMerge(baseConfig, variantSpecificConfigMap[variant], { // Merge the plugin arrays and make sure the end result is in the correct order. Everything else can use the // default merge strategy. diff --git a/dev-packages/rollup-utils/index.mjs b/dev-packages/rollup-utils/index.mjs index 2d8c9a2150bc..98527fc5ef30 100644 --- a/dev-packages/rollup-utils/index.mjs +++ b/dev-packages/rollup-utils/index.mjs @@ -1,7 +1,4 @@ -// TODO Is this necessary? -import * as plugins from './plugins/index.mjs'; -export { plugins }; - +export * from './plugins/index.mjs'; export * from './bundleHelpers.mjs'; export * from './npmHelpers.mjs'; -export { insertAt } from './utils.mjs'; +export { insertAt, treeShakePreset } from './utils.mjs'; diff --git a/dev-packages/rollup-utils/npmHelpers.mjs b/dev-packages/rollup-utils/npmHelpers.mjs index d5f7428b992d..02a521d86926 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -8,17 +8,12 @@ import * as fs from 'fs'; import { builtinModules } from 'module'; import * as path from 'path'; import { fileURLToPath } from 'url'; - import deepMerge from 'deepmerge'; - -import { defineConfig } from 'rollup'; +import { defineConfig } from 'rolldown'; import { - makeCleanupPlugin, makeDebugBuildStatementReplacePlugin, - makeNodeResolvePlugin, makeProductionReplacePlugin, makeRrwebBuildPlugin, - makeSucrasePlugin, } from './plugins/index.mjs'; import { makePackageNodeEsm } from './plugins/make-esm-plugin.mjs'; import { mergePlugins } from './utils.mjs'; @@ -34,22 +29,32 @@ export function makeBaseNPMConfig(options = {}) { entrypoints = ['src/index.ts'], hasBundles = false, packageSpecificConfig = {}, - sucrase = {}, bundledBuiltins = [], } = options; - const nodeResolvePlugin = makeNodeResolvePlugin(); - const sucrasePlugin = makeSucrasePlugin({}, sucrase); + // Make sure subpath imports are also treated as external (e.g., 'solid-js/web' when 'solid-js' is external) + const externalWithSubpaths = [ + ...Object.keys(packageDotJSON.dependencies || {}), + ...Object.keys(packageDotJSON.peerDependencies || {}), + ...Object.keys(packageDotJSON.optionalDependencies || {}), + ].map(dep => new RegExp(`^${dep}(?:/.*)?$`)); + const debugBuildStatementReplacePlugin = makeDebugBuildStatementReplacePlugin(); - const cleanupPlugin = makeCleanupPlugin(); const rrwebBuildPlugin = makeRrwebBuildPlugin({ excludeShadowDom: undefined, excludeIframe: undefined, }); - const defaultBaseConfig = { + const defaultBaseConfig = defineConfig({ input: entrypoints, + // Point to the package's tsconfig.json so rolldown respects TypeScript & JSX settings + tsconfig: path.resolve(process.cwd(), './tsconfig.json'), + + checks: { + pluginTimings: true, + }, + output: { // an appropriately-named directory will be added to this base value when we specify either a cjs or esm build dir: hasBundles ? 'build/npm' : 'build', @@ -62,14 +67,14 @@ export function makeBaseNPMConfig(options = {}) { // output individual files rather than one big bundle preserveModules: true, + // output files relative to the src directory + preserveModulesRoot: 'src', + // Allow wrappers or helper functions generated by rollup to use any ES2015 features generatedCode: { preset: 'es2015', }, - // don't add `"use strict"` to the top of cjs files - strict: false, - // do TS-3.8-style exports // exports.dogs = are.great // rather than TS-3.9-style exports @@ -78,12 +83,6 @@ export function makeBaseNPMConfig(options = {}) { // get: () => are.great, // }); externalLiveBindings: false, - - // Don't call `Object.freeze` on the results of `import * as someModule from '...'` - // (We don't need it, so why waste the bytes?) - freeze: false, - - interop: 'esModule', }, treeshake: { @@ -97,16 +96,16 @@ export function makeBaseNPMConfig(options = {}) { }, }, - plugins: [nodeResolvePlugin, sucrasePlugin, debugBuildStatementReplacePlugin, rrwebBuildPlugin, cleanupPlugin], + // Enforce ES2020 target for all builds + transform: { + target: 'es2020', + }, + + plugins: [debugBuildStatementReplacePlugin, rrwebBuildPlugin], // don't include imported modules from outside the package in the final output - external: [ - ...builtinModules.filter(m => !bundledBuiltins.includes(m)), - ...Object.keys(packageDotJSON.dependencies || {}), - ...Object.keys(packageDotJSON.peerDependencies || {}), - ...Object.keys(packageDotJSON.optionalDependencies || {}), - ], - }; + external: [...builtinModules.filter(m => !bundledBuiltins.includes(m)), ...externalWithSubpaths], + }); return deepMerge(defaultBaseConfig, packageSpecificConfig, { // Plugins have to be in the correct order or everything breaks, so when merging we have to manually re-order them diff --git a/dev-packages/rollup-utils/plugins/bundlePlugins.mjs b/dev-packages/rollup-utils/plugins/bundlePlugins.mjs index 9d6edd3157c0..7ace3c653e9a 100644 --- a/dev-packages/rollup-utils/plugins/bundlePlugins.mjs +++ b/dev-packages/rollup-utils/plugins/bundlePlugins.mjs @@ -1,73 +1,51 @@ -/** - * CommonJS plugin docs: https://github.com/rollup/plugins/tree/master/packages/commonjs - * License plugin docs: https://github.com/mjeanroy/rollup-plugin-license - * Replace plugin docs: https://github.com/rollup/plugins/tree/master/packages/replace - * Resolve plugin docs: https://github.com/rollup/plugins/tree/master/packages/node-resolve - * Terser plugin docs: https://github.com/TrySound/rollup-plugin-terser#options - * Terser docs: https://github.com/terser/terser#api-reference - * Typescript plugin docs: https://github.com/rollup/plugins/tree/master/packages/typescript/#readme - */ - import * as childProcess from 'child_process'; - -import commonjs from '@rollup/plugin-commonjs'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import replace from '@rollup/plugin-replace'; -import terser from '@rollup/plugin-terser'; -import license from 'rollup-plugin-license'; +import { replacePlugin } from 'rolldown/plugins'; /** * Create a plugin to add an identification banner to the top of stand-alone bundles. * * @param title The title to use for the SDK, if not the package name - * @returns An instance of the `rollup-plugin-license` plugin + * @param version The version of the SDK */ -export function makeLicensePlugin(title) { +export function makeBannerOptions(title, version) { const commitHash = childProcess.execSync('git rev-parse --short HEAD', { encoding: 'utf-8' }).trim(); - const plugin = license({ - banner: { - content: `/*! <%= data.title %> <%= pkg.version %> (${commitHash}) | https://github.com/getsentry/sentry-javascript */`, - data: { title }, - }, - }); - - // give it a nicer name for later, when we'll need to sort the plugins - plugin.name = 'license'; - - return plugin; + return `/*! ${title} ${version} (${commitHash}) | https://github.com/getsentry/sentry-javascript */`; } /** * Create a plugin to set the value of the `__SENTRY_DEBUG__` magic string. * * @param includeDebugging Whether or not the resulting build should include log statements - * @returns An instance of the `@rollup/plugin-replace` plugin to do the replacement of the magic string with `true` or + * @returns An instance of the `rolldown.replacePlugin` plugin to do the replacement of the magic string with `true` or * 'false` */ export function makeIsDebugBuildPlugin(includeDebugging) { - return replace({ - // TODO `preventAssignment` will default to true in version 5.x of the replace plugin, at which point we can get rid - // of this. (It actually makes no difference in this case whether it's true or false, since we never assign to - // `__SENTRY_DEBUG__`, but if we don't give it a value, it will spam with warnings.) - preventAssignment: true, - values: { + return replacePlugin( + { // Flags in current package - __DEBUG_BUILD__: includeDebugging, + __DEBUG_BUILD__: JSON.stringify(includeDebugging), // Flags in built monorepo dependencies, from which the bundle pulls - __SENTRY_DEBUG__: includeDebugging, + __SENTRY_DEBUG__: JSON.stringify(includeDebugging), + }, + { + // of this. (It actually makes no difference in this case whether it's true or false, since we never assign to + // `__SENTRY_DEBUG__`, but if we don't give it a value, it will spam with warnings.) + preventAssignment: true, }, - }); + ); } export function makeSetSDKSourcePlugin(sdkSource) { - return replace({ - preventAssignment: false, - delimiters: ['', ''], - values: { - '/* __SENTRY_SDK_SOURCE__ */': `return ${JSON.stringify(sdkSource)};`, + return replacePlugin( + { + '/*! __SENTRY_SDK_SOURCE__ */': `return ${JSON.stringify(sdkSource)};`, }, - }); + { + preventAssignment: false, + delimiters: ['', ''], + }, + ); } /** @@ -77,81 +55,72 @@ export function makeSetSDKSourcePlugin(sdkSource) { * @returns An instance of the `replace` plugin to do the replacement of the magic string with `true` or 'false` */ export function makeBrowserBuildPlugin(isBrowserBuild) { - return replace({ - // TODO This will be the default in the next version of the `replace` plugin - preventAssignment: true, - values: { - __SENTRY_BROWSER_BUNDLE__: isBrowserBuild, + return replacePlugin( + { + __SENTRY_BROWSER_BUNDLE__: JSON.stringify(!!isBrowserBuild), + // Replace process.env.NODE_ENV for browser bundles (needed for dependencies like Preact) + 'process.env.NODE_ENV': JSON.stringify('production'), + }, + { + preventAssignment: true, }, - }); + ); } -// `terser` options reference: https://github.com/terser/terser#api-reference -// `rollup-plugin-terser` options reference: https://github.com/TrySound/rollup-plugin-terser#options - /** - * Create a plugin to perform minification using `terser`. + * Create minifier options for the rollup build. * - * @returns An instance of the `terser` plugin + * @returns {import('rolldown').OutputOptions['minify']} */ -export function makeTerserPlugin() { - return terser({ - mangle: { - // `captureException` and `captureMessage` are public API methods and they don't need to be listed here, as the - // mangler won't touch user-facing things, but `sentryWrapped` is not user-facing, and would be mangled during - // minification. (We need it in its original form to correctly detect our internal frames for stripping.) All three - // are all listed here just for the clarity's sake, as they are all used in the frames manipulation process. - reserved: ['captureException', 'captureMessage', 'sentryWrapped'], - properties: { - // allow mangling of private field names... - regex: /^_[^_]/, - reserved: [ - // ...except for `_experiments`, which we want to remain usable from the outside - '_experiments', - // We want to keep some replay fields unmangled to enable integration tests to access them - '_replay', - '_canvas', - // We also can't mangle rrweb private fields when bundling rrweb in the replay CDN bundles - '_cssText', - // We want to keep the _integrations variable unmangled to send all installed integrations from replay - '_integrations', - // _meta is used to store metadata of replay network events - '_meta', - // We store SDK metadata in the options - '_metadata', - // Object we inject debug IDs into with bundler plugins - '_sentryDebugIds', - // These are used by instrument.ts in utils for identifying HTML elements & events - '_sentryCaptured', - '_sentryId', - // Keeps the frozen DSC on a Sentry Span - '_frozenDsc', - // These are used to keep span & scope relationships - '_sentryRootSpan', - '_sentryChildSpans', - '_sentrySpan', - '_sentryScope', - '_sentryIsolationScope', - // require-in-the-middle calls `Module._resolveFilename`. We cannot mangle this (AWS lambda layer bundle). - '_resolveFilename', - // Set on e.g. the shim feedbackIntegration to be able to detect it - '_isShim', - // This is used in metadata integration - '_sentryModuleMetadata', - ], - }, - }, - output: { - comments: false, - }, - }); -} +export function makeMinifierOptions() { + // FIXME: mangle properties options are not supported by rolldown yet, so we return true for now. + // We should remove this once rolldown supports these options. + // Keeping the original options for reference in case we want to add them back. + // For now, rolldown won't mangle properties, so it should be safe. + // https://github.com/oxc-project/oxc/issues/15375 + // `captureException` and `captureMessage` are public API methods and they don't need to be listed here, as the + // mangler won't touch user-facing things, but `sentryWrapped` is not user-facing, and would be mangled during + // minification. (We need it in its original form to correctly detect our internal frames for stripping.) All three + // are all listed here just for the clarity's sake, as they are all used in the frames manipulation process. + // reserved: ['captureException', 'captureMessage', 'sentryWrapped'], + // properties: { + // // allow mangling of private field names... + // regex: /^_[^_]/, + // reserved: [ + // // ...except for `_experiments`, which we want to remain usable from the outside + // '_experiments', + // // We want to keep some replay fields unmangled to enable integration tests to access them + // '_replay', + // '_canvas', + // // We also can't mangle rrweb private fields when bundling rrweb in the replay CDN bundles + // '_cssText', + // // We want to keep the _integrations variable unmangled to send all installed integrations from replay + // '_integrations', + // // _meta is used to store metadata of replay network events + // '_meta', + // // We store SDK metadata in the options + // '_metadata', + // // Object we inject debug IDs into with bundler plugins + // '_sentryDebugIds', + // // These are used by instrument.ts in utils for identifying HTML elements & events + // '_sentryCaptured', + // '_sentryId', + // // Keeps the frozen DSC on a Sentry Span + // '_frozenDsc', + // // These are used to keep span & scope relationships + // '_sentryRootSpan', + // '_sentryChildSpans', + // '_sentrySpan', + // '_sentryScope', + // '_sentryIsolationScope', + // // require-in-the-middle calls `Module._resolveFilename`. We cannot mangle this (AWS lambda layer bundle). + // '_resolveFilename', + // // Set on e.g. the shim feedbackIntegration to be able to detect it + // '_isShim', + // // This is used in metadata integration + // '_sentryModuleMetadata', + // ], + // }, -// We don't pass these plugins any options which need to be calculated or changed by us, so no need to wrap them in -// another factory function, as they are themselves already factory functions. - -export function makeNodeResolvePlugin() { - return nodeResolve(); + return true; } - -export { commonjs as makeCommonJSPlugin }; diff --git a/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs b/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs index ad18856c011a..908afc7cb157 100644 --- a/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs +++ b/dev-packages/rollup-utils/plugins/make-esm-plugin.mjs @@ -1,4 +1,5 @@ import fs from 'node:fs'; +import path from 'node:path'; /** * Outputs a package.json file with {type: module} in the root of the output directory so that Node @@ -11,9 +12,9 @@ export function makePackageNodeEsm() { // We need to keep the `sideEffects` value from the original package.json, // as e.g. webpack seems to depend on this // without this, tree shaking does not work as expected - const packageJSONPath = (await this.resolve('package.json')).id; - - const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8')); + const packageJSON = JSON.parse( + fs.readFileSync(path.resolve(process.cwd(), './package.json'), { encoding: 'utf8' }), + ); const sideEffects = packageJSON.sideEffects; // For module federation we need to keep the version of the package const version = packageJSON.version; diff --git a/dev-packages/rollup-utils/plugins/npmPlugins.mjs b/dev-packages/rollup-utils/plugins/npmPlugins.mjs index 3cb9ca7d50f9..f310db3d0950 100644 --- a/dev-packages/rollup-utils/plugins/npmPlugins.mjs +++ b/dev-packages/rollup-utils/plugins/npmPlugins.mjs @@ -1,46 +1,8 @@ /** - * Rollup plugin hooks docs: https://rollupjs.org/guide/en/#build-hooks and - * https://rollupjs.org/guide/en/#output-generation-hooks - * - * Cleanup plugin docs: https://github.com/aMarCruz/rollup-plugin-cleanup - * Replace plugin docs: https://github.com/rollup/plugins/tree/master/packages/replace - * Sucrase plugin docs: https://github.com/rollup/plugins/tree/master/packages/sucrase - */ - -import * as fs from 'fs'; -import * as path from 'path'; - -import json from '@rollup/plugin-json'; -import replace from '@rollup/plugin-replace'; -import cleanup from 'rollup-plugin-cleanup'; -import sucrase from './vendor/sucrase-plugin.mjs'; - -/** - * Create a plugin to transpile TS syntax using `sucrase`. - * - * @returns An instance of the `@rollup/plugin-sucrase` plugin + * Replace plugin docs: https://rolldown.rs/builtin-plugins/replace#replace-plugin */ -export function makeSucrasePlugin(options = {}, sucraseOptions = {}) { - return sucrase( - { - // Required for bundling OTEL code properly - exclude: ['**/*.json'], - ...options, - }, - { - transforms: ['typescript', 'jsx'], - // We use a custom forked version of sucrase, - // where there is a new option `disableES2019Transforms` - disableESTransforms: false, - disableES2019Transforms: true, - ...sucraseOptions, - }, - ); -} -export function makeJsonPlugin() { - return json(); -} +import { replacePlugin } from "rolldown/plugins"; /** * Create a plugin which can be used to pause the build process at the given hook. @@ -82,7 +44,7 @@ export function makeJsonPlugin() { */ export function makeDebuggerPlugin(hookName) { return { - name: 'debugger-plugin', + name: "debugger-plugin", // eslint-disable-next-line no-unused-vars [hookName]: (..._args) => { // eslint-disable-next-line no-debugger @@ -92,51 +54,44 @@ export function makeDebuggerPlugin(hookName) { }; } -/** - * Create a plugin to clean up output files by: - * - Converting line endings unix line endings - * - Removing consecutive empty lines - * - * @returns A `rollup-plugin-cleanup` instance. - */ -export function makeCleanupPlugin() { - return cleanup({ - // line endings are unix-ized by default - comments: 'all', // comments to keep - compactComments: 'false', // don't remove blank lines in multi-line comments - maxEmptyLines: 1, - extensions: ['js', 'jsx', 'ts', 'tsx'], - }); -} - /** * Creates a plugin to replace all instances of "__DEBUG_BUILD__" with a safe statement that * a) evaluates to `true` * b) can easily be modified by our users' bundlers to evaluate to false, facilitating the treeshaking of logger code. * - * @returns A `@rollup/plugin-replace` instance. + * @returns A `rolldown.replacePlugin` instance. */ export function makeDebugBuildStatementReplacePlugin() { - return replace({ - preventAssignment: false, - values: { - __DEBUG_BUILD__: "(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)", + return replacePlugin( + { + __DEBUG_BUILD__: + "(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)", }, - }); + { + preventAssignment: true, + }, + ); } export function makeProductionReplacePlugin() { - const pattern = /\/\* rollup-include-development-only \*\/[\s\S]*?\/\* rollup-include-development-only-end \*\/\s*/g; + // Use legal comments (/*!) so they're preserved by Rolldown + // NOTE: Due to a Rolldown limitation, the ending comment must be placed before a statement + // (e.g., before a return) rather than after a block, otherwise it gets stripped. + // See: https://github.com/rolldown/rolldown/issues/[TODO: file issue] + const pattern = + /\/\*! rollup-include-development-only \*\/[\s\S]*?\/\*! rollup-include-development-only-end \*\/\s*/g; function stripDevBlocks(code) { if (!code) return null; - if (!code.includes('rollup-include-development-only')) return null; - const replaced = code.replace(pattern, ''); + if (!code.includes("rollup-include-development-only")) return null; + + const replaced = code.replace(pattern, ""); + return { code: replaced, map: null }; } return { - name: 'remove-dev-mode-blocks', + name: "remove-dev-mode-blocks", renderChunk(code) { return stripDevBlocks(code); }, @@ -154,16 +109,15 @@ export function makeProductionReplacePlugin() { export function makeRrwebBuildPlugin({ excludeShadowDom, excludeIframe } = {}) { const values = {}; - if (typeof excludeShadowDom === 'boolean') { - values['__RRWEB_EXCLUDE_SHADOW_DOM__'] = excludeShadowDom; + if (typeof excludeShadowDom === "boolean") { + values["__RRWEB_EXCLUDE_SHADOW_DOM__"] = excludeShadowDom; } - if (typeof excludeIframe === 'boolean') { - values['__RRWEB_EXCLUDE_IFRAME__'] = excludeIframe; + if (typeof excludeIframe === "boolean") { + values["__RRWEB_EXCLUDE_IFRAME__"] = excludeIframe; } - return replace({ + return replacePlugin(values, { preventAssignment: true, - values, }); } diff --git a/dev-packages/rollup-utils/plugins/vendor/sucrase-plugin.mjs b/dev-packages/rollup-utils/plugins/vendor/sucrase-plugin.mjs deleted file mode 100644 index 63465e768bc9..000000000000 --- a/dev-packages/rollup-utils/plugins/vendor/sucrase-plugin.mjs +++ /dev/null @@ -1,79 +0,0 @@ -// Vendored from https://github.com/rollup/plugins/blob/0090e728f52828d39b071ab5c7925b9b575cd568/packages/sucrase/src/index.js and modified - -/* - -The MIT License (MIT) - -Copyright (c) 2019 RollupJS Plugin Contributors (https://github.com/rollup/plugins/graphs/contributors) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -import fs from 'fs'; -import path from 'path'; - -import { createFilter } from '@rollup/pluginutils'; -import { transform } from 'sucrase'; - -export default function sucrase(opts = {}, sucraseOpts = {}) { - const filter = createFilter(opts.include, opts.exclude); - - return { - name: 'sucrase', - - // eslint-disable-next-line consistent-return - resolveId(importee, importer) { - if (importer && /^[./]/.test(importee)) { - const resolved = path.resolve(importer ? path.dirname(importer) : process.cwd(), importee); - // resolve in the same order that TypeScript resolves modules - const resolvedFilenames = [ - `${resolved}.ts`, - `${resolved}.tsx`, - `${resolved}/index.ts`, - `${resolved}/index.tsx`, - ]; - if (resolved.endsWith('.js')) { - resolvedFilenames.splice(2, 0, `${resolved.slice(0, -3)}.ts`, `${resolved.slice(0, -3)}.tsx`); - } - const resolvedFilename = resolvedFilenames.find(filename => fs.existsSync(filename)); - - if (resolvedFilename) { - return resolvedFilename; - } - } - }, - - transform(code, id) { - if (!filter(id)) return null; - const result = transform(code, { - transforms: sucraseOpts.transforms, - filePath: id, - sourceMapOptions: { - compiledFilename: id, - }, - ...sucraseOpts, - }); - return { - code: result.code, - map: result.sourceMap, - }; - }, - }; -} diff --git a/dev-packages/rollup-utils/utils.mjs b/dev-packages/rollup-utils/utils.mjs index b687ff9993c4..4dec0fc3e346 100644 --- a/dev-packages/rollup-utils/utils.mjs +++ b/dev-packages/rollup-utils/utils.mjs @@ -21,16 +21,7 @@ export function mergePlugins(pluginsA, pluginsB) { // here. // Additionally, the excludeReplay plugin must run before TS/Sucrase so that we can eliminate the replay code // before anything is type-checked (TS-only) and transpiled. - const order = [ - 'remove-dev-mode-blocks', - 'excludeReplay', - 'typescript', - 'sucrase', - '...', - 'terser', - 'license', - 'output-base64-worker-script', - ]; + const order = ['remove-dev-mode-blocks', 'excludeReplay', '...', 'output-base64-worker-script']; const sortKeyA = order.includes(a.name) ? a.name : '...'; const sortKeyB = order.includes(b.name) ? b.name : '...'; @@ -39,3 +30,22 @@ export function mergePlugins(pluginsA, pluginsB) { return plugins; } + +/** + * Creates a treeshake setting preset, rolldown doesn't have "smallest" as a preset, so we need to create our own. + * Smallest + * https://rolldown.rs/options/treeshake#treeshake + * https://rollupjs.org/configuration-options/#treeshake + * @param {boolean | readonly string[] | ModuleSideEffectsRule[] | ((id: string, external: boolean) => boolean | undefined) | 'no-external' | 'smallest'} preset - The preset to use + */ +export function treeShakePreset(preset) { + if (preset === 'smallest') { + return { + propertyReadSideEffects: false, + moduleSideEffects: false, + unknownGlobalSideEffects: false, + }; + } + + return preset; +} diff --git a/dev-packages/test-utils/package.json b/dev-packages/test-utils/package.json index 57015c1b2efc..fcf9661f916e 100644 --- a/dev-packages/test-utils/package.json +++ b/dev-packages/test-utils/package.json @@ -36,7 +36,7 @@ "build": "run-s build:transpile build:types", "build:tarball": "run-s build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "clean": "rimraf -g ./node_modules ./build" }, diff --git a/package.json b/package.json index ab2392393018..c3c9e757775e 100644 --- a/package.json +++ b/package.json @@ -106,15 +106,6 @@ "dev-packages/bundler-tests" ], "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.7", - "@rollup/plugin-esm-shim": "^0.1.5", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", - "@rollup/plugin-replace": "^5.0.5", - "@rollup/plugin-sucrase": "^5.0.2", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^11.1.6", - "@rollup/pluginutils": "^5.1.0", "@size-limit/file": "~11.1.6", "@size-limit/webpack": "~11.1.6", "@types/jsdom": "^21.1.6", @@ -132,11 +123,8 @@ "prettier": "^3.8.1", "prettier-plugin-astro": "^0.14.1", "rimraf": "^5.0.10", - "rollup": "^4.35.0", - "rollup-plugin-cleanup": "^3.2.1", - "rollup-plugin-license": "^3.3.1", + "rolldown": "1.0.0-beta.60", "size-limit": "~11.1.6", - "sucrase": "^3.35.0", "ts-node": "10.9.2", "typescript": "~5.8.0", "vitest": "^3.2.4", @@ -152,7 +140,6 @@ "gauge/strip-ansi": "6.0.1", "wide-align/string-width": "4.2.3", "cliui/wrap-ansi": "7.0.0", - "sucrase": "getsentry/sucrase#es2020-polyfills", "**/express/path-to-regexp": "0.1.12" }, "version": "0.0.0", diff --git a/packages/astro/package.json b/packages/astro/package.json index e2de92993156..0b08c58b57f4 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -68,11 +68,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts", diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index bc8ede780edc..4fdbb4653c18 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -80,15 +80,15 @@ }, "scripts": { "build": "run-p build:transpile build:types", - "build:layer": "rimraf build/aws && rollup -c rollup.lambda-extension.config.mjs && yarn ts-node scripts/buildLambdaLayer.ts", + "build:layer": "rimraf build/aws && rolldown -c rollup.lambda-extension.config.mjs && yarn ts-node scripts/buildLambdaLayer.ts", "build:dev": "run-p build:transpile build:types", - "build:transpile": "rollup -c rollup.npm.config.mjs && yarn build:layer", + "build:transpile": "rolldown -c rollup.npm.config.mjs && yarn build:layer", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/npm/types build/npm/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/aws-serverless/scripts/buildLambdaLayer.ts b/packages/aws-serverless/scripts/buildLambdaLayer.ts index cae52eb44eeb..34c6cbbb6280 100644 --- a/packages/aws-serverless/scripts/buildLambdaLayer.ts +++ b/packages/aws-serverless/scripts/buildLambdaLayer.ts @@ -216,8 +216,8 @@ function replaceSDKSource(): void { // Replace the line marked with __SENTRY_SDK_SOURCE__ comment // Change from 'npm' to 'aws-lambda-layer' to identify that this is the AWS Lambda layer content = content.replace( - "/* __SENTRY_SDK_SOURCE__ */ return 'npm';", - "/* __SENTRY_SDK_SOURCE__ */ return 'aws-lambda-layer';", + '/*! __SENTRY_SDK_SOURCE__ */ return "npm";', + '/*! __SENTRY_SDK_SOURCE__ */ return "aws-lambda-layer";', ); fs.writeFileSync(envFile, content); diff --git a/packages/browser-utils/package.json b/packages/browser-utils/package.json index 62556e6143fe..c54d9ad665ae 100644 --- a/packages/browser-utils/package.json +++ b/packages/browser-utils/package.json @@ -44,13 +44,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "run-p build:transpile:watch build:types:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-internal-browser-utils-*.tgz", diff --git a/packages/browser/package.json b/packages/browser/package.json index 04cb5fa742c6..fcf0e0ce8874 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -57,15 +57,15 @@ "scripts": { "build": "run-p build:transpile build:bundle build:types", "build:dev": "run-p build:transpile build:types", - "build:bundle": "rollup -c rollup.bundle.config.mjs", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:bundle": "rolldown -c rollup.bundle.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/npm/types build/npm/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:bundle:watch build:types:watch", "build:dev:watch": "run-p build:transpile:watch build:types:watch", - "build:bundle:watch": "rollup -c rollup.bundle.config.mjs --watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:bundle:watch": "rolldown -c rollup.bundle.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/browser/src/sdk.ts b/packages/browser/src/sdk.ts index 8a457f858f3c..cc9aceb07574 100644 --- a/packages/browser/src/sdk.ts +++ b/packages/browser/src/sdk.ts @@ -98,7 +98,7 @@ export function init(options: BrowserOptions = {}): Client | undefined { let defaultIntegrations = options.defaultIntegrations == null ? getDefaultIntegrations(options) : options.defaultIntegrations; - /* rollup-include-development-only */ + /*! rollup-include-development-only */ if (options.spotlight) { if (!defaultIntegrations) { defaultIntegrations = []; @@ -106,7 +106,6 @@ export function init(options: BrowserOptions = {}): Client | undefined { const args = typeof options.spotlight === 'string' ? { sidecarUrl: options.spotlight } : undefined; defaultIntegrations.push(spotlightBrowserIntegration(args)); } - /* rollup-include-development-only-end */ const clientOptions: BrowserClientOptions = { ...options, @@ -118,6 +117,9 @@ export function init(options: BrowserOptions = {}): Client | undefined { }), transport: options.transport || makeFetchTransport, }; + // TODO: This is here to avoid the Rolldown limitation of not being able to place the ending comment after a block + // Should be moved back after the if block once the Rolldown limitation is fixed + /*! rollup-include-development-only-end */ return initAndBind(BrowserClient, clientOptions); } diff --git a/packages/bun/package.json b/packages/bun/package.json index ffbe15b18eff..4eadad576f76 100644 --- a/packages/bun/package.json +++ b/packages/bun/package.json @@ -48,13 +48,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index c1cd940b0b36..b8727fcfa7fd 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -68,13 +68,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/core/package.json b/packages/core/package.json index 58134b76d83f..a2e484569520 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -41,13 +41,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/core/rollup.npm.config.mjs b/packages/core/rollup.npm.config.mjs index cc3ad4064820..c6c96c546930 100644 --- a/packages/core/rollup.npm.config.mjs +++ b/packages/core/rollup.npm.config.mjs @@ -2,8 +2,8 @@ import { readFileSync } from 'fs'; import { dirname, join } from 'path'; +import { replacePlugin } from 'rolldown/plugins'; import { fileURLToPath } from 'url'; -import replace from '@rollup/plugin-replace'; import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; const packageJson = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), 'package.json'), 'utf-8')); @@ -27,12 +27,14 @@ export default makeNPMConfigVariants( : Boolean(process.env.SENTRY_BUILD_PRESERVE_MODULES), }, plugins: [ - replace({ - preventAssignment: true, - values: { + replacePlugin( + { __SENTRY_SDK_VERSION__: JSON.stringify(packageVersion), }, - }), + { + preventAssignment: true, + }, + ), ], }, }), diff --git a/packages/core/src/utils/env.ts b/packages/core/src/utils/env.ts index 86872017707a..5fdd9e9b7b91 100644 --- a/packages/core/src/utils/env.ts +++ b/packages/core/src/utils/env.ts @@ -31,5 +31,5 @@ export function isBrowserBundle(): boolean { */ export function getSDKSource(): SdkSource { // This comment is used to identify this line in the CDN bundle build step and replace this with "return 'cdn';" - /* __SENTRY_SDK_SOURCE__ */ return 'npm'; + /*! __SENTRY_SDK_SOURCE__ */ return 'npm'; } diff --git a/packages/deno/package.json b/packages/deno/package.json index 532844202393..a87154b9e0b4 100644 --- a/packages/deno/package.json +++ b/packages/deno/package.json @@ -31,7 +31,7 @@ "deno-types": "node ./scripts/download-deno-types.mjs", "build": "run-s build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "yarn deno-types && rollup -c rollup.npm.config.mjs", + "build:transpile": "yarn deno-types && rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/eslint-config-sdk/src/base.js b/packages/eslint-config-sdk/src/base.js index 5b77056bfbb2..238bf2ed14ed 100644 --- a/packages/eslint-config-sdk/src/base.js +++ b/packages/eslint-config-sdk/src/base.js @@ -236,6 +236,8 @@ module.exports = { balanced: true, // ... unless they're jsdoc-style block comments, which end with `**/` exceptions: ['*'], + // Allow /*! for legal/preserved comments + markers: ['!'], }, }, ], diff --git a/packages/feedback/package.json b/packages/feedback/package.json index 6919d558ce47..2f67f46e4136 100644 --- a/packages/feedback/package.json +++ b/packages/feedback/package.json @@ -46,8 +46,8 @@ }, "scripts": { "build": "run-p build:transpile build:types build:bundle", - "build:transpile": "rollup -c rollup.npm.config.mjs", - "build:bundle": "rollup -c rollup.bundle.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", + "build:bundle": "rolldown -c rollup.bundle.config.mjs", "build:dev": "run-p build:transpile build:types", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", diff --git a/packages/feedback/rollup.bundle.config.mjs b/packages/feedback/rollup.bundle.config.mjs index a5efc6140c06..c5f98bd09b28 100644 --- a/packages/feedback/rollup.bundle.config.mjs +++ b/packages/feedback/rollup.bundle.config.mjs @@ -1,5 +1,15 @@ import { makeBaseBundleConfig, makeBundleConfigVariants } from '@sentry-internal/rollup-utils'; +// Alias react to preact/compat since this package uses Preact for rendering +const preactAlias = { + resolve: { + alias: { + react: 'preact/compat', + 'react/jsx-runtime': 'preact/jsx-runtime', + }, + }, +}; + export default [ // The core `feedback` bundle is built in the browser package // Sub-bundles are built here @@ -10,13 +20,7 @@ export default [ jsVersion: 'es6', licenseTitle: '@sentry-internal/feedback', outputFileBase: () => 'bundles/feedback-screenshot', - sucrase: { - // The feedback widget is using preact so we need different pragmas and jsx runtimes - jsxPragma: 'h', - jsxFragmentPragma: 'Fragment', - jsxRuntime: 'classic', - production: true, - }, + packageSpecificConfig: preactAlias, }), ), ...makeBundleConfigVariants( @@ -26,13 +30,7 @@ export default [ jsVersion: 'es6', licenseTitle: '@sentry-internal/feedback', outputFileBase: () => 'bundles/feedback-modal', - sucrase: { - // The feedback widget is using preact so we need different pragmas and jsx runtimes - jsxPragma: 'h', - jsxFragmentPragma: 'Fragment', - jsxRuntime: 'classic', - production: true, - }, + packageSpecificConfig: preactAlias, }), ), ]; diff --git a/packages/feedback/rollup.npm.config.mjs b/packages/feedback/rollup.npm.config.mjs index c91c37ec84f8..f012e515a5e0 100644 --- a/packages/feedback/rollup.npm.config.mjs +++ b/packages/feedback/rollup.npm.config.mjs @@ -15,12 +15,5 @@ export default makeNPMConfigVariants( : Boolean(process.env.SENTRY_BUILD_PRESERVE_MODULES), }, }, - sucrase: { - // The feedback widget is using preact so we need different pragmas and jsx runtimes - jsxPragma: 'h', - jsxFragmentPragma: 'Fragment', - jsxRuntime: 'classic', - production: true, - }, }), ); diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 2927403ee160..786235000ff4 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -64,13 +64,13 @@ "build:dev": "yarn build", "build:plugin": "tsc -p tsconfig.plugin.json", "build:transpile": "run-p build:rollup build:plugin", - "build:rollup": "rollup -c rollup.npm.config.mjs", + "build:rollup": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/google-cloud-serverless/package.json b/packages/google-cloud-serverless/package.json index 96ca608e4930..d0cc9bf61911 100644 --- a/packages/google-cloud-serverless/package.json +++ b/packages/google-cloud-serverless/package.json @@ -70,13 +70,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/integration-shims/package.json b/packages/integration-shims/package.json index 88d875fb26fe..30afd1ae931e 100644 --- a/packages/integration-shims/package.json +++ b/packages/integration-shims/package.json @@ -32,7 +32,7 @@ "private": true, "scripts": { "build": "run-p build:transpile build:types", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index 33a57ae165a3..f2610de14204 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -65,13 +65,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:setup", "build:types:core": "tsc -p tsconfig.types.json", "build:types:setup": "tsc -p tsconfig.setup-types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts && madge --circular src/setup.ts", diff --git a/packages/nextjs/rollup.npm.config.mjs b/packages/nextjs/rollup.npm.config.mjs index 89271a21e9d3..46d47582ab1e 100644 --- a/packages/nextjs/rollup.npm.config.mjs +++ b/packages/nextjs/rollup.npm.config.mjs @@ -19,6 +19,10 @@ export default [ packageSpecificConfig: { external: ['next/router', 'next/constants', 'next/headers', 'stacktrace-parser'], + output: { + virtualDirname: '_virtual/core', + }, + // Next.js and our users are more happy when our client code has the "use client" directive plugins: [ { @@ -51,8 +55,7 @@ export default [ packageSpecificConfig: { output: { - // Preserve the original file structure (i.e., so that everything is still relative to `src`) - entryFileNames: 'config/templates/[name].js', + virtualDirname: '_virtual/loaders', // this is going to be add-on code, so it doesn't need the trappings of a full module (and in fact actively // shouldn't have them, lest they muck with the module to which we're adding it) @@ -69,6 +72,33 @@ export default [ '__SENTRY_WRAPPING_TARGET_FILE__', '__SENTRY_NEXTJS_REQUEST_ASYNC_STORAGE_SHIM__', ], + plugins: [ + { + name: 'sentry-fix-missing-serverComponentModule-import', + renderChunk(code, chunk) { + // Rolldown has a bug where it removes namespace imports for external modules even when they're still + // referenced in the code (specifically when there's a `declare const` with the same name in the source). + // We need to add back the missing import for serverComponentModule in the serverComponentWrapperTemplate. + if ( + chunk.facadeModuleId?.includes('serverComponentWrapperTemplate') && + code.includes('serverComponentModule') && + !code.includes('import * as serverComponentModule') + ) { + // Find the position after the last import statement to insert our missing import + const lastImportMatch = code.match(/^import[^;]*;/gm); + if (lastImportMatch) { + const lastImport = lastImportMatch[lastImportMatch.length - 1]; + const lastImportEnd = code.indexOf(lastImport) + lastImport.length; + return { + code: `${code.slice(0, lastImportEnd)} +import * as serverComponentModule from "__SENTRY_WRAPPING_TARGET_FILE__";${code.slice(lastImportEnd)}`, + }; + } + } + return null; + }, + }, + ], }, }), ), @@ -78,8 +108,7 @@ export default [ packageSpecificConfig: { output: { - // Preserve the original file structure (i.e., so that everything is still relative to `src`) - entryFileNames: 'config/loaders/[name].js', + virtualDirname: '_virtual/polyfills', // make it so Rollup calms down about the fact that we're combining default and named exports exports: 'named', @@ -94,8 +123,7 @@ export default [ packageSpecificConfig: { output: { - // Preserve the original file structure (i.e., so that everything is still relative to `src`) - entryFileNames: 'config/polyfills/[name].js', + virtualDirname: '_virtual/polyfills', // make it so Rollup calms down about the fact that we're combining default and named exports exports: 'named', diff --git a/packages/nextjs/scripts/buildRollup.ts b/packages/nextjs/scripts/buildRollup.ts index d273146b872d..78010a4932b7 100644 --- a/packages/nextjs/scripts/buildRollup.ts +++ b/packages/nextjs/scripts/buildRollup.ts @@ -10,7 +10,7 @@ function run(cmd: string, options?: childProcess.ExecSyncOptions): string | Buff return childProcess.execSync(cmd, { stdio: 'inherit', ...options }); } -run('yarn rollup -c rollup.npm.config.mjs'); +run('yarn rolldown -c rollup.npm.config.mjs'); // Regardless of whether nextjs is using the CJS or ESM version of our SDK, we want the code from our templates to be in // ESM (since we'll be adding it onto page files which are themselves written in ESM), so copy the ESM versions of the diff --git a/packages/nextjs/src/config/templates/routeHandlerWrapperTemplate.ts b/packages/nextjs/src/config/templates/routeHandlerWrapperTemplate.ts index 3a05c97d5f5c..2e9d602c9f83 100644 --- a/packages/nextjs/src/config/templates/routeHandlerWrapperTemplate.ts +++ b/packages/nextjs/src/config/templates/routeHandlerWrapperTemplate.ts @@ -60,8 +60,8 @@ function wrapHandler(handler: T, method: 'GET' | 'POST' | 'PUT' | 'PATCH' | ' // @ts-expect-error See above export * from '__SENTRY_WRAPPING_TARGET_FILE__'; -// @ts-expect-error This is the file we're wrapping -export { default } from '__SENTRY_WRAPPING_TARGET_FILE__'; +// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +export default routeModule.default; type RouteHandler = (...args: unknown[]) => unknown; diff --git a/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts b/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts index 3be1b07d6bc5..fd060ebf9df0 100644 --- a/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts +++ b/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts @@ -1,8 +1,9 @@ -// @ts-expect-error This will be replaced with the user's sentry config gile import '__SENTRY_CONFIG_IMPORT_PATH__'; +// @ts-expect-error This is the file we're wrapping +import * as wrappingTargetModule from '__SENTRY_WRAPPING_TARGET_FILE__'; // @ts-expect-error This is the file we're wrapping export * from '__SENTRY_WRAPPING_TARGET_FILE__'; -// @ts-expect-error This is the file we're wrapping -export { default } from '__SENTRY_WRAPPING_TARGET_FILE__'; +// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +export default wrappingTargetModule.default; diff --git a/packages/nextjs/test/config/wrappingLoader.test.ts b/packages/nextjs/test/config/wrappingLoader.test.ts index 97e2b016301e..a951ba74e259 100644 --- a/packages/nextjs/test/config/wrappingLoader.test.ts +++ b/packages/nextjs/test/config/wrappingLoader.test.ts @@ -100,7 +100,8 @@ describe('wrappingLoader', () => { await loaderPromise; - expect(callback).toHaveBeenCalledWith(null, expect.stringContaining("'/my/route'"), expect.anything()); + // Rolldown uses double quotes, old Rollup used single quotes + expect(callback).toHaveBeenCalledWith(null, expect.stringMatching(/["']\/my\/route['"]/), expect.anything()); }); describe('middleware wrapping', () => { @@ -148,8 +149,8 @@ describe('wrappingLoader', () => { expect(wrappedCode).toContain('userProvidedProxy = true'); // Proxy should be wrapped, middleware should be undefined - expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : undefined/); - expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : undefined/); + expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : (?:undefined|void 0)/); + expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : (?:undefined|void 0)/); }); it('should export middleware when user exports named "middleware" export', async () => { @@ -196,8 +197,8 @@ describe('wrappingLoader', () => { expect(wrappedCode).toContain('userProvidedProxy = false'); // Middleware should be wrapped, proxy should be undefined - expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : undefined/); - expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : undefined/); + expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : (?:undefined|void 0)/); + expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : (?:undefined|void 0)/); }); it('should export undefined middleware/proxy when user only exports default', async () => { @@ -245,8 +246,8 @@ describe('wrappingLoader', () => { expect(wrappedCode).toContain('userProvidedProxy = false'); // Both middleware and proxy should be undefined (conditionals evaluate to false) - expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : undefined/); - expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : undefined/); + expect(wrappedCode).toMatch(/const middleware = userProvidedMiddleware \? wrappedHandler : (?:undefined|void 0)/); + expect(wrappedCode).toMatch(/const proxy = userProvidedProxy \? wrappedHandler : (?:undefined|void 0)/); }); }); diff --git a/packages/node-core/package.json b/packages/node-core/package.json index 732e3b010ee2..f0e941dfb273 100644 --- a/packages/node-core/package.json +++ b/packages/node-core/package.json @@ -121,13 +121,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/node-core/rollup.npm.config.mjs b/packages/node-core/rollup.npm.config.mjs index 9bae67fd2dd8..02109e80d4bc 100644 --- a/packages/node-core/rollup.npm.config.mjs +++ b/packages/node-core/rollup.npm.config.mjs @@ -1,4 +1,3 @@ -import replace from '@rollup/plugin-replace'; import { makeBaseNPMConfig, makeNPMConfigVariants, makeOtelLoaders } from '@sentry-internal/rollup-utils'; import { createWorkerCodeBuilder } from './rollup.anr-worker.config.mjs'; @@ -12,6 +11,36 @@ const [localVariablesWorkerConfig, getLocalVariablesBase64Code] = createWorkerCo 'build/esm/integrations/local-variables', ); +/** + * Custom replace plugin that lazily evaluates replacement values. + * This is needed because the worker scripts are built in earlier configs, + * and we need to wait for their renderChunk hooks to complete before + * we can get the base64-encoded worker code. + */ +function makeLazyReplacePlugin(replacements, options = {}) { + const { delimiters = ['###', '###'] } = options; + const [delimiterStart, delimiterEnd] = delimiters; + + return { + name: 'lazy-replace-plugin', + renderChunk(code) { + let result = code; + + for (const [key, valueFn] of Object.entries(replacements)) { + const value = typeof valueFn === 'function' ? valueFn() : valueFn; + const searchPattern = `${delimiterStart}${key}${delimiterEnd}`; + // Don't add quotes - the source already has quotes around the placeholder + const replacement = value; + + // Replace all occurrences + result = result.split(searchPattern).join(replacement); + } + + return { code: result }; + }, + }; +} + export default [ ...makeOtelLoaders('./build', 'otel'), // The workers needs to be built first since it's their output is copied in the main bundle. @@ -27,15 +56,15 @@ export default [ preserveModules: true, }, plugins: [ - replace({ - delimiters: ['###', '###'], - // removes some rollup warnings - preventAssignment: true, - values: { - AnrWorkerScript: () => getAnrBase64Code(), - LocalVariablesWorkerScript: () => getLocalVariablesBase64Code(), + makeLazyReplacePlugin( + { + AnrWorkerScript: getAnrBase64Code, + LocalVariablesWorkerScript: getLocalVariablesBase64Code, + }, + { + delimiters: ['###', '###'], }, - }), + ), ], }, }), diff --git a/packages/node-native/package.json b/packages/node-native/package.json index cf409d94f07f..c9981714a5cd 100644 --- a/packages/node-native/package.json +++ b/packages/node-native/package.json @@ -53,12 +53,12 @@ "lint:es-compatibility": "es-check es2022 ./build/cjs/*.js && es-check es2022 ./build/esm/*.js --module", "fix": "eslint . --format stylish --fix", "build": "yarn build:types && yarn build:transpile", - "build:transpile": "yarn rollup -c rollup.npm.config.mjs", + "build:transpile": "yarn rolldown -c rollup.npm.config.mjs", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:types": "tsc -p tsconfig.types.json && yarn build:types:downlevel", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:dev": "yarn clean && yarn build", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:watch": "run-p build:transpile:watch build:types:watch", "build:tarball": "npm pack" }, diff --git a/packages/node/package.json b/packages/node/package.json index 376170b88234..85859693ba7b 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -107,13 +107,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 1690ce25665f..800ed1d90204 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -69,11 +69,11 @@ "build": "run-s build:types build:transpile", "build:dev": "yarn build", "build:nuxt-module": "bash ./generate-build-stubs.bash && nuxt-module-build build --outDir build/module", - "build:transpile": "rollup -c rollup.npm.config.mjs && yarn build:nuxt-module", + "build:transpile": "rolldown -c rollup.npm.config.mjs && yarn build:nuxt-module", "build:types": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts", diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index 0f8f52498747..0dad22dd46a1 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -58,13 +58,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/profiling-node/package.json b/packages/profiling-node/package.json index f47d45a65638..44c8db42e08b 100644 --- a/packages/profiling-node/package.json +++ b/packages/profiling-node/package.json @@ -49,12 +49,12 @@ "lint:es-compatibility": "es-check es2022 ./build/cjs/*.js && es-check es2022 ./build/esm/*.js --module", "fix": "eslint . --format stylish --fix", "build": "yarn build:types && yarn build:transpile", - "build:transpile": "yarn rollup -c rollup.npm.config.mjs", + "build:transpile": "yarn rolldown -c rollup.npm.config.mjs", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:types": "tsc -p tsconfig.types.json && yarn build:types:downlevel", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:dev": "yarn clean && yarn build", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:watch": "run-p build:transpile:watch build:types:watch", "build:tarball": "npm pack", "test:bundle": "node test-binaries.esbuild.js", diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 8a6e449e0e37..059f22c2058e 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -72,12 +72,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core", "build:types:core": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts", diff --git a/packages/react-router/rollup.npm.config.mjs b/packages/react-router/rollup.npm.config.mjs index 4a52f4ab57a7..d4edb3b23c9b 100644 --- a/packages/react-router/rollup.npm.config.mjs +++ b/packages/react-router/rollup.npm.config.mjs @@ -11,12 +11,6 @@ export default [ exports: 'named', }, }, - sucrase: { - // React 19 emits a warning if we don't use the newer jsx transform: https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html - // but this breaks react 17, so we keep it at `classic` for now - jsxRuntime: 'classic', - production: true, // This is needed so that sucrase uses the production jsx runtime (ie `import { jsx } from 'react/jsx-runtime'` instead of `import { jsxDEV as _jsxDEV } from 'react/jsx-dev-runtime'`) - }, }), ), ]; diff --git a/packages/react/package.json b/packages/react/package.json index d31cb0471b68..061a9d4df2b3 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -69,13 +69,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/react/rollup.npm.config.mjs b/packages/react/rollup.npm.config.mjs index 923dfafb85d7..edfc16d8d2ff 100644 --- a/packages/react/rollup.npm.config.mjs +++ b/packages/react/rollup.npm.config.mjs @@ -5,11 +5,5 @@ export default makeNPMConfigVariants( packageSpecificConfig: { external: ['react', 'react/jsx-runtime'], }, - sucrase: { - // React 19 emits a warning if we don't use the newer jsx transform: https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html - // but this breaks react 17, so we keep it at `classic` for now - jsxRuntime: 'classic', - production: true, // This is needed so that sucrase uses the production jsx runtime (ie `import { jsx } from 'react/jsx-runtime'` instead of `import { jsxDEV as _jsxDEV } from 'react/jsx-dev-runtime'`) - }, }), ); diff --git a/packages/remix/package.json b/packages/remix/package.json index f964c4026cc8..62c0cf21575f 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -29,7 +29,11 @@ "require": "./build/cjs/index.client.js", "default": "./build/cjs/index.client.js" }, - "node": "./build/cjs/index.server.js", + "node": { + "import": "./build/esm/index.server.js", + "require": "./build/cjs/index.server.js", + "default": "./build/cjs/index.server.js" + }, "worker": { "import": "./build/esm/cloudflare/index.js", "require": "./build/cjs/cloudflare/index.js", @@ -37,9 +41,9 @@ } }, "./cloudflare": { + "types": "./build/types/cloudflare/index.d.ts", "import": "./build/esm/cloudflare/index.js", "require": "./build/cjs/cloudflare/index.js", - "types": "./build/types/cloudflare/index.d.ts", "default": "./build/esm/cloudflare/index.js" }, "./import": { @@ -93,13 +97,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.server.ts && madge --circular src/index.client.ts", diff --git a/packages/remix/rollup.npm.config.mjs b/packages/remix/rollup.npm.config.mjs index 8ba7eac8051b..bd26bd1b06c2 100644 --- a/packages/remix/rollup.npm.config.mjs +++ b/packages/remix/rollup.npm.config.mjs @@ -17,12 +17,6 @@ export default [ exports: 'named', }, }, - sucrase: { - // React 19 emits a warning if we don't use the newer jsx transform: https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html - // but this breaks react 17, so we keep it at `classic` for now - jsxRuntime: 'classic', - production: true, // This is needed so that sucrase uses the production jsx runtime (ie `import { jsx } from 'react/jsx-runtime'` instead of `import { jsxDEV as _jsxDEV } from 'react/jsx-dev-runtime'`) - }, }), ), ...makeOtelLoaders('./build', 'sentry-node'), diff --git a/packages/remix/src/server/instrumentServer.ts b/packages/remix/src/server/instrumentServer.ts index d8864d254a99..5f254db2a4bf 100644 --- a/packages/remix/src/server/instrumentServer.ts +++ b/packages/remix/src/server/instrumentServer.ts @@ -24,7 +24,6 @@ import { hasSpansEnabled, httpHeadersToSpanAttributes, isNodeEnv, - loadModule, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, @@ -400,7 +399,8 @@ function instrumentBuildCallback( // We should be able to wrap them, as they may not be wrapped before. const defaultExport = wrappedEntry.module.default as undefined | WrappedFunction; if (defaultExport && !defaultExport.__sentry_original__) { - fill(wrappedEntry.module, 'default', makeWrappedDocumentRequestFunction(options?.instrumentTracing)); + const instrumentTracing = options ? options.instrumentTracing : undefined; + fill(wrappedEntry.module, 'default', makeWrappedDocumentRequestFunction(instrumentTracing)); } for (const [id, route] of Object.entries(build.routes)) { @@ -414,18 +414,21 @@ function instrumentBuildCallback( } if (!(wrappedRoute.module.loader as WrappedFunction).__sentry_original__) { - fill(wrappedRoute.module, 'loader', makeWrappedRootLoader(options?.instrumentTracing, build)); + const instrumentTracing = options ? options.instrumentTracing : undefined; + fill(wrappedRoute.module, 'loader', makeWrappedRootLoader(instrumentTracing, build)); } } const routeAction = wrappedRoute.module.action as undefined | WrappedFunction; if (routeAction && !routeAction.__sentry_original__) { - fill(wrappedRoute.module, 'action', makeWrappedAction(id, options?.instrumentTracing, build)); + const instrumentTracing = options ? options.instrumentTracing : undefined; + fill(wrappedRoute.module, 'action', makeWrappedAction(id, instrumentTracing, build)); } const routeLoader = wrappedRoute.module.loader as undefined | WrappedFunction; if (routeLoader && !routeLoader.__sentry_original__) { - fill(wrappedRoute.module, 'loader', makeWrappedLoader(id, options?.instrumentTracing, build)); + const instrumentTracing = options ? options.instrumentTracing : undefined; + fill(wrappedRoute.module, 'loader', makeWrappedLoader(id, instrumentTracing, build)); } routes[id] = wrappedRoute; @@ -475,21 +478,3 @@ export const makeWrappedCreateRequestHandler = (options?: { instrumentTracing?: return wrapRequestHandler(requestHandler, newBuild, options); }; }; - -/** - * Monkey-patch Remix's `createRequestHandler` from `@remix-run/server-runtime` - * which Remix Adapters (https://remix.run/docs/en/v1/api/remix) use underneath. - */ -export function instrumentServer(options?: { instrumentTracing?: boolean }): void { - const pkg = loadModule<{ - createRequestHandler: CreateRequestHandlerFunction; - }>('@remix-run/server-runtime', module); - - if (!pkg) { - DEBUG_BUILD && debug.warn('Remix SDK was unable to require `@remix-run/server-runtime` package.'); - - return; - } - - fill(pkg, 'createRequestHandler', makeWrappedCreateRequestHandler(options)); -} diff --git a/packages/remix/src/server/patchServerRuntime.ts b/packages/remix/src/server/patchServerRuntime.ts new file mode 100644 index 000000000000..c0c3370043c8 --- /dev/null +++ b/packages/remix/src/server/patchServerRuntime.ts @@ -0,0 +1,46 @@ +import type { CreateRequestHandlerFunction } from '@remix-run/server-runtime'; +import { debug, fill, loadModule } from '@sentry/core'; +import { createRequire } from 'module'; +import { DEBUG_BUILD } from '../utils/debug-build'; +import { makeWrappedCreateRequestHandler } from './instrumentServer'; + +/** + * Helper to load a module in both CJS and ESM contexts. + * In ESM, we use createRequire to create a require function. + * In CJS, we use the standard loadModule. + */ +function loadModuleCompat(moduleName: string): T | undefined { + // Check if we're in ESM context (module doesn't exist) + if (typeof module === 'undefined') { + // ESM context - use createRequire to get a require function + try { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const require = createRequire(import.meta.url); + return require(moduleName) as T; + } catch { + return undefined; + } + } else { + // CJS context - use loadModule with module reference + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return loadModule(moduleName, module as any); + } +} + +/** + * Monkey-patch Remix's `createRequestHandler` from `@remix-run/server-runtime` + * which Remix Adapters (https://remix.run/docs/en/v1/api/remix) use underneath. + */ +export function instrumentServer(options?: { instrumentTracing?: boolean }): void { + const pkg = loadModuleCompat<{ + createRequestHandler: CreateRequestHandlerFunction; + }>('@remix-run/server-runtime'); + + if (!pkg) { + DEBUG_BUILD && debug.warn('Remix SDK was unable to require `@remix-run/server-runtime` package.'); + + return; + } + + fill(pkg, 'createRequestHandler', makeWrappedCreateRequestHandler(options)); +} diff --git a/packages/remix/src/server/sdk.ts b/packages/remix/src/server/sdk.ts index f191a336cfbb..1a8e41a3eecc 100644 --- a/packages/remix/src/server/sdk.ts +++ b/packages/remix/src/server/sdk.ts @@ -4,9 +4,9 @@ import type { NodeClient, NodeOptions } from '@sentry/node'; import { getDefaultIntegrations as getDefaultNodeIntegrations, init as nodeInit, isInitialized } from '@sentry/node'; import { DEBUG_BUILD } from '../utils/debug-build'; import type { RemixOptions } from '../utils/remixOptions'; -import { instrumentServer } from './instrumentServer'; import { httpIntegration } from './integrations/http'; import { remixIntegration } from './integrations/opentelemetry'; +import { instrumentServer } from './patchServerRuntime'; /** * Returns the default Remix integrations. diff --git a/packages/remix/test/config/vite.test.ts b/packages/remix/test/config/vite.test.ts index 2f3ccc5464ca..d85f995924d0 100644 --- a/packages/remix/test/config/vite.test.ts +++ b/packages/remix/test/config/vite.test.ts @@ -62,9 +62,7 @@ describe('sentryRemixVitePlugin', () => { fs.writeFileSync(path.join(routesDir, 'about.tsx'), '// about'); fs.writeFileSync(path.join(routesDir, 'users.$id.tsx'), '// users'); - const plugin = sentryRemixVitePlugin() as Plugin & { - configResolved: (config: ResolvedConfig) => void; - }; + const plugin = sentryRemixVitePlugin(); const mockConfig: Partial = { root: tempDir, @@ -83,9 +81,7 @@ describe('sentryRemixVitePlugin', () => { fs.writeFileSync(path.join(routesDir, 'index.tsx'), '// index'); fs.writeFileSync(path.join(routesDir, 'users.$id.tsx'), '// users'); - const plugin = sentryRemixVitePlugin() as Plugin & { - configResolved: (config: ResolvedConfig) => void; - }; + const plugin = sentryRemixVitePlugin(); const mockConfig: Partial = { root: tempDir, @@ -101,9 +97,7 @@ describe('sentryRemixVitePlugin', () => { }); it('should handle errors gracefully and set empty manifest', () => { - const plugin = sentryRemixVitePlugin({ appDirPath: '/nonexistent/path' }) as Plugin & { - configResolved: (config: ResolvedConfig) => void; - }; + const plugin = sentryRemixVitePlugin({ appDirPath: '/nonexistent/path' }); const mockConfig: Partial = { root: tempDir, @@ -124,9 +118,7 @@ describe('sentryRemixVitePlugin', () => { fs.mkdirSync(customRoutesDir, { recursive: true }); fs.writeFileSync(path.join(customRoutesDir, 'index.tsx'), '// index'); - const plugin = sentryRemixVitePlugin({ appDirPath: customAppDir }) as Plugin & { - configResolved: (config: ResolvedConfig) => void; - }; + const plugin = sentryRemixVitePlugin({ appDirPath: customAppDir }); const mockConfig: Partial = { root: tempDir, @@ -144,13 +136,7 @@ describe('sentryRemixVitePlugin', () => { it('should inject manifest into HTML with tag', () => { fs.writeFileSync(path.join(routesDir, 'index.tsx'), '// index'); - const plugin = sentryRemixVitePlugin() as Plugin & { - configResolved: (config: ResolvedConfig) => void; - transformIndexHtml: { - order: string; - handler: (html: string) => string; - }; - }; + const plugin = sentryRemixVitePlugin(); const mockConfig: Partial = { root: tempDir, diff --git a/packages/remix/test/integration/instrument.server.mjs b/packages/remix/test/integration/instrument.server.mjs index 5598d81af581..a7f0f1eb8474 100644 --- a/packages/remix/test/integration/instrument.server.mjs +++ b/packages/remix/test/integration/instrument.server.mjs @@ -1,7 +1,35 @@ import * as Sentry from '@sentry/remix'; +import { createTransport } from '@sentry/core'; + +// Global storage for captured envelopes - test helpers will read from this +globalThis.__SENTRY_TEST_ENVELOPES__ = globalThis.__SENTRY_TEST_ENVELOPES__ || []; + +// Create a custom transport that captures envelopes instead of sending them +function makeTestTransport(options) { + function makeRequest(request) { + // Parse the serialized envelope body the same way the test helper's parseEnvelope does + // The body is a serialized string with newline-separated JSON lines + const bodyStr = typeof request.body === 'string' ? request.body : new TextDecoder().decode(request.body); + // Split by newlines and parse each line as JSON - this matches test helper format + const envelope = bodyStr + .split('\n') + .filter(line => line.trim()) + .map(e => JSON.parse(e)); + globalThis.__SENTRY_TEST_ENVELOPES__.push(envelope); + + // Return a successful response + return Promise.resolve({ + statusCode: 200, + headers: {}, + }); + } + + return createTransport(options, makeRequest); +} Sentry.init({ dsn: 'https://public@dsn.ingest.sentry.io/1337', tracesSampleRate: 1, tracePropagationTargets: ['example.org'], + transport: makeTestTransport, }); diff --git a/packages/remix/test/integration/test/server/utils/helpers.ts b/packages/remix/test/integration/test/server/utils/helpers.ts index b338b783bac0..f042ce07b374 100644 --- a/packages/remix/test/integration/test/server/utils/helpers.ts +++ b/packages/remix/test/integration/test/server/utils/helpers.ts @@ -1,6 +1,7 @@ import * as http from 'http'; import { AddressInfo } from 'net'; import * as path from 'path'; +import { fileURLToPath } from 'url'; import { createRequestHandler } from '@remix-run/express'; import { debug } from '@sentry/core'; import type { EnvelopeItemType, Event, TransactionEvent } from '@sentry/core'; @@ -12,7 +13,6 @@ import express from 'express'; import type { Express } from 'express'; import type { HttpTerminator } from 'http-terminator'; import { createHttpTerminator } from 'http-terminator'; -import nock from 'nock'; type DataCollectorOptions = { // Optional custom URL @@ -107,15 +107,25 @@ class TestEnv { ? [options.envelopeType] : options.envelopeType || (['event'] as EnvelopeItemType[]); + // Use a ref to capture startIndex right before making the request + // The claimed indices mechanism and stopping at count will ensure parallel requests don't interfere + const startIndexRef = { startIndex: null as number | null }; const resProm = this.setupNock( options.count || 1, typeof options.endServer === 'undefined' ? true : options.endServer, envelopeTypeArray, + startIndexRef, ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - makeRequest(options.method, options.url || this.url, this._axiosConfig); - return resProm; + // Capture startIndex right before making the request + const globalEnvelopesArray = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + startIndexRef.startIndex = globalEnvelopesArray.length; + // Wait for the request to complete so Sentry has time to capture events + await makeRequest(options.method, options.url || this.url, this._axiosConfig); + // Flush Sentry events to ensure they're sent to the transport + await Sentry.flush(2000); + const result = await resProm; + return result; } /** @@ -166,51 +176,104 @@ class TestEnv { count: number, endServer: boolean, envelopeType: EnvelopeItemType[], + startIndexRef?: { startIndex: number | null }, ): Promise[][]> { - return new Promise(resolve => { + return new Promise((resolve, reject) => { const envelopes: Record[][] = []; - const mock = nock('https://dsn.ingest.sentry.io') - .persist() - .post('/api/1337/envelope/', body => { - const envelope = parseEnvelope(body); + let timeoutId: NodeJS.Timeout | null = null; + let checkInterval: NodeJS.Timeout | null = null; + + // Track the starting length to only count envelopes added after the request is made + // If startIndexRef is provided, use it (set right before request); otherwise capture now + let startIndex: number; + if (startIndexRef) { + // Wait for startIndex to be set (it will be set right before request is made) + const getStartIndex = () => { + if (startIndexRef.startIndex === null) { + const globalEnvelopesArray = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + return globalEnvelopesArray.length; + } + return startIndexRef.startIndex; + }; + startIndex = getStartIndex(); + } else { + const globalEnvelopesArray = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + startIndex = globalEnvelopesArray.length; + } - if (envelopeType.includes(envelope[1]?.type as EnvelopeItemType)) { - envelopes.push(envelope); - } else { - return false; + // Use a global Set to track which envelope indices have been claimed + // This prevents parallel setupNock instances from matching the same envelopes + if (!(globalThis as any).__SENTRY_TEST_CLAIMED_ENVELOPE_INDICES__) { + (globalThis as any).__SENTRY_TEST_CLAIMED_ENVELOPE_INDICES__ = new Set(); + } + const claimedIndices = (globalThis as any).__SENTRY_TEST_CLAIMED_ENVELOPE_INDICES__ as Set; + + // Poll for envelopes from the custom transport + const checkForEnvelopes = () => { + // If using ref, wait until it's set (set right before request is made) + if (startIndexRef && startIndexRef.startIndex === null) { + return; // Don't check yet, startIndex hasn't been set + } + + const globalEnvelopes = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + + // Use the ref value if provided, otherwise use the initial startIndex + const currentStartIndex = startIndexRef?.startIndex ?? startIndex; + + // Only check envelopes that were added after the request started + // Check each envelope by its index in the global array + // Stop once we have enough envelopes to avoid claiming more than needed + for (let i = currentStartIndex; i < globalEnvelopes.length && envelopes.length < count; i++) { + // Skip if this envelope index has already been claimed by another setupNock + if (claimedIndices.has(i)) { + continue; } - if (count === envelopes.length) { - nock.removeInterceptor(mock); - - if (endServer) { - // Cleaning nock only before the server is closed, - // not to break tests that use simultaneous requests to the server. - // Ex: Remix scope bleed tests. - nock.cleanAll(); - - // Abort all pending requests to nock to prevent hanging / flakes. - // See: https://github.com/nock/nock/issues/1118#issuecomment-544126948 - nock.abortPendingRequests(); - - this._closeServer() - .catch(e => { - debug.warn(e); - }) - .finally(() => { - resolve(envelopes); - }); - } else { - resolve(envelopes); + const envelope = globalEnvelopes[i]; + // The parsed envelope format is [header, itemHeader, itemPayload] + // where itemHeader has a 'type' property + const itemHeader = envelope[1]; + if (itemHeader && envelopeType.includes(itemHeader.type as EnvelopeItemType)) { + // Check if we've already added this envelope to our local array + if (!envelopes.includes(envelope)) { + // Claim this envelope index so other parallel setupNock instances don't match it + claimedIndices.add(i); + envelopes.push(envelope); + // Stop if we have enough envelopes + if (envelopes.length >= count) { + break; + } } } + } - return true; - }); + if (count === envelopes.length) { + if (timeoutId) clearTimeout(timeoutId); + if (checkInterval) clearInterval(checkInterval); + + if (endServer) { + this._closeServer() + .catch(e => { + debug.warn(e); + }) + .finally(() => { + resolve(envelopes); + }); + } else { + resolve(envelopes); + } + } + }; - mock - .query(true) // accept any query params - used for sentry_key param - .reply(200); + // Check immediately and then poll every 50ms + checkForEnvelopes(); + checkInterval = setInterval(checkForEnvelopes, 50); + + // Add a timeout to detect if Sentry requests never arrive + timeoutId = setTimeout(() => { + if (checkInterval) clearInterval(checkInterval); + reject(new Error(`Timeout waiting for Sentry envelopes. Expected ${count}, got ${envelopes.length}`)); + }, 5000); }); } @@ -224,25 +287,27 @@ class TestEnv { envelopeType: EnvelopeItemType | EnvelopeItemType[]; }): Promise { return new Promise(resolve => { - let reqCount = 0; + const envelopeTypeArray = + typeof options.envelopeType === 'string' ? [options.envelopeType] : options.envelopeType; - const mock = nock('https://dsn.ingest.sentry.io') - .persist() - .post('/api/1337/envelope/', body => { - const envelope = parseEnvelope(body); + // Track the starting length to only count envelopes added after this call + const globalEnvelopesArray = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + const startIndex = globalEnvelopesArray.length; - if (options.envelopeType.includes(envelope[1]?.type as EnvelopeItemType)) { + setTimeout(() => { + const globalEnvelopes = (globalThis as any).__SENTRY_TEST_ENVELOPES__ || []; + // Only count envelopes that were added after this call started + const newEnvelopes = globalEnvelopes.slice(startIndex); + let reqCount = 0; + + for (const envelope of newEnvelopes) { + // The parsed envelope format is [header, itemHeader, itemPayload] + // where itemHeader has a 'type' property + const itemHeader = envelope[1]; + if (itemHeader && envelopeTypeArray.includes(itemHeader.type as EnvelopeItemType)) { reqCount++; - return true; } - - return false; - }); - - setTimeout(() => { - nock.removeInterceptor(mock); - - nock.cleanAll(); + } // eslint-disable-next-line @typescript-eslint/no-floating-promises this._closeServer().then(() => { @@ -266,20 +331,36 @@ export class RemixTestEnv extends TestEnv { } public static async init(): Promise { - let serverPort; - const server = await new Promise(async resolve => { - const app = express(); + const app = express(); - // Vite builds to build/server/index.js instead of build/index.js - app.all('*', createRequestHandler({ build: await import('../../../build/server/index.js') })); + // Import the build module dynamically + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const buildPath = path.resolve(__dirname, '../../../build/server/index.js'); + const build = await import(buildPath); + const handler = createRequestHandler({ build }); + + app.all('*', async (req, res, next) => { + try { + await handler(req, res); + } catch (e) { + next(e); + } + }); + + return new Promise((resolve, reject) => { const server = app.listen(0, () => { - serverPort = (server.address() as AddressInfo).port; - resolve(server); + const address = server.address(); + if (address && typeof address === 'object') { + resolve(new RemixTestEnv(server, `http://localhost:${address.port}`)); + } else { + server.close(); + reject(new Error('Failed to start server: could not determine port')); + } }); - }); - return new RemixTestEnv(server, `http://localhost:${serverPort}`); + server.on('error', reject); + }); } } diff --git a/packages/replay-canvas/package.json b/packages/replay-canvas/package.json index 30250df23ed1..6df2bf70e65c 100644 --- a/packages/replay-canvas/package.json +++ b/packages/replay-canvas/package.json @@ -31,8 +31,8 @@ "sideEffects": false, "scripts": { "build": "run-p build:transpile build:types build:bundle", - "build:transpile": "rollup -c rollup.npm.config.mjs", - "build:bundle": "rollup -c rollup.bundle.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", + "build:bundle": "rolldown -c rollup.bundle.config.mjs", "build:dev": "run-p build:transpile build:types", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", diff --git a/packages/replay-internal/package.json b/packages/replay-internal/package.json index 36c9dcac1550..690701a67d39 100644 --- a/packages/replay-internal/package.json +++ b/packages/replay-internal/package.json @@ -44,8 +44,8 @@ }, "scripts": { "build": "run-p build:transpile build:types build:bundle", - "build:transpile": "rollup -c rollup.npm.config.mjs", - "build:bundle": "rollup -c rollup.bundle.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", + "build:bundle": "rolldown -c rollup.bundle.config.mjs", "build:dev": "run-p build:transpile build:types", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", diff --git a/packages/replay-internal/rollup.npm.config.mjs b/packages/replay-internal/rollup.npm.config.mjs index f45b4f21b72b..1c5534c34d1e 100644 --- a/packages/replay-internal/rollup.npm.config.mjs +++ b/packages/replay-internal/rollup.npm.config.mjs @@ -1,5 +1,3 @@ -/* eslint-disable import/no-named-as-default */ -import nodeResolve from '@rollup/plugin-node-resolve'; import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; export default makeNPMConfigVariants( @@ -23,10 +21,12 @@ export default makeNPMConfigVariants( input: ['./src/worker-bundler.ts'], output: { file: `./build/npm/${format}/worker-bundler.js`, - strict: false, format, + minify: true, }, treeshake: false, - plugins: [nodeResolve()], + transform: { + target: 'es2020', + }, })), ); diff --git a/packages/replay-worker/package.json b/packages/replay-worker/package.json index 160dc315fcef..988a9f01d76d 100644 --- a/packages/replay-worker/package.json +++ b/packages/replay-worker/package.json @@ -36,8 +36,8 @@ "private": true, "scripts": { "build": "run-p build:transpile build:types", - "build:transpile": "rollup -c rollup.worker.config.mjs", - "build:examples": "rollup -c rollup.examples.config.mjs", + "build:transpile": "rolldown -c rollup.worker.config.mjs", + "build:examples": "rolldown -c rollup.examples.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", diff --git a/packages/replay-worker/rollup.examples.config.mjs b/packages/replay-worker/rollup.examples.config.mjs index cbaacbfcb245..207036538f12 100644 --- a/packages/replay-worker/rollup.examples.config.mjs +++ b/packages/replay-worker/rollup.examples.config.mjs @@ -1,45 +1,24 @@ -import commonjs from '@rollup/plugin-commonjs'; -import resolve from '@rollup/plugin-node-resolve'; -import terser from '@rollup/plugin-terser'; -import typescript from '@rollup/plugin-typescript'; -import { defineConfig } from 'rollup'; -import { makeLicensePlugin } from '../../dev-packages/rollup-utils/plugins/index.mjs'; - -const licensePlugin = makeLicensePlugin('Sentry Replay Worker'); +import { treeShakePreset } from '@sentry-internal/rollup-utils'; +import { defineConfig } from 'rolldown'; const config = defineConfig([ { input: ['./src/_worker.ts'], + tsconfig: './tsconfig.build.json', output: { file: './examples/worker.js', format: 'esm', }, - treeshake: 'smallest', - plugins: [ - commonjs(), - typescript({ tsconfig: './tsconfig.json', inlineSourceMap: false, sourceMap: false, inlineSources: false }), - resolve(), - licensePlugin, - ], + treeshake: treeShakePreset('smallest'), }, { input: ['./src/_worker.ts'], + tsconfig: './tsconfig.build.json', output: { file: './examples/worker.min.js', format: 'esm', }, - treeshake: 'smallest', - plugins: [ - commonjs(), - typescript({ tsconfig: './tsconfig.json', inlineSourceMap: false, sourceMap: false, inlineSources: false }), - resolve(), - terser({ - mangle: { - module: true, - }, - }), - licensePlugin, - ], + treeshake: treeShakePreset('smallest'), }, ]); diff --git a/packages/replay-worker/rollup.worker.config.mjs b/packages/replay-worker/rollup.worker.config.mjs index 556994570335..6e8bff38a354 100644 --- a/packages/replay-worker/rollup.worker.config.mjs +++ b/packages/replay-worker/rollup.worker.config.mjs @@ -1,45 +1,36 @@ // inspired by https://justinribeiro.com/chronicle/2020/07/17/building-module-web-workers-for-cross-browser-compatibility-with-rollup/ -import commonjs from '@rollup/plugin-commonjs'; -import resolve from '@rollup/plugin-node-resolve'; -import terser from '@rollup/plugin-terser'; -import typescript from '@rollup/plugin-typescript'; -import { defineConfig } from 'rollup'; +import { treeShakePreset } from '@sentry-internal/rollup-utils'; +import { defineConfig } from 'rolldown'; const config = defineConfig([ { input: ['./src/index.ts'], - treeshake: 'smallest', + treeshake: treeShakePreset('smallest'), + tsconfig: './tsconfig.build.json', output: { dir: './build/esm', format: 'esm', + minify: true, + }, + transform: { + target: 'es2020', }, external: ['./worker'], - plugins: [ - typescript({ tsconfig: './tsconfig.json', inlineSourceMap: false, sourceMap: false, inlineSources: false }), - terser({ - mangle: { - module: true, - }, - }), - ], }, { input: ['./src/_worker.ts'], + tsconfig: './tsconfig.build.json', output: { file: './build/esm/worker.ts', format: 'esm', + minify: true, + }, + treeshake: treeShakePreset('smallest'), + transform: { + target: 'es2020', }, - treeshake: 'smallest', plugins: [ - commonjs(), - typescript({ tsconfig: './tsconfig.json', inlineSourceMap: false, sourceMap: false, inlineSources: false }), - resolve(), - terser({ - mangle: { - module: true, - }, - }), { name: 'worker-to-string', renderChunk(code) { @@ -50,21 +41,16 @@ const config = defineConfig([ }, { input: ['./src/_worker.ts'], + tsconfig: './tsconfig.build.json', output: { file: './build/esm/worker-bundler.js', format: 'esm', + minify: true, + }, + treeshake: treeShakePreset('smallest'), + transform: { + target: 'es2020', }, - treeshake: 'smallest', - plugins: [ - commonjs(), - typescript({ tsconfig: './tsconfig.json', inlineSourceMap: false, sourceMap: false, inlineSources: false }), - resolve(), - terser({ - mangle: { - module: true, - }, - }), - ], }, ]); diff --git a/packages/replay-worker/tsconfig.build.json b/packages/replay-worker/tsconfig.build.json new file mode 100644 index 000000000000..24cce469ccc3 --- /dev/null +++ b/packages/replay-worker/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "esnext", + "lib": ["webworker", "scripthost"], + "esModuleInterop": true, + "target": "es2020", + "strictPropertyInitialization": false + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/replay-worker/tsconfig.json b/packages/replay-worker/tsconfig.json index 24cce469ccc3..c26c04b81d46 100644 --- a/packages/replay-worker/tsconfig.json +++ b/packages/replay-worker/tsconfig.json @@ -5,7 +5,10 @@ "lib": ["webworker", "scripthost"], "esModuleInterop": true, "target": "es2020", - "strictPropertyInitialization": false + "strictPropertyInitialization": false, + "inlineSourceMap": false, + "sourceMap": false, + "inlineSources": false }, "include": ["src/**/*.ts"] } diff --git a/packages/solid/package.json b/packages/solid/package.json index 037a384276d5..933129488d1f 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -84,13 +84,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:routers", "build:types:core": "tsc -p tsconfig.types.json", "build:types:routers": "tsc -p tsconfig.routers-types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts && madge --circular src/solidrouter.ts && madge --circular src/tanstackrouter.ts", diff --git a/packages/solidstart/package.json b/packages/solidstart/package.json index ea12240d1a3e..bf64e2c4e3e8 100644 --- a/packages/solidstart/package.json +++ b/packages/solidstart/package.json @@ -85,13 +85,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:subexports", "build:types:core": "tsc -p tsconfig.types.json", "build:types:subexports": "tsc -p tsconfig.subexports-types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts && madge --circular src/solidrouter.client.ts && madge --circular src/solidrouter.server.ts && madge --circular src/solidrouter.ts", diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 172a0d96e5f7..b701ff1f8f0b 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -55,13 +55,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 45dbceaa642f..7eb0c2f4ca36 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -67,11 +67,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts", diff --git a/packages/tanstackstart-react/package.json b/packages/tanstackstart-react/package.json index 0cf9680e38d0..e431cd4c7896 100644 --- a/packages/tanstackstart-react/package.json +++ b/packages/tanstackstart-react/package.json @@ -64,7 +64,7 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", diff --git a/packages/tanstackstart/package.json b/packages/tanstackstart/package.json index 049565b6deec..6d4fc549abfd 100644 --- a/packages/tanstackstart/package.json +++ b/packages/tanstackstart/package.json @@ -42,7 +42,7 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", diff --git a/packages/types/package.json b/packages/types/package.json index 8191ca53f4a2..f97cac5418ff 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -41,13 +41,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "clean": "rimraf build sentry-types-*.tgz", diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index 7e1392e6d17e..4554ee5e8152 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -53,13 +53,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "yarn build", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "yarn build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", diff --git a/packages/vercel-edge/rollup.npm.config.mjs b/packages/vercel-edge/rollup.npm.config.mjs index ae01f43703d0..c0daf542b1e7 100644 --- a/packages/vercel-edge/rollup.npm.config.mjs +++ b/packages/vercel-edge/rollup.npm.config.mjs @@ -1,5 +1,5 @@ -import replace from '@rollup/plugin-replace'; -import { makeBaseNPMConfig, makeNPMConfigVariants, plugins } from '@sentry-internal/rollup-utils'; +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; +import { replacePlugin } from 'rolldown/plugins'; export default makeNPMConfigVariants( makeBaseNPMConfig({ @@ -11,14 +11,14 @@ export default makeNPMConfigVariants( preserveModules: false, }, plugins: [ - plugins.makeCommonJSPlugin({ transformMixedEsModules: true }), // Needed because various modules in the OTEL toolchain use CJS (require-in-the-middle, shimmer, etc..) - plugins.makeJsonPlugin(), // Needed because `require-in-the-middle` imports json via require - replace({ - preventAssignment: true, - values: { + replacePlugin( + { 'process.argv0': JSON.stringify(''), // needed because otel relies on process.argv0 for the default service name, but that api is not available in the edge runtime. }, - }), + { + preventAssignment: true, + }, + ), { // This plugin is needed because otel imports `performance` from `perf_hooks` and also uses it via the `performance` global. // It also imports `inspect` and `promisify` from node's `util` which are not available in the edge runtime so we need to define a polyfill. diff --git a/packages/vue/package.json b/packages/vue/package.json index 7ebb1584d1f4..6fa2c967a303 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -74,14 +74,14 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "run-p build:transpile build:types", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:router build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:router": "tsc -p tsconfig.router-types.json", "build:types:downlevel": "yarn downlevel-dts build/types build/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:types:watch", "build:dev:watch": "run-p build:transpile:watch build:types:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts && madge --circular src/tanstackrouter.ts", diff --git a/packages/wasm/package.json b/packages/wasm/package.json index f2beb1f6cff7..922ec971fd8f 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -44,16 +44,16 @@ }, "scripts": { "build": "run-p build:transpile build:bundle build:types", - "build:bundle": "rollup --config rollup.bundle.config.mjs", + "build:bundle": "rolldown --config rollup.bundle.config.mjs", "build:dev": "run-p build:transpile build:types", - "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs", "build:types": "run-s build:types:core build:types:downlevel", "build:types:core": "tsc -p tsconfig.types.json", "build:types:downlevel": "yarn downlevel-dts build/npm/types build/npm/types-ts3.8 --to ts3.8", "build:watch": "run-p build:transpile:watch build:bundle:watch build:types:watch", - "build:bundle:watch": "rollup --config rollup.bundle.config.mjs --watch", + "build:bundle:watch": "rolldown --config rollup.bundle.config.mjs --watch", "build:dev:watch": "run-p build:transpile:watch build:types:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "test": "vitest run", diff --git a/yarn.lock b/yarn.lock index 6f4147a212bd..4463b8f1c419 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3734,6 +3734,14 @@ "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" +"@emnapi/core@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" + integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + "@emnapi/runtime@^1.1.0", "@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.7.0": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" @@ -3741,6 +3749,13 @@ dependencies: tslib "^2.4.0" +"@emnapi/runtime@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" + integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== + dependencies: + tslib "^2.4.0" + "@emnapi/wasi-threads@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" @@ -5962,6 +5977,15 @@ "@emnapi/runtime" "^1.4.3" "@tybys/wasm-util" "^0.10.0" +"@napi-rs/wasm-runtime@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz#c3705ab549d176b8dc5172723d6156c3dc426af2" + integrity sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A== + dependencies: + "@emnapi/core" "^1.7.1" + "@emnapi/runtime" "^1.7.1" + "@tybys/wasm-util" "^0.10.1" + "@nestjs/common@^10.0.0": version "10.4.15" resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-10.4.15.tgz#27c291466d9100eb86fdbe6f7bbb4d1a6ad55f70" @@ -7335,6 +7359,11 @@ resolved "https://registry.yarnpkg.com/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.76.0.tgz#3dbef82283f871c9cb59325c9daf4f740d11a6e9" integrity sha512-0jLzzmnu8/mqNhKBnNS2lFUbPEzRdj5ReiZwHGHpjma0+ullmmwP2AqSEqx3ssHDK9CpcEMdKOK2LsbCfhHKIA== +"@oxc-project/types@=0.108.0": + version "0.108.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.108.0.tgz#3a3683f38f30655e7ac8621ce1c8d3f919c7f699" + integrity sha512-7lf13b2IA/kZO6xgnIZA88sq3vwrxWk+2vxf6cc+omwYCRTiA5e63Beqf3fz/v8jEviChWWmFYBwzfSeyrsj7Q== + "@oxc-project/types@^0.76.0": version "0.76.0" resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.76.0.tgz#89ae800d774ccb344278fc17ab6c15348da8b995" @@ -7818,6 +7847,78 @@ dependencies: web-streams-polyfill "^3.1.1" +"@rolldown/binding-android-arm64@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.60.tgz#0fa61b39f0b94c9fa50f93365e73ad3db2bcdb5a" + integrity sha512-hOW6iQXtpG4uCW1zGK56+KhEXGttSkTp2ykncW/nkOIF/jOKTqbM944Q73HVeMXP1mPRvE2cZwNp3xeLIeyIGQ== + +"@rolldown/binding-darwin-arm64@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.60.tgz#99925b4522b7c174680bd1e1091f325ffec141a8" + integrity sha512-vyDA4HXY2mP8PPtl5UE17uGPxUNG4m1wkfa3kAkR8JWrFbarV97UmLq22IWrNhtBPa89xqerzLK8KoVmz5JqCQ== + +"@rolldown/binding-darwin-x64@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.60.tgz#f5539bee7a6f6123129ccc84b4dd06a0b5c7831c" + integrity sha512-WnxyqxAKP2BsxouwGY/RCF5UFw/LA4QOHhJ7VEl+UCelHokiwqNHRbryLAyRy3TE1FZ5eae+vAFcaetAu/kWLw== + +"@rolldown/binding-freebsd-x64@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.60.tgz#22a6518f02c5803777719351c64a0409deb9c5c3" + integrity sha512-JtyWJ+zXOHof5gOUYwdTWI2kL6b8q9eNwqB/oD4mfUFaC/COEB2+47JMhcq78dey9Ahmec3DZKRDZPRh9hNAMQ== + +"@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.60.tgz#78ebaac7e92b990b0a07af3c281fcfeafa2c6571" + integrity sha512-LrMoKqpHx+kCaNSk84iSBd4yVOymLIbxJQtvFjDN2CjQraownR+IXcwYDblFcj9ivmS54T3vCboXBbm3s1zbPQ== + +"@rolldown/binding-linux-arm64-gnu@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.60.tgz#785f7e085e1094db3ba4008988c879568a17b951" + integrity sha512-sqI+Vdx1gmXJMsXN3Fsewm3wlt7RHvRs1uysSp//NLsCoh9ZFEUr4ZzGhWKOg6Rvf+njNu/vCsz96x7wssLejQ== + +"@rolldown/binding-linux-arm64-musl@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.60.tgz#60ce089126bf69f2fe8cc3c246e643f229943e0d" + integrity sha512-8xlqGLDtTP8sBfYwneTDu8+PRm5reNEHAuI/+6WPy9y350ls0KTFd3EJCOWEXWGW0F35ko9Fn9azmurBTjqOrQ== + +"@rolldown/binding-linux-x64-gnu@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.60.tgz#4694794ed9ba1bacb473727c748a78474f93e427" + integrity sha512-iR4nhVouVZK1CiGGGyz+prF5Lw9Lmz30Rl36Hajex+dFVFiegka604zBwzTp5Tl0BZnr50ztnVJ30tGrBhDr8Q== + +"@rolldown/binding-linux-x64-musl@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.60.tgz#23a5a7c9569018ff5fc8941f1e11fed7e260aec6" + integrity sha512-HbfNcqNeqxFjSMf1Kpe8itr2e2lr0Bm6HltD2qXtfU91bSSikVs9EWsa1ThshQ1v2ZvxXckGjlVLtah6IoslPg== + +"@rolldown/binding-openharmony-arm64@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.60.tgz#cfd463dddbb2469de3520d667f1d30671f1669fa" + integrity sha512-BiiamFcgTJ+ZFOUIMO9AHXUo9WXvHVwGfSrJ+Sv0AsTd2w3VN7dJGiH3WRcxKFetljJHWvGbM4fdpY5lf6RIvw== + +"@rolldown/binding-wasm32-wasi@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.60.tgz#3f7b2941d2112c340a769e46c2640fa4369ddc43" + integrity sha512-6roXGbHMdR2ucnxXuwbmQvk8tuYl3VGu0yv13KxspyKBxxBd4RS6iykzLD6mX2gMUHhfX8SVWz7n/62gfyKHow== + dependencies: + "@napi-rs/wasm-runtime" "^1.1.1" + +"@rolldown/binding-win32-arm64-msvc@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.60.tgz#de5e93cf5f197d0cecff1f2fc5ec0e1f5494c30a" + integrity sha512-JBOm8/DC/CKnHyMHoJFdvzVHxUixid4dGkiTqGflxOxO43uSJMpl77pSPXvzwZ/VXwqblU2V0/PanyCBcRLowQ== + +"@rolldown/binding-win32-x64-msvc@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.60.tgz#5854668a4cc2a84c43575aa6cd5986001571952e" + integrity sha512-MKF0B823Efp+Ot8KsbwIuGhKH58pf+2rSM6VcqyNMlNBHheOM0Gf7JmEu+toc1jgN6fqjH7Et+8hAzsLVkIGfA== + +"@rolldown/pluginutils@1.0.0-beta.60": + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.60.tgz#60dbf2a10c1c4f2faa58798922482bd5eb628c45" + integrity sha512-Jz4aqXRPVtqkH1E3jRDzLO5cgN5JwW+WG0wXGE4NiJd25nougv/AHzxmKCzmVQUYnxLmTM0M4wrZp+LlC2FKLg== + "@rolldown/pluginutils@^1.0.0-beta.9": version "1.0.0-rc.4" resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz#267b477af268a082861c861e47f6a787dff59cc4" @@ -7846,7 +7947,7 @@ magic-string "^0.30.3" picomatch "^4.0.2" -"@rollup/plugin-commonjs@^25.0.4", "@rollup/plugin-commonjs@^25.0.7": +"@rollup/plugin-commonjs@^25.0.4": version "25.0.8" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz#c77e608ab112a666b7f2a6bea625c73224f7dd34" integrity sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A== @@ -7871,13 +7972,6 @@ magic-string "^0.30.3" picomatch "^4.0.2" -"@rollup/plugin-esm-shim@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@rollup/plugin-esm-shim/-/plugin-esm-shim-0.1.5.tgz#74464e9a8a7e664557aae65592c8a3e317802220" - integrity sha512-xnIjDm/0EbqAw0/rR1UE7eAo9db0ftGPqT8RUCFtkFxtCuspbbmj+wutoyxm32jBytyO3SgkxSG17OR893fV7A== - dependencies: - magic-string "^0.30.3" - "@rollup/plugin-inject@^5.0.5": version "5.0.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" @@ -7936,7 +8030,7 @@ is-module "^1.0.0" resolve "^1.22.1" -"@rollup/plugin-replace@^5.0.2", "@rollup/plugin-replace@^5.0.5": +"@rollup/plugin-replace@^5.0.2": version "5.0.7" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz#150c9ee9db8031d9e4580a61a0edeaaed3d37687" integrity sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ== @@ -7952,14 +8046,6 @@ "@rollup/pluginutils" "^5.0.1" magic-string "^0.30.3" -"@rollup/plugin-sucrase@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-sucrase/-/plugin-sucrase-5.0.2.tgz#f8b8b54ad789a47fa882b968a76cede0194eea6e" - integrity sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA== - dependencies: - "@rollup/pluginutils" "^5.0.1" - sucrase "^3.27.0" - "@rollup/plugin-terser@^0.4.4": version "0.4.4" resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" @@ -7969,14 +8055,6 @@ smob "^1.0.0" terser "^5.17.4" -"@rollup/plugin-typescript@^11.1.6": - version "11.1.6" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz#724237d5ec12609ec01429f619d2a3e7d4d1b22b" - integrity sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA== - dependencies: - "@rollup/pluginutils" "^5.1.0" - resolve "^1.22.1" - "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" @@ -9958,7 +10036,7 @@ "@tufjs/canonical-json" "2.0.0" minimatch "^10.1.1" -"@tybys/wasm-util@^0.10.0": +"@tybys/wasm-util@^0.10.0", "@tybys/wasm-util@^0.10.1": version "0.10.1" resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== @@ -12138,7 +12216,7 @@ ansis@^4.1.0: resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.2.0.tgz#2e6e61c46b11726ac67f78785385618b9e658780" integrity sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig== -any-promise@^1.0.0, any-promise@^1.1.0: +any-promise@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -12300,11 +12378,6 @@ array-equal@^1.0.0: resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= -array-find-index@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -14346,6 +14419,11 @@ citty@^0.2.0: resolved "https://registry.yarnpkg.com/citty/-/citty-0.2.0.tgz#2426b145c4bf2a2c5c33bd66a634dfe3d5ea67ea" integrity sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA== +cjs-module-lexer@^1.2.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" + integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== + cjs-module-lexer@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca" @@ -14700,7 +14778,7 @@ commander@^2.20.0, commander@^2.6.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.0, commander@^4.1.1: +commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== @@ -14720,11 +14798,6 @@ comment-parser@1.4.1, comment-parser@^1.1.2: resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== -commenting@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/commenting/-/commenting-1.1.0.tgz#fae14345c6437b8554f30bc6aa6c1e1633033590" - integrity sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -17947,11 +18020,6 @@ estree-walker@2.0.2, estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" @@ -19336,7 +19404,7 @@ glob@8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@^10.0.0, glob@^10.2.2, glob@^10.3.10, glob@^10.3.4, glob@^10.3.7, glob@^10.4.1, glob@^10.5.0: +glob@^10.0.0, glob@^10.2.2, glob@^10.3.4, glob@^10.3.7, glob@^10.4.1, glob@^10.5.0: version "10.5.0" resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== @@ -19380,7 +19448,7 @@ glob@^5.0.10: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.4, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3, glob@~7.2.0: +glob@^7.0.0, glob@^7.0.4, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -20429,7 +20497,17 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@^2.0.0, import-in-the-middle@^2.0.6: +import-in-the-middle@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.1.tgz#8d1aa2db18374f2c811de2aa4756ebd6e9859243" + integrity sha512-bruMpJ7xz+9jwGzrwEhWgvRrlKRYCRDBrfU+ur3FcasYXLJDxTruJ//8g2Noj+QFyRBeqbpj8Bhn4Fbw6HjvhA== + dependencies: + acorn "^8.14.0" + acorn-import-attributes "^1.9.5" + cjs-module-lexer "^1.2.2" + module-details-from-path "^1.0.3" + +import-in-the-middle@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz#1972337bfe020d05f6b5e020c13334567436324f" integrity sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw== @@ -21487,15 +21565,6 @@ jiti@^2.0.0, jiti@^2.1.2, jiti@^2.4.2, jiti@^2.6.1: resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== -js-cleanup@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/js-cleanup/-/js-cleanup-1.2.0.tgz#8dbc65954b1d38b255f1e8cf02cd17b3f7a053f9" - integrity sha512-JeDD0yiiSt80fXzAVa/crrS0JDPQljyBG/RpOtaSbyDq03VHa9szJWMaWOYU/bcTn412uMN2MxApXq8v79cUiQ== - dependencies: - magic-string "^0.25.7" - perf-regexes "^1.0.1" - skip-regex "^1.0.2" - js-md4@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/js-md4/-/js-md4-0.3.2.tgz#cd3b3dc045b0c404556c81ddb5756c23e59d7cf5" @@ -22527,10 +22596,10 @@ lodash.uniq@^4.2.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.21: - version "4.17.23" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" - integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== +lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^2.2.0: version "2.2.0" @@ -22736,7 +22805,14 @@ magic-string@^0.26.0, magic-string@^0.26.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.0, magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.21, magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5, magic-string@^0.30.8, magic-string@~0.30.0: +magic-string@^0.30.0, magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5, magic-string@^0.30.8: + version "0.30.19" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.19.tgz#cebe9f104e565602e5d2098c5f2e79a77cc86da9" + integrity sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + +magic-string@^0.30.21: version "0.30.21" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== @@ -23916,7 +23992,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^3.0.1, mkdirp@~3.0.0: +mkdirp@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== @@ -23988,11 +24064,6 @@ module-lookup-amd@^9.0.3: requirejs "^2.3.7" requirejs-config-file "^4.0.0" -moment@~2.30.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - mongodb-connection-string-url@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" @@ -24222,15 +24293,6 @@ mysql@^2.18.1: safe-buffer "5.1.2" sqlstring "2.3.1" -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - named-placeholders@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.3.tgz#df595799a36654da55dda6152ba7a137ad1d9351" @@ -25208,7 +25270,7 @@ nypm@^0.6.0, nypm@^0.6.2, nypm@^0.6.5: pathe "^2.0.3" tinyexec "^1.0.2" -object-assign@4.1.1, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.1.1, object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -25787,11 +25849,6 @@ package-json-from-dist@^1.0.0: resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== -package-name-regex@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/package-name-regex/-/package-name-regex-2.0.6.tgz#b54bcb04d950e38082b7bb38fa558e01c1679334" - integrity sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA== - pacote@13.6.2: version "13.6.2" resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" @@ -26156,11 +26213,6 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -perf-regexes@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/perf-regexes/-/perf-regexes-1.0.1.tgz#6da1d62f5a94bf9353a0451bccacf69068b75d0b" - integrity sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng== - perfect-debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" @@ -26352,11 +26404,6 @@ pino@9.9.4: sonic-boom "^4.0.1" thread-stream "^3.0.0" -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - piscina@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.2.0.tgz#f5a1dde0c05567775690cccefe59d9223924d154" @@ -28583,13 +28630,27 @@ roarr@^7.0.4: safe-stable-stringify "^2.4.1" semver-compare "^1.0.0" -rollup-plugin-cleanup@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.2.1.tgz#8cbc92ecf58babd7c210051929797f137bbf777c" - integrity sha512-zuv8EhoO3TpnrU8MX8W7YxSbO4gmOR0ny06Lm3nkFfq0IVKdBUtHwhVzY1OAJyNCIAdLiyPnOrU0KnO0Fri1GQ== +rolldown@1.0.0-beta.60: + version "1.0.0-beta.60" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-beta.60.tgz#41463f62fdb085679cc08db49bfcc88bfd493ebf" + integrity sha512-YYgpv7MiTp9LdLj1fzGzCtij8Yi2OKEc3HQtfbIxW4yuSgpQz9518I69U72T5ErPA/ATOXqlcisiLrWy+5V9YA== dependencies: - js-cleanup "^1.2.0" - rollup-pluginutils "^2.8.2" + "@oxc-project/types" "=0.108.0" + "@rolldown/pluginutils" "1.0.0-beta.60" + optionalDependencies: + "@rolldown/binding-android-arm64" "1.0.0-beta.60" + "@rolldown/binding-darwin-arm64" "1.0.0-beta.60" + "@rolldown/binding-darwin-x64" "1.0.0-beta.60" + "@rolldown/binding-freebsd-x64" "1.0.0-beta.60" + "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-beta.60" + "@rolldown/binding-linux-arm64-gnu" "1.0.0-beta.60" + "@rolldown/binding-linux-arm64-musl" "1.0.0-beta.60" + "@rolldown/binding-linux-x64-gnu" "1.0.0-beta.60" + "@rolldown/binding-linux-x64-musl" "1.0.0-beta.60" + "@rolldown/binding-openharmony-arm64" "1.0.0-beta.60" + "@rolldown/binding-wasm32-wasi" "1.0.0-beta.60" + "@rolldown/binding-win32-arm64-msvc" "1.0.0-beta.60" + "@rolldown/binding-win32-x64-msvc" "1.0.0-beta.60" rollup-plugin-dts@^6.0.0: version "6.1.1" @@ -28600,21 +28661,6 @@ rollup-plugin-dts@^6.0.0: optionalDependencies: "@babel/code-frame" "^7.24.2" -rollup-plugin-license@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.3.1.tgz#73b68e33477524198d6f3f9befc905f59bf37c53" - integrity sha512-lwZ/J8QgSnP0unVOH2FQuOBkeiyp0EBvrbYdNU33lOaYD8xP9Zoki+PGoWMD31EUq8Q07GGocSABTYlWMKkwuw== - dependencies: - commenting "~1.1.0" - glob "~7.2.0" - lodash "~4.17.21" - magic-string "~0.30.0" - mkdirp "~3.0.0" - moment "~2.30.1" - package-name-regex "~2.0.6" - spdx-expression-validate "~2.0.0" - spdx-satisfies "~5.0.1" - rollup-plugin-sourcemaps@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" @@ -28633,13 +28679,6 @@ rollup-plugin-visualizer@^6.0.3, rollup-plugin-visualizer@^6.0.5: source-map "^0.7.4" yargs "^17.5.1" -rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - rollup@^2.70.0: version "2.79.2" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090" @@ -29506,11 +29545,6 @@ size-limit@~11.1.6: picocolors "^1.1.0" tinyglobby "^0.2.7" -skip-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/skip-regex/-/skip-regex-1.0.2.tgz#ac655d77e7c771ac2b9f37585fea37bff56ad65b" - integrity sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA== - slash@3.0.0, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -29828,15 +29862,6 @@ spawn-args@^0.2.0: resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb" integrity sha1-+30L0dcP1DFr2ePew4nmX51jYbs= -spdx-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7" - integrity sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A== - dependencies: - array-find-index "^1.0.2" - spdx-expression-parse "^3.0.0" - spdx-ranges "^2.0.0" - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -29866,32 +29891,11 @@ spdx-expression-parse@^4.0.0: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" -spdx-expression-validate@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz#25c9408e1c63fad94fff5517bb7101ffcd23350b" - integrity sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids@^3.0.0: version "3.0.7" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== -spdx-ranges@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.1.1.tgz#87573927ba51e92b3f4550ab60bfc83dd07bac20" - integrity sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA== - -spdx-satisfies@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz#9feeb2524686c08e5f7933c16248d4fdf07ed6a6" - integrity sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw== - dependencies: - spdx-compare "^1.0.0" - spdx-expression-parse "^3.0.0" - spdx-ranges "^2.0.0" - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -30443,18 +30447,6 @@ stylus@0.59.0, stylus@^0.59.0: sax "~1.2.4" source-map "^0.7.3" -sucrase@^3.27.0, sucrase@^3.35.0, sucrase@getsentry/sucrase#es2020-polyfills: - version "3.36.0" - resolved "https://codeload.github.com/getsentry/sucrase/tar.gz/fd682f6129e507c00bb4e6319cc5d6b767e36061" - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "^10.3.10" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - suf-log@^2.5.3: version "2.5.3" resolved "https://registry.yarnpkg.com/suf-log/-/suf-log-2.5.3.tgz#0919a7fceea532a99b578c97814c4e335b2d64d1" @@ -30856,20 +30848,6 @@ text-table@0.2.0, text-table@^0.2.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - thread-stream@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-3.1.0.tgz#4b2ef252a7c215064507d4ef70c05a5e2d34c4f1" @@ -31217,11 +31195,6 @@ ts-graphviz@^2.1.2: "@ts-graphviz/common" "^2.1.5" "@ts-graphviz/core" "^2.0.7" -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - ts-node@10.9.2: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" From 0b432f0f44882aecd2f51fc3eab25abb41cacde8 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Thu, 22 Jan 2026 09:27:31 -0500 Subject: [PATCH 2/6] chore: upgrade to rolldown rc1 --- package.json | 2 +- yarn.lock | 178 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index c3c9e757775e..a2c60dd59425 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "prettier": "^3.8.1", "prettier-plugin-astro": "^0.14.1", "rimraf": "^5.0.10", - "rolldown": "1.0.0-beta.60", + "rolldown": "1.0.0-rc.1", "size-limit": "~11.1.6", "ts-node": "10.9.2", "typescript": "~5.8.0", diff --git a/yarn.lock b/yarn.lock index 4463b8f1c419..84aadb86ba72 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7359,10 +7359,10 @@ resolved "https://registry.yarnpkg.com/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.76.0.tgz#3dbef82283f871c9cb59325c9daf4f740d11a6e9" integrity sha512-0jLzzmnu8/mqNhKBnNS2lFUbPEzRdj5ReiZwHGHpjma0+ullmmwP2AqSEqx3ssHDK9CpcEMdKOK2LsbCfhHKIA== -"@oxc-project/types@=0.108.0": - version "0.108.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.108.0.tgz#3a3683f38f30655e7ac8621ce1c8d3f919c7f699" - integrity sha512-7lf13b2IA/kZO6xgnIZA88sq3vwrxWk+2vxf6cc+omwYCRTiA5e63Beqf3fz/v8jEviChWWmFYBwzfSeyrsj7Q== +"@oxc-project/types@=0.110.0": + version "0.110.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.110.0.tgz#931b305539e5b2b8ac03f8741c5d1342e703d890" + integrity sha512-6Ct21OIlrEnFEJk5LT4e63pk3btsI6/TusD/GStLi7wYlGJNOl1GI9qvXAnRAxQU9zqA2Oz+UwhfTOU2rPZVow== "@oxc-project/types@^0.76.0": version "0.76.0" @@ -7847,77 +7847,77 @@ dependencies: web-streams-polyfill "^3.1.1" -"@rolldown/binding-android-arm64@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.60.tgz#0fa61b39f0b94c9fa50f93365e73ad3db2bcdb5a" - integrity sha512-hOW6iQXtpG4uCW1zGK56+KhEXGttSkTp2ykncW/nkOIF/jOKTqbM944Q73HVeMXP1mPRvE2cZwNp3xeLIeyIGQ== - -"@rolldown/binding-darwin-arm64@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.60.tgz#99925b4522b7c174680bd1e1091f325ffec141a8" - integrity sha512-vyDA4HXY2mP8PPtl5UE17uGPxUNG4m1wkfa3kAkR8JWrFbarV97UmLq22IWrNhtBPa89xqerzLK8KoVmz5JqCQ== - -"@rolldown/binding-darwin-x64@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.60.tgz#f5539bee7a6f6123129ccc84b4dd06a0b5c7831c" - integrity sha512-WnxyqxAKP2BsxouwGY/RCF5UFw/LA4QOHhJ7VEl+UCelHokiwqNHRbryLAyRy3TE1FZ5eae+vAFcaetAu/kWLw== - -"@rolldown/binding-freebsd-x64@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.60.tgz#22a6518f02c5803777719351c64a0409deb9c5c3" - integrity sha512-JtyWJ+zXOHof5gOUYwdTWI2kL6b8q9eNwqB/oD4mfUFaC/COEB2+47JMhcq78dey9Ahmec3DZKRDZPRh9hNAMQ== - -"@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.60.tgz#78ebaac7e92b990b0a07af3c281fcfeafa2c6571" - integrity sha512-LrMoKqpHx+kCaNSk84iSBd4yVOymLIbxJQtvFjDN2CjQraownR+IXcwYDblFcj9ivmS54T3vCboXBbm3s1zbPQ== - -"@rolldown/binding-linux-arm64-gnu@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.60.tgz#785f7e085e1094db3ba4008988c879568a17b951" - integrity sha512-sqI+Vdx1gmXJMsXN3Fsewm3wlt7RHvRs1uysSp//NLsCoh9ZFEUr4ZzGhWKOg6Rvf+njNu/vCsz96x7wssLejQ== - -"@rolldown/binding-linux-arm64-musl@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.60.tgz#60ce089126bf69f2fe8cc3c246e643f229943e0d" - integrity sha512-8xlqGLDtTP8sBfYwneTDu8+PRm5reNEHAuI/+6WPy9y350ls0KTFd3EJCOWEXWGW0F35ko9Fn9azmurBTjqOrQ== - -"@rolldown/binding-linux-x64-gnu@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.60.tgz#4694794ed9ba1bacb473727c748a78474f93e427" - integrity sha512-iR4nhVouVZK1CiGGGyz+prF5Lw9Lmz30Rl36Hajex+dFVFiegka604zBwzTp5Tl0BZnr50ztnVJ30tGrBhDr8Q== - -"@rolldown/binding-linux-x64-musl@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.60.tgz#23a5a7c9569018ff5fc8941f1e11fed7e260aec6" - integrity sha512-HbfNcqNeqxFjSMf1Kpe8itr2e2lr0Bm6HltD2qXtfU91bSSikVs9EWsa1ThshQ1v2ZvxXckGjlVLtah6IoslPg== - -"@rolldown/binding-openharmony-arm64@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.60.tgz#cfd463dddbb2469de3520d667f1d30671f1669fa" - integrity sha512-BiiamFcgTJ+ZFOUIMO9AHXUo9WXvHVwGfSrJ+Sv0AsTd2w3VN7dJGiH3WRcxKFetljJHWvGbM4fdpY5lf6RIvw== - -"@rolldown/binding-wasm32-wasi@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.60.tgz#3f7b2941d2112c340a769e46c2640fa4369ddc43" - integrity sha512-6roXGbHMdR2ucnxXuwbmQvk8tuYl3VGu0yv13KxspyKBxxBd4RS6iykzLD6mX2gMUHhfX8SVWz7n/62gfyKHow== +"@rolldown/binding-android-arm64@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.1.tgz#a416e69f4f1798150f611a7858868e38e32b6f89" + integrity sha512-He6ZoCfv5D7dlRbrhNBkuMVIHd0GDnjJwbICE1OWpG7G3S2gmJ+eXkcNLJjzjNDpeI2aRy56ou39AJM9AD8YFA== + +"@rolldown/binding-darwin-arm64@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.1.tgz#0a9f16b0a0d27b1b7186ca0139de14e4c6a5f03a" + integrity sha512-YzJdn08kSOXnj85ghHauH2iHpOJ6eSmstdRTLyaziDcUxe9SyQJgGyx/5jDIhDvtOcNvMm2Ju7m19+S/Rm1jFg== + +"@rolldown/binding-darwin-x64@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.1.tgz#5888130efb61b73bd82ca8d49b708d01b792a08a" + integrity sha512-cIvAbqM+ZVV6lBSKSBtlNqH5iCiW933t1q8j0H66B3sjbe8AxIRetVqfGgcHcJtMzBIkIALlL9fcDrElWLJQcQ== + +"@rolldown/binding-freebsd-x64@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.1.tgz#af576836034a99361b8320897b471a456e155af9" + integrity sha512-rVt+B1B/qmKwCl1XD02wKfgh3vQPXRXdB/TicV2w6g7RVAM1+cZcpigwhLarqiVCxDObFZ7UgXCxPC7tpDoRog== + +"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.1.tgz#56fde985e201423f04ea819fdd93ecefca5c31d1" + integrity sha512-69YKwJJBOFprQa1GktPgbuBOfnn+EGxu8sBJ1TjPER+zhSpYeaU4N07uqmyBiksOLGXsMegymuecLobfz03h8Q== + +"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.1.tgz#1993cfa28bf5d8596a7d6490c18ca4aed0e15e15" + integrity sha512-9JDhHUf3WcLfnViFWm+TyorqUtnSAHaCzlSNmMOq824prVuuzDOK91K0Hl8DUcEb9M5x2O+d2/jmBMsetRIn3g== + +"@rolldown/binding-linux-arm64-musl@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.1.tgz#f9a266fe4150941d75274773243fd47cc1e08c6d" + integrity sha512-UvApLEGholmxw/HIwmUnLq3CwdydbhaHHllvWiCTNbyGom7wTwOtz5OAQbAKZYyiEOeIXZNPkM7nA4Dtng7CLw== + +"@rolldown/binding-linux-x64-gnu@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.1.tgz#9fca1583c3e56f91b5c26081fdf0644588fe4dc9" + integrity sha512-uVctNgZHiGnJx5Fij7wHLhgw4uyZBVi6mykeWKOqE7bVy9Hcxn0fM/IuqdMwk6hXlaf9fFShDTFz2+YejP+x0A== + +"@rolldown/binding-linux-x64-musl@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.1.tgz#6815ae02df5c13404069c3eff3ac2d95ae30d41c" + integrity sha512-T6Eg0xWwcxd/MzBcuv4Z37YVbUbJxy5cMNnbIt/Yr99wFwli30O4BPlY8hKeGyn6lWNtU0QioBS46lVzDN38bg== + +"@rolldown/binding-openharmony-arm64@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.1.tgz#58e622086d4fad4c43d4c0caa8a619c9b393943e" + integrity sha512-PuGZVS2xNJyLADeh2F04b+Cz4NwvpglbtWACgrDOa5YDTEHKwmiTDjoD5eZ9/ptXtcpeFrMqD2H4Zn33KAh1Eg== + +"@rolldown/binding-wasm32-wasi@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.1.tgz#d7a601d82ffb71dbfb95014f7320d50544ea798a" + integrity sha512-2mOxY562ihHlz9lEXuaGEIDCZ1vI+zyFdtsoa3M62xsEunDXQE+DVPO4S4x5MPK9tKulG/aFcA/IH5eVN257Cw== dependencies: "@napi-rs/wasm-runtime" "^1.1.1" -"@rolldown/binding-win32-arm64-msvc@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.60.tgz#de5e93cf5f197d0cecff1f2fc5ec0e1f5494c30a" - integrity sha512-JBOm8/DC/CKnHyMHoJFdvzVHxUixid4dGkiTqGflxOxO43uSJMpl77pSPXvzwZ/VXwqblU2V0/PanyCBcRLowQ== +"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.1.tgz#81345f23eb08c8cf9c957ab090883df3776c3936" + integrity sha512-oQVOP5cfAWZwRD0Q3nGn/cA9FW3KhMMuQ0NIndALAe6obqjLhqYVYDiGGRGrxvnjJsVbpLwR14gIUYnpIcHR1g== -"@rolldown/binding-win32-x64-msvc@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.60.tgz#5854668a4cc2a84c43575aa6cd5986001571952e" - integrity sha512-MKF0B823Efp+Ot8KsbwIuGhKH58pf+2rSM6VcqyNMlNBHheOM0Gf7JmEu+toc1jgN6fqjH7Et+8hAzsLVkIGfA== +"@rolldown/binding-win32-x64-msvc@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.1.tgz#25e3371e2d1d6bfae11491a350a4b9011c94ba85" + integrity sha512-Ydsxxx++FNOuov3wCBPaYjZrEvKOOGq3k+BF4BPridhg2pENfitSRD2TEuQ8i33bp5VptuNdC9IzxRKU031z5A== -"@rolldown/pluginutils@1.0.0-beta.60": - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.60.tgz#60dbf2a10c1c4f2faa58798922482bd5eb628c45" - integrity sha512-Jz4aqXRPVtqkH1E3jRDzLO5cgN5JwW+WG0wXGE4NiJd25nougv/AHzxmKCzmVQUYnxLmTM0M4wrZp+LlC2FKLg== +"@rolldown/pluginutils@1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.1.tgz#0a52bb6dfc10242716b7a82fcbddd0553b72883f" + integrity sha512-UTBjtTxVOhodhzFVp/ayITaTETRHPUPYZPXQe0WU0wOgxghMojXxYjOiPOauKIYNWJAWS2fd7gJgGQK8GU8vDA== "@rolldown/pluginutils@^1.0.0-beta.9": version "1.0.0-rc.4" @@ -28630,27 +28630,27 @@ roarr@^7.0.4: safe-stable-stringify "^2.4.1" semver-compare "^1.0.0" -rolldown@1.0.0-beta.60: - version "1.0.0-beta.60" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-beta.60.tgz#41463f62fdb085679cc08db49bfcc88bfd493ebf" - integrity sha512-YYgpv7MiTp9LdLj1fzGzCtij8Yi2OKEc3HQtfbIxW4yuSgpQz9518I69U72T5ErPA/ATOXqlcisiLrWy+5V9YA== +rolldown@1.0.0-rc.1: + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.1.tgz#4efb3ffcf8b964bfe63095346760d2db13698017" + integrity sha512-M3AeZjYE6UclblEf531Hch0WfVC/NOL43Cc+WdF3J50kk5/fvouHhDumSGTh0oRjbZ8C4faaVr5r6Nx1xMqDGg== dependencies: - "@oxc-project/types" "=0.108.0" - "@rolldown/pluginutils" "1.0.0-beta.60" + "@oxc-project/types" "=0.110.0" + "@rolldown/pluginutils" "1.0.0-rc.1" optionalDependencies: - "@rolldown/binding-android-arm64" "1.0.0-beta.60" - "@rolldown/binding-darwin-arm64" "1.0.0-beta.60" - "@rolldown/binding-darwin-x64" "1.0.0-beta.60" - "@rolldown/binding-freebsd-x64" "1.0.0-beta.60" - "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-beta.60" - "@rolldown/binding-linux-arm64-gnu" "1.0.0-beta.60" - "@rolldown/binding-linux-arm64-musl" "1.0.0-beta.60" - "@rolldown/binding-linux-x64-gnu" "1.0.0-beta.60" - "@rolldown/binding-linux-x64-musl" "1.0.0-beta.60" - "@rolldown/binding-openharmony-arm64" "1.0.0-beta.60" - "@rolldown/binding-wasm32-wasi" "1.0.0-beta.60" - "@rolldown/binding-win32-arm64-msvc" "1.0.0-beta.60" - "@rolldown/binding-win32-x64-msvc" "1.0.0-beta.60" + "@rolldown/binding-android-arm64" "1.0.0-rc.1" + "@rolldown/binding-darwin-arm64" "1.0.0-rc.1" + "@rolldown/binding-darwin-x64" "1.0.0-rc.1" + "@rolldown/binding-freebsd-x64" "1.0.0-rc.1" + "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.1" + "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.1" + "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.1" + "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.1" + "@rolldown/binding-linux-x64-musl" "1.0.0-rc.1" + "@rolldown/binding-openharmony-arm64" "1.0.0-rc.1" + "@rolldown/binding-wasm32-wasi" "1.0.0-rc.1" + "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.1" + "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.1" rollup-plugin-dts@^6.0.0: version "6.1.1" From 5a1bbf8b09530fb54ad4733c6b4af6a085773254 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Wed, 4 Feb 2026 13:19:31 -0500 Subject: [PATCH 3/6] chore: upgrade rolldown --- package.json | 2 +- yarn.lock | 178 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index a2c60dd59425..22182e240aaf 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "prettier": "^3.8.1", "prettier-plugin-astro": "^0.14.1", "rimraf": "^5.0.10", - "rolldown": "1.0.0-rc.1", + "rolldown": "1.0.0-rc.3", "size-limit": "~11.1.6", "ts-node": "10.9.2", "typescript": "~5.8.0", diff --git a/yarn.lock b/yarn.lock index 84aadb86ba72..7cedc6b52013 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7359,10 +7359,10 @@ resolved "https://registry.yarnpkg.com/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.76.0.tgz#3dbef82283f871c9cb59325c9daf4f740d11a6e9" integrity sha512-0jLzzmnu8/mqNhKBnNS2lFUbPEzRdj5ReiZwHGHpjma0+ullmmwP2AqSEqx3ssHDK9CpcEMdKOK2LsbCfhHKIA== -"@oxc-project/types@=0.110.0": - version "0.110.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.110.0.tgz#931b305539e5b2b8ac03f8741c5d1342e703d890" - integrity sha512-6Ct21OIlrEnFEJk5LT4e63pk3btsI6/TusD/GStLi7wYlGJNOl1GI9qvXAnRAxQU9zqA2Oz+UwhfTOU2rPZVow== +"@oxc-project/types@=0.112.0": + version "0.112.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.112.0.tgz#8f31ce1930fd6705230f05b52d4689ad6418e0fa" + integrity sha512-m6RebKHIRsax2iCwVpYW2ErQwa4ywHJrE4sCK3/8JK8ZZAWOKXaRJFl/uP51gaVyyXlaS4+chU1nSCdzYf6QqQ== "@oxc-project/types@^0.76.0": version "0.76.0" @@ -7847,77 +7847,77 @@ dependencies: web-streams-polyfill "^3.1.1" -"@rolldown/binding-android-arm64@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.1.tgz#a416e69f4f1798150f611a7858868e38e32b6f89" - integrity sha512-He6ZoCfv5D7dlRbrhNBkuMVIHd0GDnjJwbICE1OWpG7G3S2gmJ+eXkcNLJjzjNDpeI2aRy56ou39AJM9AD8YFA== - -"@rolldown/binding-darwin-arm64@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.1.tgz#0a9f16b0a0d27b1b7186ca0139de14e4c6a5f03a" - integrity sha512-YzJdn08kSOXnj85ghHauH2iHpOJ6eSmstdRTLyaziDcUxe9SyQJgGyx/5jDIhDvtOcNvMm2Ju7m19+S/Rm1jFg== - -"@rolldown/binding-darwin-x64@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.1.tgz#5888130efb61b73bd82ca8d49b708d01b792a08a" - integrity sha512-cIvAbqM+ZVV6lBSKSBtlNqH5iCiW933t1q8j0H66B3sjbe8AxIRetVqfGgcHcJtMzBIkIALlL9fcDrElWLJQcQ== - -"@rolldown/binding-freebsd-x64@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.1.tgz#af576836034a99361b8320897b471a456e155af9" - integrity sha512-rVt+B1B/qmKwCl1XD02wKfgh3vQPXRXdB/TicV2w6g7RVAM1+cZcpigwhLarqiVCxDObFZ7UgXCxPC7tpDoRog== - -"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.1.tgz#56fde985e201423f04ea819fdd93ecefca5c31d1" - integrity sha512-69YKwJJBOFprQa1GktPgbuBOfnn+EGxu8sBJ1TjPER+zhSpYeaU4N07uqmyBiksOLGXsMegymuecLobfz03h8Q== - -"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.1.tgz#1993cfa28bf5d8596a7d6490c18ca4aed0e15e15" - integrity sha512-9JDhHUf3WcLfnViFWm+TyorqUtnSAHaCzlSNmMOq824prVuuzDOK91K0Hl8DUcEb9M5x2O+d2/jmBMsetRIn3g== - -"@rolldown/binding-linux-arm64-musl@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.1.tgz#f9a266fe4150941d75274773243fd47cc1e08c6d" - integrity sha512-UvApLEGholmxw/HIwmUnLq3CwdydbhaHHllvWiCTNbyGom7wTwOtz5OAQbAKZYyiEOeIXZNPkM7nA4Dtng7CLw== - -"@rolldown/binding-linux-x64-gnu@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.1.tgz#9fca1583c3e56f91b5c26081fdf0644588fe4dc9" - integrity sha512-uVctNgZHiGnJx5Fij7wHLhgw4uyZBVi6mykeWKOqE7bVy9Hcxn0fM/IuqdMwk6hXlaf9fFShDTFz2+YejP+x0A== - -"@rolldown/binding-linux-x64-musl@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.1.tgz#6815ae02df5c13404069c3eff3ac2d95ae30d41c" - integrity sha512-T6Eg0xWwcxd/MzBcuv4Z37YVbUbJxy5cMNnbIt/Yr99wFwli30O4BPlY8hKeGyn6lWNtU0QioBS46lVzDN38bg== - -"@rolldown/binding-openharmony-arm64@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.1.tgz#58e622086d4fad4c43d4c0caa8a619c9b393943e" - integrity sha512-PuGZVS2xNJyLADeh2F04b+Cz4NwvpglbtWACgrDOa5YDTEHKwmiTDjoD5eZ9/ptXtcpeFrMqD2H4Zn33KAh1Eg== - -"@rolldown/binding-wasm32-wasi@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.1.tgz#d7a601d82ffb71dbfb95014f7320d50544ea798a" - integrity sha512-2mOxY562ihHlz9lEXuaGEIDCZ1vI+zyFdtsoa3M62xsEunDXQE+DVPO4S4x5MPK9tKulG/aFcA/IH5eVN257Cw== +"@rolldown/binding-android-arm64@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.3.tgz#223d0624c748ab2bcf20159e4baa17c6f03fe8a6" + integrity sha512-0T1k9FinuBZ/t7rZ8jN6OpUKPnUjNdYHoj/cESWrQ3ZraAJ4OMm6z7QjSfCxqj8mOp9kTKc1zHK3kGz5vMu+nQ== + +"@rolldown/binding-darwin-arm64@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.3.tgz#d6b4989c8fbaf50ac18d7636ffbc249e4b24098b" + integrity sha512-JWWLzvcmc/3pe7qdJqPpuPk91SoE/N+f3PcWx/6ZwuyDVyungAEJPvKm/eEldiDdwTmaEzWfIR+HORxYWrCi1A== + +"@rolldown/binding-darwin-x64@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.3.tgz#87b9a70011464362e349ee0190b454f8eb55b088" + integrity sha512-MTakBxfx3tde5WSmbHxuqlDsIW0EzQym+PJYGF4P6lG2NmKzi128OGynoFUqoD5ryCySEY85dug4v+LWGBElIw== + +"@rolldown/binding-freebsd-x64@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.3.tgz#0c71b40e1eb76def72509ec3a65c2ea47f37286f" + integrity sha512-jje3oopyOLs7IwfvXoS6Lxnmie5JJO7vW29fdGFu5YGY1EDbVDhD+P9vDihqS5X6fFiqL3ZQZCMBg6jyHkSVww== + +"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.3.tgz#ec048c3a0c3a4a6ee4c519fb73fc83a1afd857c6" + integrity sha512-A0n8P3hdLAaqzSFrQoA42p23ZKBYQOw+8EH5r15Sa9X1kD9/JXe0YT2gph2QTWvdr0CVK2BOXiK6ENfy6DXOag== + +"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.3.tgz#e9c3f993c5593fdabeddfa5467f36747557913df" + integrity sha512-kWXkoxxarYISBJ4bLNf5vFkEbb4JvccOwxWDxuK9yee8lg5XA7OpvlTptfRuwEvYcOZf+7VS69Uenpmpyo5Bjw== + +"@rolldown/binding-linux-arm64-musl@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.3.tgz#e0a4f06034b5b8cf775963f299172a2f227cede7" + integrity sha512-Z03/wrqau9Bicfgb3Dbs6SYTHliELk2PM2LpG2nFd+cGupTMF5kanLEcj2vuuJLLhptNyS61rtk7SOZ+lPsTUA== + +"@rolldown/binding-linux-x64-gnu@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.3.tgz#24cd1889bc0b7c4d20d6e45536d4970ba0c2955d" + integrity sha512-iSXXZsQp08CSilff/DCTFZHSVEpEwdicV3W8idHyrByrcsRDVh9sGC3sev6d8BygSGj3vt8GvUKBPCoyMA4tgQ== + +"@rolldown/binding-linux-x64-musl@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.3.tgz#cd408e0119db37eabab27eb9e98abf2cc304c23d" + integrity sha512-qaj+MFudtdCv9xZo9znFvkgoajLdc+vwf0Kz5N44g+LU5XMe+IsACgn3UG7uTRlCCvhMAGXm1XlpEA5bZBrOcw== + +"@rolldown/binding-openharmony-arm64@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.3.tgz#74732be57c8d33bb1306517e0f3560941aba400b" + integrity sha512-U662UnMETyjT65gFmG9ma+XziENrs7BBnENi/27swZPYagubfHRirXHG2oMl+pEax2WvO7Kb9gHZmMakpYqBHQ== + +"@rolldown/binding-wasm32-wasi@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.3.tgz#9cda49168a2eae90966430a8bae35b0218d7b8e4" + integrity sha512-gekrQ3Q2HiC1T5njGyuUJoGpK/l6B/TNXKed3fZXNf9YRTJn3L5MOZsFBn4bN2+UX+8+7hgdlTcEsexX988G4g== dependencies: "@napi-rs/wasm-runtime" "^1.1.1" -"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.1.tgz#81345f23eb08c8cf9c957ab090883df3776c3936" - integrity sha512-oQVOP5cfAWZwRD0Q3nGn/cA9FW3KhMMuQ0NIndALAe6obqjLhqYVYDiGGRGrxvnjJsVbpLwR14gIUYnpIcHR1g== +"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.3.tgz#c10e3ade39fc50b0fba3b3be16da0c320f0bdfa0" + integrity sha512-85y5JifyMgs8m5K2XzR/VDsapKbiFiohl7s5lEj7nmNGO0pkTXE7q6TQScei96BNAsoK7JC3pA7ukA8WRHVJpg== -"@rolldown/binding-win32-x64-msvc@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.1.tgz#25e3371e2d1d6bfae11491a350a4b9011c94ba85" - integrity sha512-Ydsxxx++FNOuov3wCBPaYjZrEvKOOGq3k+BF4BPridhg2pENfitSRD2TEuQ8i33bp5VptuNdC9IzxRKU031z5A== +"@rolldown/binding-win32-x64-msvc@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.3.tgz#edc9e57a3981b3388542ac1385057bdc90ea4502" + integrity sha512-a4VUQZH7LxGbUJ3qJ/TzQG8HxdHvf+jOnqf7B7oFx1TEBm+j2KNL2zr5SQ7wHkNAcaPevF6gf9tQnVBnC4mD+A== -"@rolldown/pluginutils@1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.1.tgz#0a52bb6dfc10242716b7a82fcbddd0553b72883f" - integrity sha512-UTBjtTxVOhodhzFVp/ayITaTETRHPUPYZPXQe0WU0wOgxghMojXxYjOiPOauKIYNWJAWS2fd7gJgGQK8GU8vDA== +"@rolldown/pluginutils@1.0.0-rc.3": + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5" + integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q== "@rolldown/pluginutils@^1.0.0-beta.9": version "1.0.0-rc.4" @@ -28630,27 +28630,27 @@ roarr@^7.0.4: safe-stable-stringify "^2.4.1" semver-compare "^1.0.0" -rolldown@1.0.0-rc.1: - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.1.tgz#4efb3ffcf8b964bfe63095346760d2db13698017" - integrity sha512-M3AeZjYE6UclblEf531Hch0WfVC/NOL43Cc+WdF3J50kk5/fvouHhDumSGTh0oRjbZ8C4faaVr5r6Nx1xMqDGg== +rolldown@1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.3.tgz#c4ef3049c7c726310bbeb35d4eab2468a1918079" + integrity sha512-Po/YZECDOqVXjIXrtC5h++a5NLvKAQNrd9ggrIG3sbDfGO5BqTUsrI6l8zdniKRp3r5Tp/2JTrXqx4GIguFCMw== dependencies: - "@oxc-project/types" "=0.110.0" - "@rolldown/pluginutils" "1.0.0-rc.1" + "@oxc-project/types" "=0.112.0" + "@rolldown/pluginutils" "1.0.0-rc.3" optionalDependencies: - "@rolldown/binding-android-arm64" "1.0.0-rc.1" - "@rolldown/binding-darwin-arm64" "1.0.0-rc.1" - "@rolldown/binding-darwin-x64" "1.0.0-rc.1" - "@rolldown/binding-freebsd-x64" "1.0.0-rc.1" - "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.1" - "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.1" - "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.1" - "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.1" - "@rolldown/binding-linux-x64-musl" "1.0.0-rc.1" - "@rolldown/binding-openharmony-arm64" "1.0.0-rc.1" - "@rolldown/binding-wasm32-wasi" "1.0.0-rc.1" - "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.1" - "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.1" + "@rolldown/binding-android-arm64" "1.0.0-rc.3" + "@rolldown/binding-darwin-arm64" "1.0.0-rc.3" + "@rolldown/binding-darwin-x64" "1.0.0-rc.3" + "@rolldown/binding-freebsd-x64" "1.0.0-rc.3" + "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.3" + "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.3" + "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.3" + "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.3" + "@rolldown/binding-linux-x64-musl" "1.0.0-rc.3" + "@rolldown/binding-openharmony-arm64" "1.0.0-rc.3" + "@rolldown/binding-wasm32-wasi" "1.0.0-rc.3" + "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.3" + "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.3" rollup-plugin-dts@^6.0.0: version "6.1.1" From d9b7ecadea2762d5eedd553567d8454717d9893a Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Wed, 4 Feb 2026 13:52:43 -0500 Subject: [PATCH 4/6] chore: remove yarn dedups --- yarn.lock | 45 ++++----------------------------------------- 1 file changed, 4 insertions(+), 41 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7cedc6b52013..e27202f831ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3726,7 +3726,7 @@ lodash "^4.17.21" resolve "^1.20.0" -"@emnapi/core@^1.1.0", "@emnapi/core@^1.4.3": +"@emnapi/core@^1.1.0", "@emnapi/core@^1.4.3", "@emnapi/core@^1.7.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.1.tgz#fd9efe721a616288345ffee17a1f26ac5dd01349" integrity sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg== @@ -3734,28 +3734,13 @@ "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" -"@emnapi/core@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" - integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== - dependencies: - "@emnapi/wasi-threads" "1.1.0" - tslib "^2.4.0" - -"@emnapi/runtime@^1.1.0", "@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.7.0": +"@emnapi/runtime@^1.1.0", "@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.7.0", "@emnapi/runtime@^1.7.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== dependencies: tslib "^2.4.0" -"@emnapi/runtime@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" - integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== - dependencies: - tslib "^2.4.0" - "@emnapi/wasi-threads@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" @@ -14419,11 +14404,6 @@ citty@^0.2.0: resolved "https://registry.yarnpkg.com/citty/-/citty-0.2.0.tgz#2426b145c4bf2a2c5c33bd66a634dfe3d5ea67ea" integrity sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA== -cjs-module-lexer@^1.2.2: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" - integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== - cjs-module-lexer@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca" @@ -20497,17 +20477,7 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.1.tgz#8d1aa2db18374f2c811de2aa4756ebd6e9859243" - integrity sha512-bruMpJ7xz+9jwGzrwEhWgvRrlKRYCRDBrfU+ur3FcasYXLJDxTruJ//8g2Noj+QFyRBeqbpj8Bhn4Fbw6HjvhA== - dependencies: - acorn "^8.14.0" - acorn-import-attributes "^1.9.5" - cjs-module-lexer "^1.2.2" - module-details-from-path "^1.0.3" - -import-in-the-middle@^2.0.6: +import-in-the-middle@^2.0.0, import-in-the-middle@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz#1972337bfe020d05f6b5e020c13334567436324f" integrity sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw== @@ -22805,14 +22775,7 @@ magic-string@^0.26.0, magic-string@^0.26.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.0, magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5, magic-string@^0.30.8: - version "0.30.19" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.19.tgz#cebe9f104e565602e5d2098c5f2e79a77cc86da9" - integrity sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -magic-string@^0.30.21: +magic-string@^0.30.0, magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.21, magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5, magic-string@^0.30.8: version "0.30.21" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== From c77bd972218793039d18e67633d0285c2e0ce2ee Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Wed, 4 Feb 2026 14:30:35 -0500 Subject: [PATCH 5/6] fix: formatting --- .../rollup-utils/plugins/npmPlugins.mjs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/dev-packages/rollup-utils/plugins/npmPlugins.mjs b/dev-packages/rollup-utils/plugins/npmPlugins.mjs index f310db3d0950..dfe40039b115 100644 --- a/dev-packages/rollup-utils/plugins/npmPlugins.mjs +++ b/dev-packages/rollup-utils/plugins/npmPlugins.mjs @@ -2,7 +2,7 @@ * Replace plugin docs: https://rolldown.rs/builtin-plugins/replace#replace-plugin */ -import { replacePlugin } from "rolldown/plugins"; +import { replacePlugin } from 'rolldown/plugins'; /** * Create a plugin which can be used to pause the build process at the given hook. @@ -44,7 +44,7 @@ import { replacePlugin } from "rolldown/plugins"; */ export function makeDebuggerPlugin(hookName) { return { - name: "debugger-plugin", + name: 'debugger-plugin', // eslint-disable-next-line no-unused-vars [hookName]: (..._args) => { // eslint-disable-next-line no-debugger @@ -64,8 +64,7 @@ export function makeDebuggerPlugin(hookName) { export function makeDebugBuildStatementReplacePlugin() { return replacePlugin( { - __DEBUG_BUILD__: - "(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)", + __DEBUG_BUILD__: "(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)", }, { preventAssignment: true, @@ -83,15 +82,15 @@ export function makeProductionReplacePlugin() { function stripDevBlocks(code) { if (!code) return null; - if (!code.includes("rollup-include-development-only")) return null; + if (!code.includes('rollup-include-development-only')) return null; - const replaced = code.replace(pattern, ""); + const replaced = code.replace(pattern, ''); return { code: replaced, map: null }; } return { - name: "remove-dev-mode-blocks", + name: 'remove-dev-mode-blocks', renderChunk(code) { return stripDevBlocks(code); }, @@ -109,12 +108,12 @@ export function makeProductionReplacePlugin() { export function makeRrwebBuildPlugin({ excludeShadowDom, excludeIframe } = {}) { const values = {}; - if (typeof excludeShadowDom === "boolean") { - values["__RRWEB_EXCLUDE_SHADOW_DOM__"] = excludeShadowDom; + if (typeof excludeShadowDom === 'boolean') { + values['__RRWEB_EXCLUDE_SHADOW_DOM__'] = excludeShadowDom; } - if (typeof excludeIframe === "boolean") { - values["__RRWEB_EXCLUDE_IFRAME__"] = excludeIframe; + if (typeof excludeIframe === 'boolean') { + values['__RRWEB_EXCLUDE_IFRAME__'] = excludeIframe; } return replacePlugin(values, { From f916d2107d381bbae6d90e0c581e5d0c03b716c6 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Wed, 11 Feb 2026 13:18:29 -0500 Subject: [PATCH 6/6] chore: upgrade rolldown --- package.json | 2 +- yarn.lock | 177 +++++++++++++++++++++++++-------------------------- 2 files changed, 87 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 22182e240aaf..25abfa1c4e2e 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "prettier": "^3.8.1", "prettier-plugin-astro": "^0.14.1", "rimraf": "^5.0.10", - "rolldown": "1.0.0-rc.3", + "rolldown": "1.0.0-rc.4", "size-limit": "~11.1.6", "ts-node": "10.9.2", "typescript": "~5.8.0", diff --git a/yarn.lock b/yarn.lock index e27202f831ae..181e9273bfaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7344,10 +7344,10 @@ resolved "https://registry.yarnpkg.com/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.76.0.tgz#3dbef82283f871c9cb59325c9daf4f740d11a6e9" integrity sha512-0jLzzmnu8/mqNhKBnNS2lFUbPEzRdj5ReiZwHGHpjma0+ullmmwP2AqSEqx3ssHDK9CpcEMdKOK2LsbCfhHKIA== -"@oxc-project/types@=0.112.0": - version "0.112.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.112.0.tgz#8f31ce1930fd6705230f05b52d4689ad6418e0fa" - integrity sha512-m6RebKHIRsax2iCwVpYW2ErQwa4ywHJrE4sCK3/8JK8ZZAWOKXaRJFl/uP51gaVyyXlaS4+chU1nSCdzYf6QqQ== +"@oxc-project/types@=0.113.0": + version "0.113.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.113.0.tgz#e323164a2d0cdc72c3eb980cd2a471e641df8d52" + integrity sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA== "@oxc-project/types@^0.76.0": version "0.76.0" @@ -7832,79 +7832,74 @@ dependencies: web-streams-polyfill "^3.1.1" -"@rolldown/binding-android-arm64@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.3.tgz#223d0624c748ab2bcf20159e4baa17c6f03fe8a6" - integrity sha512-0T1k9FinuBZ/t7rZ8jN6OpUKPnUjNdYHoj/cESWrQ3ZraAJ4OMm6z7QjSfCxqj8mOp9kTKc1zHK3kGz5vMu+nQ== - -"@rolldown/binding-darwin-arm64@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.3.tgz#d6b4989c8fbaf50ac18d7636ffbc249e4b24098b" - integrity sha512-JWWLzvcmc/3pe7qdJqPpuPk91SoE/N+f3PcWx/6ZwuyDVyungAEJPvKm/eEldiDdwTmaEzWfIR+HORxYWrCi1A== - -"@rolldown/binding-darwin-x64@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.3.tgz#87b9a70011464362e349ee0190b454f8eb55b088" - integrity sha512-MTakBxfx3tde5WSmbHxuqlDsIW0EzQym+PJYGF4P6lG2NmKzi128OGynoFUqoD5ryCySEY85dug4v+LWGBElIw== - -"@rolldown/binding-freebsd-x64@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.3.tgz#0c71b40e1eb76def72509ec3a65c2ea47f37286f" - integrity sha512-jje3oopyOLs7IwfvXoS6Lxnmie5JJO7vW29fdGFu5YGY1EDbVDhD+P9vDihqS5X6fFiqL3ZQZCMBg6jyHkSVww== - -"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.3.tgz#ec048c3a0c3a4a6ee4c519fb73fc83a1afd857c6" - integrity sha512-A0n8P3hdLAaqzSFrQoA42p23ZKBYQOw+8EH5r15Sa9X1kD9/JXe0YT2gph2QTWvdr0CVK2BOXiK6ENfy6DXOag== - -"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.3.tgz#e9c3f993c5593fdabeddfa5467f36747557913df" - integrity sha512-kWXkoxxarYISBJ4bLNf5vFkEbb4JvccOwxWDxuK9yee8lg5XA7OpvlTptfRuwEvYcOZf+7VS69Uenpmpyo5Bjw== - -"@rolldown/binding-linux-arm64-musl@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.3.tgz#e0a4f06034b5b8cf775963f299172a2f227cede7" - integrity sha512-Z03/wrqau9Bicfgb3Dbs6SYTHliELk2PM2LpG2nFd+cGupTMF5kanLEcj2vuuJLLhptNyS61rtk7SOZ+lPsTUA== - -"@rolldown/binding-linux-x64-gnu@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.3.tgz#24cd1889bc0b7c4d20d6e45536d4970ba0c2955d" - integrity sha512-iSXXZsQp08CSilff/DCTFZHSVEpEwdicV3W8idHyrByrcsRDVh9sGC3sev6d8BygSGj3vt8GvUKBPCoyMA4tgQ== - -"@rolldown/binding-linux-x64-musl@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.3.tgz#cd408e0119db37eabab27eb9e98abf2cc304c23d" - integrity sha512-qaj+MFudtdCv9xZo9znFvkgoajLdc+vwf0Kz5N44g+LU5XMe+IsACgn3UG7uTRlCCvhMAGXm1XlpEA5bZBrOcw== - -"@rolldown/binding-openharmony-arm64@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.3.tgz#74732be57c8d33bb1306517e0f3560941aba400b" - integrity sha512-U662UnMETyjT65gFmG9ma+XziENrs7BBnENi/27swZPYagubfHRirXHG2oMl+pEax2WvO7Kb9gHZmMakpYqBHQ== - -"@rolldown/binding-wasm32-wasi@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.3.tgz#9cda49168a2eae90966430a8bae35b0218d7b8e4" - integrity sha512-gekrQ3Q2HiC1T5njGyuUJoGpK/l6B/TNXKed3fZXNf9YRTJn3L5MOZsFBn4bN2+UX+8+7hgdlTcEsexX988G4g== +"@rolldown/binding-android-arm64@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz#bb275690413cd0109d49ba5dd4491e1c0296ad0e" + integrity sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w== + +"@rolldown/binding-darwin-arm64@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz#cd59b855ee90e464e8b6e97919089d00d98590e1" + integrity sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q== + +"@rolldown/binding-darwin-x64@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz#5c1411b969c26ffd88b661b1a38bafcf1519a431" + integrity sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww== + +"@rolldown/binding-freebsd-x64@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz#5b06b2792df246bb3fcc64630bd92af9feff3f87" + integrity sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw== + +"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz#93d9a3259cc41054425c8134d8ba41c9f92984f1" + integrity sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w== + +"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz#aa9e8f5b3874dc29bf54940eb55cb23274956e32" + integrity sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A== + +"@rolldown/binding-linux-arm64-musl@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz#e3b56288dcb2ba9219c3e3ff62bf0395c0dc9de4" + integrity sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ== + +"@rolldown/binding-linux-x64-gnu@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz#003570df20ba503ed71f052d1b201535fd6a217d" + integrity sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg== + +"@rolldown/binding-linux-x64-musl@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz#e1e22ee0b8913e45bf769291a7c7db57aa20b7fe" + integrity sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g== + +"@rolldown/binding-openharmony-arm64@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz#494ee66307a2b1192f24d6876564c1300ec90241" + integrity sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ== + +"@rolldown/binding-wasm32-wasi@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz#dc98418ee2e5668f7dcc4bf4155523a079b34a80" + integrity sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw== dependencies: "@napi-rs/wasm-runtime" "^1.1.1" -"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.3.tgz#c10e3ade39fc50b0fba3b3be16da0c320f0bdfa0" - integrity sha512-85y5JifyMgs8m5K2XzR/VDsapKbiFiohl7s5lEj7nmNGO0pkTXE7q6TQScei96BNAsoK7JC3pA7ukA8WRHVJpg== - -"@rolldown/binding-win32-x64-msvc@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.3.tgz#edc9e57a3981b3388542ac1385057bdc90ea4502" - integrity sha512-a4VUQZH7LxGbUJ3qJ/TzQG8HxdHvf+jOnqf7B7oFx1TEBm+j2KNL2zr5SQ7wHkNAcaPevF6gf9tQnVBnC4mD+A== +"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz#a294ee643275bb099c1128ad294bd6101bae1eca" + integrity sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ== -"@rolldown/pluginutils@1.0.0-rc.3": - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5" - integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q== +"@rolldown/binding-win32-x64-msvc@1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz#b9248d23625f6f59ec1af0b3140706cba6afc36c" + integrity sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g== -"@rolldown/pluginutils@^1.0.0-beta.9": +"@rolldown/pluginutils@1.0.0-rc.4", "@rolldown/pluginutils@^1.0.0-beta.9": version "1.0.0-rc.4" resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz#267b477af268a082861c861e47f6a787dff59cc4" integrity sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ== @@ -28593,27 +28588,27 @@ roarr@^7.0.4: safe-stable-stringify "^2.4.1" semver-compare "^1.0.0" -rolldown@1.0.0-rc.3: - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.3.tgz#c4ef3049c7c726310bbeb35d4eab2468a1918079" - integrity sha512-Po/YZECDOqVXjIXrtC5h++a5NLvKAQNrd9ggrIG3sbDfGO5BqTUsrI6l8zdniKRp3r5Tp/2JTrXqx4GIguFCMw== +rolldown@1.0.0-rc.4: + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.4.tgz#c22246260ab3da62caa209556e26d81fe516cf10" + integrity sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA== dependencies: - "@oxc-project/types" "=0.112.0" - "@rolldown/pluginutils" "1.0.0-rc.3" + "@oxc-project/types" "=0.113.0" + "@rolldown/pluginutils" "1.0.0-rc.4" optionalDependencies: - "@rolldown/binding-android-arm64" "1.0.0-rc.3" - "@rolldown/binding-darwin-arm64" "1.0.0-rc.3" - "@rolldown/binding-darwin-x64" "1.0.0-rc.3" - "@rolldown/binding-freebsd-x64" "1.0.0-rc.3" - "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.3" - "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.3" - "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.3" - "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.3" - "@rolldown/binding-linux-x64-musl" "1.0.0-rc.3" - "@rolldown/binding-openharmony-arm64" "1.0.0-rc.3" - "@rolldown/binding-wasm32-wasi" "1.0.0-rc.3" - "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.3" - "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.3" + "@rolldown/binding-android-arm64" "1.0.0-rc.4" + "@rolldown/binding-darwin-arm64" "1.0.0-rc.4" + "@rolldown/binding-darwin-x64" "1.0.0-rc.4" + "@rolldown/binding-freebsd-x64" "1.0.0-rc.4" + "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.4" + "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.4" + "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.4" + "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.4" + "@rolldown/binding-linux-x64-musl" "1.0.0-rc.4" + "@rolldown/binding-openharmony-arm64" "1.0.0-rc.4" + "@rolldown/binding-wasm32-wasi" "1.0.0-rc.4" + "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.4" + "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.4" rollup-plugin-dts@^6.0.0: version "6.1.1"