diff --git a/.size-limit.js b/.size-limit.js index f1fb707a00c6..61443446d7d1 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -364,7 +364,7 @@ module.exports = [ path: createCDNPath('bundle.tracing.replay.feedback.min.js'), gzip: false, brotli: false, - limit: '295 KB', + limit: '297 KB', disablePlugins: ['@size-limit/esbuild'], }, { @@ -372,7 +372,7 @@ module.exports = [ path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'), gzip: false, brotli: false, - limit: '301 KB', + limit: '303 KB', disablePlugins: ['@size-limit/esbuild'], }, // Next.js SDK (ESM) diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16/tests/worker-bundle.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16/tests/worker-bundle.test.ts index af16d1add37d..cb2039d442f4 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16/tests/worker-bundle.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16/tests/worker-bundle.test.ts @@ -56,7 +56,7 @@ function readOrchestrionPluginGraphSources(): string[] { const entrySource = fs.readFileSync(pluginEntry, 'utf8'); return [ entrySource, - ...[...entrySource.matchAll(/require\('(\.\.?\/[^']+)'\)/g)].map(([, specifier]) => + ...[...entrySource.matchAll(/require\(['"](\.\.?\/[^'"]+)['"]\)/g)].map(([, specifier]) => fs.readFileSync(path.resolve(path.dirname(pluginEntry), specifier), 'utf8'), ), ]; diff --git a/dev-packages/e2e-tests/test-applications/node-rolldown/package.json b/dev-packages/e2e-tests/test-applications/node-rolldown/package.json index e9b865110528..10d70f8cc7dd 100644 --- a/dev-packages/e2e-tests/test-applications/node-rolldown/package.json +++ b/dev-packages/e2e-tests/test-applications/node-rolldown/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@sentry-internal/test-utils": "file:../../packed/sentry-internal-test-utils-packed.tgz", "graphql": "16.9.0", - "rolldown": "1.2.5" + "rolldown": "1.2.14" }, "volta": { "extends": "../../package.json" diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index fdef92a3ba24..f7a3128a54ec 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -12,7 +12,7 @@ "scripts": { "build": "pnpm run build:transpile && pnpm run build:types", "build:dev": "pnpm run 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_* && pnpm run clean:script", "clean:script": "node scripts/clean.js", diff --git a/dev-packages/node-integration-tests/suites/esbuild/app-init.ts b/dev-packages/node-integration-tests/suites/esbuild/app-init.ts new file mode 100644 index 000000000000..5d84dc8e10e7 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/esbuild/app-init.ts @@ -0,0 +1,14 @@ +import * as Sentry from '@sentry/node'; + +// `Sentry.init()` synchronously calls `registerDiagnosticsChannelInjection()`, which reaches the +// vendored orchestrion transformer. That chain is split so a bundler can tree-shake it (see +// `makeCjsExportsSplitPlugin` in server-utils' rollup config); this asserts the split degrades to +// "no channel injection" rather than throwing when the bundler drops it. +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + tracesSampleRate: 0, + autoSessionTracking: false, +}); + +// eslint-disable-next-line no-console +console.log(`SENTRY_NODE_INITIALIZED client=${Boolean(Sentry.getClient())}`); diff --git a/dev-packages/node-integration-tests/suites/esbuild/test.ts b/dev-packages/node-integration-tests/suites/esbuild/test.ts index 1d1806f0b843..ea0c09a8aeba 100644 --- a/dev-packages/node-integration-tests/suites/esbuild/test.ts +++ b/dev-packages/node-integration-tests/suites/esbuild/test.ts @@ -32,4 +32,34 @@ describe('esbuild bundling', () => { rmSync(outDir, { recursive: true, force: true }); } }); + + test('@sentry/node survives init() when bundled to ESM with tree-shaking', async () => { + const outDir = mkdtempSync(join(tmpdir(), 'sentry-esbuild-esm-')); + const outfile = join(outDir, 'bundle.mjs'); + + try { + await build({ + entryPoints: [join(__dirname, 'app-init.ts')], + outfile, + platform: 'node', + format: 'esm', + bundle: true, + // `@sentry/server-utils` is `sideEffects: false`, so this is where a bundler is free to + // drop the vendored orchestrion transformer. + treeShaking: true, + logLevel: 'silent', + }); + + const result = spawnSync('node', [outfile], { encoding: 'utf-8' }); + + // Dropping the transformer must not take `init()` with it: reading a tree-shaken CJS + // container has to yield `undefined`, not throw on destructuring or on a call. + expect(result.stderr).not.toContain('Cannot destructure'); + expect(result.stderr).not.toContain('is not a function'); + expect(result.status).toBe(0); + expect(result.stdout).toContain('SENTRY_NODE_INITIALIZED client=true'); + } finally { + rmSync(outDir, { recursive: true, force: true }); + } + }); }); diff --git a/dev-packages/rollup-utils/bundleHelpers.mjs b/dev-packages/rollup-utils/bundleHelpers.mjs index 6ac5f6aff06d..04a6a8a68f77 100644 --- a/dev-packages/rollup-utils/bundleHelpers.mjs +++ b/dev-packages/rollup-utils/bundleHelpers.mjs @@ -1,48 +1,42 @@ /** - * Rollup config docs: https://rollupjs.org/guide/en/#big-list-of-options + * Rolldown config docs: https://rolldown.rs/reference/config-options */ -import { builtinModules } from 'module'; +import * as fs from 'fs'; +import * as path from 'path'; import deepMerge from 'deepmerge'; import { + makeBannerOptions, makeBrowserBuildPlugin, - makeCommonJSPlugin, - makeEsbuildPlugin, makeIsDebugBuildPlugin, - makeLicensePlugin, - makeNodeResolvePlugin, + makeMinifierOptions, makeRrwebBuildPlugin, makeSetSDKSourcePlugin, - makeTerserPlugin, } from './plugins/index.mjs'; -import { mergePlugins } from './utils.mjs'; +import { getNodeBuiltIns, mergePlugins, treeShakePreset } from './utils.mjs'; import { makeProductionReplacePlugin } from './plugins/npmPlugins.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, esbuild } = options; + const { bundleType, entrypoints, licenseTitle, outputFileBase, packageSpecificConfig } = options; - const nodeResolvePlugin = makeNodeResolvePlugin(); - const transpilePlugin = makeEsbuildPlugin(esbuild); 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: () => { @@ -50,7 +44,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) @@ -61,7 +55,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 = {};', @@ -84,30 +78,41 @@ 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, + external: getNodeBuiltIns(), }; 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, + external: getNodeBuiltIns(), }; // used by all bundles const sharedBundleConfig = { input: entrypoints, + + // Point at the package's tsconfig so rolldown picks up its TypeScript & JSX settings. + tsconfig: path.resolve(process.cwd(), './tsconfig.json'), + + // ES2020 is our floor: keeps `?.`/`??` native and downlevels everything newer. + 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, @@ -116,8 +121,8 @@ export function makeBaseBundleConfig(options) { strict: false, esModule: false, }, - plugins: [productionReplacePlugin, transpilePlugin, nodeResolvePlugin], - treeshake: 'smallest', + plugins: [productionReplacePlugin], + treeshake: treeShakePreset('smallest'), }; const bundleTypeConfigMap = { @@ -147,7 +152,7 @@ export function makeBundleConfigVariants(baseConfig, options = {}) { const includeDebuggingPlugin = makeIsDebugBuildPlugin(true); const stripDebuggingPlugin = makeIsDebugBuildPlugin(false); - const terserPlugin = makeTerserPlugin(); + const minify = makeMinifierOptions(); const setSdkSourcePlugin = makeSetSDKSourcePlugin('cdn'); // The additional options to use for each variant we're going to create. @@ -162,15 +167,17 @@ export function makeBundleConfigVariants(baseConfig, options = {}) { '.min.js': { output: { entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.min.js`, + minify, }, - plugins: [stripDebuggingPlugin, setSdkSourcePlugin, terserPlugin], + plugins: [stripDebuggingPlugin, setSdkSourcePlugin], }, '.debug.min.js': { output: { entryFileNames: chunkInfo => `${baseConfig.output.entryFileNames(chunkInfo)}.debug.min.js`, + minify, }, - plugins: [includeDebuggingPlugin, setSdkSourcePlugin, terserPlugin], + plugins: [includeDebuggingPlugin, setSdkSourcePlugin], }, }; diff --git a/dev-packages/rollup-utils/index.mjs b/dev-packages/rollup-utils/index.mjs index 2d8c9a2150bc..26ae2c0a1f96 100644 --- a/dev-packages/rollup-utils/index.mjs +++ b/dev-packages/rollup-utils/index.mjs @@ -4,4 +4,4 @@ export { plugins }; 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 a113feb1aa75..afd2333802d3 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -1,27 +1,24 @@ // @ts-check /** - * Rollup config docs: https://rollupjs.org/guide/en/#big-list-of-options + * Rolldown config docs: https://rolldown.rs/reference/config-options */ 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 { makeDebugBuildStatementReplacePlugin, - makeEsbuildPlugin, makeEsmCjsReplacePlugin, - makeNodeResolvePlugin, makeProductionReplacePlugin, makeRrwebBuildPlugin, } from './plugins/index.mjs'; import { makePackageNodeEsm } from './plugins/make-esm-plugin.mjs'; -import { mergeExternals, mergePlugins } from './utils.mjs'; +import { getNodeBuiltIns, mergeExternals, mergePlugins } from './utils.mjs'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -66,12 +63,9 @@ export function makeBaseNPMConfig(options = {}) { entrypoints = ['src/index.ts'], hasBundles = false, packageSpecificConfig = {}, - esbuild = {}, bundledBuiltins = [], } = options; - const nodeResolvePlugin = makeNodeResolvePlugin(); - const transpilePlugin = makeEsbuildPlugin(esbuild); const debugBuildStatementReplacePlugin = makeDebugBuildStatementReplacePlugin(); const rrwebBuildPlugin = makeRrwebBuildPlugin({ excludeShadowDom: undefined, @@ -79,7 +73,7 @@ export function makeBaseNPMConfig(options = {}) { }); const deps = [ - ...builtinModules.filter(m => !bundledBuiltins.includes(m)), + ...getNodeBuiltIns(bundledBuiltins), ...Object.keys(packageDotJSON.dependencies || {}), ...Object.keys(packageDotJSON.peerDependencies || {}), ...Object.keys(packageDotJSON.optionalDependencies || {}), @@ -88,6 +82,31 @@ export function makeBaseNPMConfig(options = {}) { const defaultBaseConfig = { input: entrypoints, + // Point at the package's tsconfig so rolldown picks up its TypeScript & JSX settings. + tsconfig: path.resolve(process.cwd(), './tsconfig.json'), + + // NOTE: we deliberately leave `platform` unset so rolldown infers it from the output format + // ('node' for cjs, 'browser' for everything else). Every explicit value breaks something: + // 'node' injects `import "node:module"` into each runtime chunk, which webpack rejects for + // browser targets; 'neutral' rewrites `import.meta` to `{}`, so `createRequire(import.meta.url)` + // gets `undefined`. Node-only packages that need the node platform for both halves set it + // themselves (see server-utils and bundler-plugins). + + // ES2020 is our floor: keeps `?.`/`??` native and downlevels everything newer. Packages that + // need more (e.g. top-level await) raise it through `packageSpecificConfig`. + transform: { + target: 'es2020', + + // The inferred 'browser' platform defines `process.env.NODE_ENV`, which folds every + // `process.env.NODE_ENV !== 'development'` guard to a constant and lets DCE delete the + // branch behind it. That silently dropped the orchestrion and source-map plugins from the + // vite integrations' ESM output while the CJS half kept them. Mapping it to itself keeps + // the runtime lookup, so the guard is evaluated by the consumer as it always was. + define: { + 'process.env.NODE_ENV': 'process.env.NODE_ENV', + }, + }, + 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', @@ -99,6 +118,7 @@ export function makeBaseNPMConfig(options = {}) { // output individual files rather than one big bundle preserveModules: true, + preserveModulesRoot: 'src', // Don't hoist imports into entrypoints // should be ignored when `preserveModules` is used, @@ -121,19 +141,17 @@ 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, - - // Assume externals are ESM-shaped (`__esModule` + `.default`), which our own `@sentry/*` - // packages satisfy via `esModule: 'if-default-prop'`. This keeps `import * as x` a live - // reference to the real module rather than an `_interopNamespace` copy — instrumentation code - // relies on that to monkey-patch modules like `fs` in place. Packages that pull in bare-CJS - // third-party deps (no `.default`) override this per-module (see server-utils). - interop: 'esModule', }, + // NOTE: rolldown has no equivalent of rollup's `output.interop`. In the CJS build it wraps + // namespace imports of externals as `x = __toESM(require('x'))`, and `__toESM` returns a copy + // whose properties are getter-only forwarders. Reads pass through to the real module but writes + // do not, so code that monkey-patches a module in place has to default-import it (`import x + // from 'x'`, whose `.default` is the live `require()` result) rather than namespace-import it. + // Rolldown errors on a statically visible `ns.foo = ...` (ASSIGN_TO_IMPORT), but it cannot see a + // write made through a helper, and that one fails silently. See + // `packages/node/src/integrations/fs/vendored/instrumentation.ts`. + treeshake: { moduleSideEffects: (id, external) => { if (external === false && ignoreSideEffects.test(id)) { @@ -153,7 +171,7 @@ export function makeBaseNPMConfig(options = {}) { }, }, - plugins: [nodeResolvePlugin, transpilePlugin, debugBuildStatementReplacePlugin, rrwebBuildPlugin], + plugins: [debugBuildStatementReplacePlugin, rrwebBuildPlugin], // don't include imported modules from outside the package in the final output // also treat subpath exports (e.g. `@sentry/core/browser`) as external @@ -215,8 +233,7 @@ export function makeNPMConfigVariants(baseConfig, options = {}) { } return variantSpecificConfigs.map(variant => - // Plugin arrays must be merged in the right order or the build silently misbehaves - // (e.g. esbuild strips dev-mode marker comments before the replace plugin can act). + // Plugin arrays must be merged in the right order or the build silently misbehaves. deepMerge(baseConfig, variant, { customMerge: key => (key === 'plugins' ? mergePlugins : undefined), }), diff --git a/dev-packages/rollup-utils/package.json b/dev-packages/rollup-utils/package.json index dae0678b90d8..22e4fcce9f2a 100644 --- a/dev-packages/rollup-utils/package.json +++ b/dev-packages/rollup-utils/package.json @@ -8,10 +8,6 @@ "license": "MIT", "private": true, "main": "./index.mjs", - "dependencies": { - "acorn": "^8.7.0", - "recast": "^0.24.0" - }, "devDependencies": { "eslint-plugin-regexp": "^3.1.0" }, diff --git a/dev-packages/rollup-utils/plugins/bundlePlugins.mjs b/dev-packages/rollup-utils/plugins/bundlePlugins.mjs index 23aab90f4edf..d80dbf515cea 100644 --- a/dev-packages/rollup-utils/plugins/bundlePlugins.mjs +++ b/dev-packages/rollup-utils/plugins/bundlePlugins.mjs @@ -1,173 +1,146 @@ /** - * 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 + * Replace plugin docs: https://rolldown.rs/builtin-plugins/replace#replace-plugin + * Minifier options docs: https://rolldown.rs/options/output-options#output-minify */ 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. + * Build the identification banner that goes at the top of stand-alone bundles. + * + * Rolldown emits banners itself (`output.banner`), so unlike `rollup-plugin-license` this returns + * the banner text rather than a plugin, and ordering against the minifier is no longer our problem. * * @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 - * 'false` + * @returns A `rolldown` replace plugin instance to do the replacement of the magic string with `true` or `false` */ export function makeIsDebugBuildPlugin(includeDebugging) { - const plugin = 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), + }, + { + // It 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, }, - }); - plugin.name = 'replace-debug-flags'; - return plugin; + ); } /** * Replaces the comment marker `/*! __SENTRY_SDK_SOURCE__ *\/` in core's `getSDKSource()` with a * `return '';` statement so the bundle reports the correct distribution channel. * - * The marker uses the `/*! ... *\/` legal-comment syntax so it survives esbuild's transpile - * (esbuild strips ordinary block comments). The plugin sort order in utils.mjs also pins - * this name before `esbuild`, in case it ever runs on un-transpiled source directly. + * The marker uses the `/*! ... *\/` legal-comment syntax so it survives rolldown's transpile + * (ordinary block comments are stripped). */ export function makeSetSDKSourcePlugin(sdkSource) { - const plugin = replace({ - preventAssignment: false, - delimiters: ['', ''], - values: { + return replacePlugin( + { '/*! __SENTRY_SDK_SOURCE__ */': `return ${JSON.stringify(sdkSource)};`, }, - }); - plugin.name = 'replace-sdk-source'; - return plugin; + { + preventAssignment: false, + delimiters: ['', ''], + }, + ); } /** * Create a plugin to set the value of the `__SENTRY_BROWSER_BUNDLE__` magic string. * * @param isBrowserBuild Whether or not the resulting build will be run in the browser - * @returns An instance of the `replace` plugin to do the replacement of the magic string with `true` or 'false` + * @returns A `rolldown` replace plugin instance to do the replacement of the magic string with `true` or `false` */ export function makeBrowserBuildPlugin(isBrowserBuild) { - const plugin = 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), + // Bundled dependencies (e.g. Preact in the feedback bundles) branch on this, and there is no + // CommonJS plugin left to fold it away for us. + 'process.env.NODE_ENV': JSON.stringify('production'), }, - }); - plugin.name = 'replace-browser-bundle-flag'; - return plugin; + { + 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`. + * Minifier settings for the bundle builds. * - * @returns An instance of the `terser` plugin + * Ported from the terser config the rollup build used. Terser's `mangle.reserved` maps onto + * rolldown's `mangle.reserved`, and `mangle.properties.regex`/`.reserved` onto the top-level + * `mangleProps.include`/`.reserved` (property mangling landed in rolldown 1.2.6). Note it is + * `minify.mangleProps`, not `minify.mangle.properties`: the latter is the oxc-level interface the + * reference docs describe, and rolldown silently ignores it. + * + * @returns {import('rolldown').OutputOptions['minify']} */ -export function makeTerserPlugin() { - return terser({ +export function makeMinifierOptions() { + return { 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', - // Marker used to detect `beforeSendSpan` callbacks expecting the static span format - '_static', - // This is used in metadata integration - '_sentryModuleMetadata', - ], - }, }, - format: { - comments: false, + mangleProps: { + // allow mangling of private field names... + include: /^_[^_]/, + 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', + // Marker used to detect `beforeSendSpan` callbacks expecting the static span format + '_static', + // 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(); -} - -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 f17d102e012c..0b2b812d73f6 100644 --- a/dev-packages/rollup-utils/plugins/npmPlugins.mjs +++ b/dev-packages/rollup-utils/plugins/npmPlugins.mjs @@ -1,56 +1,10 @@ /** - * Rollup plugin hooks docs: https://rollupjs.org/guide/en/#build-hooks and - * https://rollupjs.org/guide/en/#output-generation-hooks - * - * esbuild plugin docs: https://github.com/egoist/rollup-plugin-esbuild - * Replace plugin docs: https://github.com/rollup/plugins/tree/master/packages/replace - */ - -import json from '@rollup/plugin-json'; -import replace from '@rollup/plugin-replace'; -import esbuild from 'rollup-plugin-esbuild'; - -/** - * Create a plugin to transpile TS/JSX syntax using `esbuild`. - * - * `target: 'es2020'` keeps ES2020-native syntax (`?.`, `??`, optional catch binding) and - * downlevels everything newer (logical assignment, numeric separators, class private - * fields, static class blocks, ...). - * - * `esbuildOptions` are forwarded to `rollup-plugin-esbuild` verbatim and can override - * any of the pinned defaults (e.g. JSX-related keys like `jsxFactory` / `jsxFragment` - * for packages that use a non-React pragma). + * Replace plugin docs: https://rolldown.rs/builtin-plugins/replace#replace-plugin */ -export function makeEsbuildPlugin(esbuildOptions = {}) { - const plugin = esbuild({ - // `.json` is handled by the JSON plugin further down the pipeline. - exclude: ['**/*.json'], - // ES2020 is our floor — keeps `?.`/`??` native, downlevels everything newer. - target: 'es2020', - // Don't read per-package tsconfig (they vary and can pull in unrelated settings). - // Pin only the compilerOptions that affect codegen. - tsconfig: false, - tsconfigRaw: { - compilerOptions: { - // Match the project tsconfig's effective behavior at target=es2020: class - // field initializers compile to `this.x = v` (set semantics), not via the - // `Object.defineProperty`-based `__publicField` helper esbuild emits by - // default. This is what tsc itself outputs at this target. - useDefineForClassFields: false, - }, - }, - sourceMap: true, - ...esbuildOptions, - }); - // Force a stable plugin name so the plugin sort order in utils.mjs can target it. - plugin.name = 'esbuild'; - return plugin; -} - -export function makeJsonPlugin() { - return json(); -} +import { builtinModules } from 'node:module'; +import * as nodePath from 'node:path'; +import { replacePlugin } from 'rolldown/plugins'; /** * Create a plugin which can be used to pause the build process at the given hook. @@ -107,24 +61,23 @@ export function makeDebuggerPlugin(hookName) { * 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` replace plugin instance. */ export function makeDebugBuildStatementReplacePlugin() { - const plugin = replace({ - preventAssignment: false, - values: { + return replacePlugin( + { __DEBUG_BUILD__: "(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)", }, - }); - plugin.name = 'replace-debug-build-statement'; - return plugin; + { + preventAssignment: true, + }, + ); } -// Markers use the `/*! ... */` legal-comment syntax so esbuild preserves them through -// transpile. We still run as a `transform` (per-module) hook rather than `renderChunk`: -// the block typically uses imports declared at the module top, and stripping it before -// rollup analyses module-graph imports lets those now-unused imports be tree-shaken away. -// The plugin sort order in utils.mjs pins this before `esbuild`. +// Markers use the `/*! ... */` legal-comment syntax so rolldown's transpile preserves them. +// We run as a `transform` (per-module) hook rather than `renderChunk`: the block typically uses +// imports declared at the module top, and stripping it before the module graph is analysed lets +// those now-unused imports be tree-shaken away. const REMOVE_DEV_BLOCK = /\/\*! rollup-include-development-only \*\/[\s\S]*?\/\*! rollup-include-development-only-end \*\/\s*/g; @@ -175,10 +128,179 @@ export function makeRrwebBuildPlugin({ excludeShadowDom, excludeIframe } = {}) { values['__RRWEB_EXCLUDE_IFRAME__'] = excludeIframe; } - const plugin = replace({ + return replacePlugin(values, { preventAssignment: true, - values, }); - plugin.name = 'replace-rrweb-build-flags'; - return plugin; +} + +// For packages that bundle CommonJS dependencies. Rolldown converts CommonJS natively, but not the +// vendored graph's `require()` of node builtins: those survive into the ESM build as rolldown's +// `__require` helper, which throws in every ESM runtime (plain Node ESM included, since `require` is +// not defined there). +// +// Neither knob rolldown offers fixes it. `platform: 'node'` makes `__require` a real +// `createRequire(import.meta.url)`, but that lands a static `node:module` import in the *shared* +// runtime chunk, which every module imports for `__toESM` - including entries that edge runtimes +// pull in (e.g. `@sentry/server-utils` from `@sentry/vercel-edge`), so edge and browser bundlers then fail to resolve `node:`. And +// evaluating `createRequire(import.meta.url)` at module scope crashes with ERR_INVALID_ARG_VALUE +// once a downstream bundler re-bundles our ESM to CJS (see node-integration-tests' `esbuild` suite). +// +// So do what `@rollup/plugin-commonjs` used to: turn each `require('')` into a static import. +// `preserveModules` gives every vendored file its own chunk, so the `node:` imports land only in +// the Node-only chunks that actually need them and never in the shared runtime chunk. +export function makeBuiltinRequireShimPlugin() { + let replaced = false; + + return { + name: 'builtin-require-shim', + renderChunk(code, _chunk, outputOptions) { + // The CJS variant has a real `require`; rolldown never emits the helper there. + if (outputOptions.format !== 'es' && outputOptions.format !== 'esm') return null; + + const imports = new Map(); + // Built per call: rolldown renders chunks concurrently, and a shared global regex would + // carry `lastIndex` across those calls and skip matches. + const rewritten = code.replace(/__require\("([^"]+)"\)/g, (_match, specifier) => { + const bare = specifier.replace(/^node:/, ''); + if (!builtinModules.includes(bare)) { + throw new Error( + `The vendored graph \`require()\`s "${specifier}", which is not a node builtin. This shim only knows how to hoist builtins into static imports - handle that dependency explicitly instead.`, + ); + } + + const identifier = `__sentryRequire_${bare.replace(/[^a-zA-Z0-9]/g, '_')}`; + imports.set(identifier, specifier); + + return identifier; + }); + + if (!imports.size) return null; + replaced = true; + + const preamble = [...imports].map(([identifier, specifier]) => `import ${identifier} from "${specifier}";`); + + return { code: `${preamble.join('\n')}\n${rewritten}` }; + }, + generateBundle(outputOptions) { + if (outputOptions.format !== 'es' && outputOptions.format !== 'esm') return; + + if (!replaced) { + throw new Error( + 'Expected rolldown to emit `__require(...)` calls for the vendored graph so they could be hoisted into static imports, but no chunk contained one. Rolldown likely changed how it compiles `require()` of externals - re-check this shim against the emitted chunks.', + ); + } + replaced = false; + }, + }; +} + +// Always vendor `debug`'s Node build. Its default entry picks browser vs node at require time, +// which drags the browser build into this server-only bundle, and the browser build's storage +// detection probes `localStorage` at import time, which on Node >= 26 emits an ExperimentalWarning +// that pollutes stderr and console breadcrumbs in every user app. `order: 'pre'` so this wins over +// rolldown's own resolution. +export function makeDebugNodeAliasPlugin() { + return { + name: 'debug-node-alias', + resolveId: { + order: 'pre', + handler(source, importer) { + return source === 'debug' ? this.resolve('debug/src/node.js', importer, { skipSelf: true }) : null; + }, + }, + }; +} + +// `esquery` publishes a `module` field, so rolldown resolves the CJS `require('esquery')` inside the +// vendored graph to its ESM build and then converts that namespace with `__toCommonJS`, handing the +// caller `{ default: fn }` instead of the function itself - `esquery.parse` ends up undefined and +// every orchestrion injection fails. `@rollup/plugin-commonjs` used to settle this with +// `requireReturnsDefault: 'auto'`. Point the CJS caller at the CJS build instead, which needs no +// interop guesswork at all. +export function makeEsqueryCjsAliasPlugin() { + return { + name: 'esquery-cjs-alias', + resolveId: { + order: 'pre', + handler(source, importer) { + return source === 'esquery' ? this.resolve('esquery/dist/esquery.min.js', importer, { skipSelf: true }) : null; + }, + }, + }; +} + +// Rolldown compiles each bundled CJS dependency into `var require_x = __commonJSMin(...)` and has +// consumers pull it in with `import { require_x } from './body.js'`. That named import is used, so +// nothing downstream can drop it - which dragged the whole build-time-only transformer chain +// (meriyah, astring, source-map: ~185 kB) into every consumer's runtime bundle. +// +// `@rollup/plugin-commonjs` split each CJS module in two: a tiny `_virtual` module holding the +// exports, and the body imported purely for its side effects. With the package's +// `sideEffects: false`, a downstream bundler is then free to drop the body. Reproduce that split so +// the emitted graph matches what rollup produced. +// +// The exports live in a mutable container rather than being merged into an object, because a CJS +// module's exports can be any value (esquery's is a function). +const CJS_INIT = /^var (require_[A-Za-z0-9_$]+) = \/\* @__PURE__ \*\/ __commonJSMin\(/m; + +/** + * @param splittable Matches the output file names of the CJS modules to split. Only modules whose loss a consumer can + * survive belong here, because a downstream bundler may drop their bodies. + */ +export function makeCjsExportsSplitPlugin(splittable) { + return { + name: 'cjs-exports-split', + generateBundle(outputOptions, bundle) { + if (outputOptions.format !== 'es' && outputOptions.format !== 'esm') return; + + const chunks = Object.values(bundle).filter(c => c.type === 'chunk'); + const split = new Map(); + + // Pass 1: every chunk that defines and exports a single CJS initializer gets a container. + for (const chunk of chunks) { + if (!splittable.test(chunk.fileName)) continue; + const match = CJS_INIT.exec(chunk.code); + if (!match) continue; + const name = match[1]; + if (!chunk.code.includes(`export { ${name} };`)) continue; + split.set(name, { body: chunk, container: `_virtual/_cjs/${name}.js` }); + } + if (!split.size) return; + + const relative = (fromFile, toFile) => { + const rel = nodePath.posix.relative(nodePath.posix.dirname(fromFile), toFile); + return rel.startsWith('.') ? rel : `./${rel}`; + }; + + for (const [name, { body, container }] of split) { + this.emitFile({ type: 'asset', fileName: container, source: 'var c = {};\nexport { c as __cjs };\n' }); + + // The body stops exporting the initializer and instead runs it into the container. Eager, + // like `@rollup/plugin-commonjs` with `strictRequires: false`, which this graph already + // relied on. + const bodyImport = `import { __cjs as ${name}__cjs } from "${relative(body.fileName, container)}";`; + const bodyCode = body.code.replace(`export { ${name} };`, `${name}__cjs.v = ${name}();`); + body.code = `${bodyImport}\n${bodyCode}`; + } + + // Pass 2: consumers import the body for side effects only and read the container. + for (const chunk of chunks) { + for (const [name, { body, container }] of split) { + if (chunk === body) continue; + const importRe = new RegExp(`^import \\{ ${name.replaceAll('$', '\\$')} \\} from "([^"]+)";$`, 'm'); + const found = importRe.exec(chunk.code); + if (!found) continue; + chunk.code = chunk.code + .replace( + found[0], + `import "${found[1]}";\nimport { __cjs as ${name}__cjs } from "${relative(chunk.fileName, container)}";`, + ) + // `?? {}` mirrors rollup's `_virtual` module, which held a plain `{}`. If a consumer + // drops the body, reads yield `undefined` rather than throwing on destructuring, so + // injection degrades to a caught warning exactly as it does on the rollup build. + .replaceAll(`${name}()`, `(${name}__cjs.v ?? {})`); + } + } + }, + }; } diff --git a/dev-packages/rollup-utils/utils.mjs b/dev-packages/rollup-utils/utils.mjs index 503a4876d223..8b0e00199e9c 100644 --- a/dev-packages/rollup-utils/utils.mjs +++ b/dev-packages/rollup-utils/utils.mjs @@ -1,3 +1,5 @@ +import { builtinModules } from 'module'; + /** * Helper function to compensate for the fact that JS can't handle negative array indices very well */ @@ -33,34 +35,21 @@ export function mergeExternals(base, specific) { * Merge two arrays of plugins, making sure they're sorted in the correct order. * * Each entry in `order` is pinned for a real reason; `...` is where every other plugin lands. + * + * Rolldown's builtin plugins all report the same `name` (e.g. `builtin:replace`), so they can't be + * pinned individually and all land in `...`, where `Array.prototype.sort` keeps them in insertion + * order. That's fine: the transpile step they used to be ordered against is now part of rolldown + * itself and always runs first. */ export function mergePlugins(pluginsA, pluginsB) { const order = [ - // (transform) Strips `/*! rollup-include-development-only */` marker blocks. Must precede `esbuild` so the - // now-unused imports inside the block can be tree-shaken by rollup. + // (transform) Strips `/*! rollup-include-development-only */` marker blocks. Runs first so the + // now-unused imports inside the block can be tree-shaken. 'remove-dev-mode-blocks', - // (transform) Rewrites the `/*! __SENTRY_SDK_SOURCE__ */` comment marker in `getSDKSource()` for CDN builds. - // Comment-based → must precede `esbuild` (the marker uses `/*!` legal-comment syntax, but pinning is defensive). - 'replace-sdk-source', - // (transform) TS/JSX → JS, strips non-legal block comments, strips `declare const` lines. - 'esbuild', - // The identifier-based `replace-*` plugins below MUST run AFTER `esbuild`. Each of these identifiers is also - // declared in TS via `declare const __FOO__: ...;` lines. If the replace runs before esbuild, it rewrites the - // declaration's identifier into an expression and produces invalid TS. esbuild strips `declare const` lines, - // so by the time these plugins run the only remaining occurrences are real references. - 'replace-debug-build-statement', - 'replace-browser-bundle-flag', - 'replace-debug-flags', - 'replace-rrweb-build-flags', - // Every other plugin lands here — including additional identifier-based `replace-*` plugins (e.g. - // `replace-sdk-version`), which intentionally run AFTER `esbuild` for the same reason as the ones pinned above. + // (transform) Strips the marker blocks for the format we're not currently emitting. + 'remove-esm-cjs-mode-blocks', + // Every other plugin lands here, including the identifier-based `builtin:replace` instances. '...', - // (renderChunk) Minifies and strips comments (we use `comments: false`). Anything that contributes code to a - // chunk must run before this. - 'terser', - // (renderChunk) Prepends the license banner, which is a comment. Must run AFTER `terser`, otherwise terser - // would strip it. - 'license', // (renderChunk) Captures the final chunk text as base64, so it must run last. 'output-base64-worker-script', ]; @@ -72,3 +61,33 @@ export function mergePlugins(pluginsA, pluginsB) { }); return plugins; } + +/** + * Rolldown has no `'smallest'` treeshake preset, so spell out what rollup's `'smallest'` meant. + * + * https://rolldown.rs/options/treeshake#treeshake + * https://rollupjs.org/configuration-options/#treeshake + */ +export function treeShakePreset(preset) { + if (preset === 'smallest') { + return { + propertyReadSideEffects: false, + moduleSideEffects: false, + unknownGlobalSideEffects: false, + }; + } + + return preset; +} + +/** + * List every Node.js builtin under both its bare name (`fs`) and its prefixed name (`node:fs`). + * + * Rollup normalised the `node:` prefix for us when matching externals; rolldown doesn't, so both + * spellings have to be listed explicitly. + */ +export function getNodeBuiltIns(excludeBuiltins = []) { + const excluded = new Set(excludeBuiltins); + + return builtinModules.flatMap(builtin => (excluded.has(builtin) ? [] : [builtin, `node:${builtin}`])); +} diff --git a/dev-packages/test-utils/package.json b/dev-packages/test-utils/package.json index 041937219804..4da3fa20fa9e 100644 --- a/dev-packages/test-utils/package.json +++ b/dev-packages/test-utils/package.json @@ -53,7 +53,7 @@ "build": "run-s build:transpile build:types", "build:tarball": "npm pack", "build:dev": "pnpm run 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 13f88d1afbea..ed9019a87596 100644 --- a/package.json +++ b/package.json @@ -127,11 +127,6 @@ "for example `@sentry-internal/rollup-utils` in the rollup configs." ], "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.7", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", - "@rollup/plugin-replace": "^5.0.5", - "@rollup/plugin-terser": "^0.4.4", "@sentry-internal/browser-integration-tests": "workspace:*", "@sentry-internal/bun-integration-tests": "workspace:*", "@sentry-internal/bundler-plugin-integration-tests": "workspace:*", @@ -202,7 +197,6 @@ "@vitest/coverage-v8": "^4.1.11", "deepmerge": "^4.2.2", "es-check": "^7.2.1", - "esbuild": "^0.28.1", "jsdom": "^21.1.2", "madge": "8.0.0", "nodemon": "^3.1.10", @@ -212,8 +206,8 @@ "oxlint": "^1.75.0", "oxlint-tsgolint": "7", "rimraf": "^6.1.3", + "rolldown": "^1.2.14", "rollup": "^4.60.3", - "rollup-plugin-esbuild": "^6.2.1", "rollup-plugin-license": "^3.7.1", "size-limit": "~12.1.0", "tsx": "^4.23.0", diff --git a/packages/astro/package.json b/packages/astro/package.json index 3378c90eecc3..1ce7cfc586ab 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -66,11 +66,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-astro-*.tgz", diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index 7779dc1cc698..42e5979e2008 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -69,15 +69,16 @@ }, "scripts": { "build": "run-p build:transpile build:types", - "build:extension": "rollup -c rollup.lambda-extension.config.mjs && pnpm exec tsx scripts/buildLambdaExtension.ts", + "build:extension": "rolldown -c rollup.lambda-extension.config.mjs && pnpm exec tsx scripts/buildLambdaExtension.ts", "build:layer": "rimraf build/aws && pnpm exec tsx scripts/buildLambdaLayer.ts", "build:dev": "run-p build:transpile build:types", "build:transpile": "run-s build:transpile:npm build:extension", - "build:transpile:npm": "rollup -c rollup.npm.config.mjs", + "build:transpile:npm": "rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch", "build:dev:watch": "pnpm run 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", "clean": "rimraf build dist-awslambda-layer coverage sentry-serverless-*.tgz", diff --git a/packages/aws-serverless/rollup.npm.config.mjs b/packages/aws-serverless/rollup.npm.config.mjs index ff398be22729..f0d008b22f6f 100644 --- a/packages/aws-serverless/rollup.npm.config.mjs +++ b/packages/aws-serverless/rollup.npm.config.mjs @@ -9,7 +9,7 @@ function makeHandlerShimConfig() { const baseConfig = makeBaseNPMConfig({ entrypoints: ['src/run-lambda-handler.ts'], // Top-level await requires es2022. - esbuild: { target: 'es2022' }, + packageSpecificConfig: { transform: { target: 'es2022' } }, }); return { diff --git a/packages/aws-serverless/src/integration/awslambda.ts b/packages/aws-serverless/src/integration/awslambda.ts index 94ddb92d00f6..0f79bdb98695 100644 --- a/packages/aws-serverless/src/integration/awslambda.ts +++ b/packages/aws-serverless/src/integration/awslambda.ts @@ -8,11 +8,16 @@ const SHIM_MODULE_ID = '@sentry/aws-serverless/run-lambda-handler'; function resolveShimFile(): string | undefined { try { - // In the CJS build `require` exists; in the ESM build (and when running the TS source - // directly, e.g. in tests) we create one. Rollup converts `import.meta.url` to an - // equivalent for the CJS build, so both branches are always syntactically valid. - const resolve = typeof require === 'function' ? require.resolve : createRequire(import.meta.url).resolve; - return resolve(SHIM_MODULE_ID); + // `createRequire(import.meta.url)` covers both halves of the build: the CJS output rewrites + // `import.meta.url` to a `pathToFileURL(__filename)` equivalent, and the ESM output keeps it + // as-is. + // + // Do not reintroduce a `typeof require === 'function'` branch here. Rolldown renames a bare + // `require` to its own `__require` polyfill, which is a Proxy over a function that throws. + // The `typeof` check passes, `.resolve` on it is `undefined`, and calling that throws into + // the catch below - so the handler redirect is skipped and the Lambda runs uninstrumented, + // with nothing logged outside debug builds. + return createRequire(import.meta.url).resolve(SHIM_MODULE_ID); } catch (error) { DEBUG_BUILD && debug.warn(`Could not resolve ${SHIM_MODULE_ID}, not instrumenting the Lambda handler.`, error); return undefined; diff --git a/packages/browser-utils/package.json b/packages/browser-utils/package.json index 0d63187ddb91..c8f351251d96 100644 --- a/packages/browser-utils/package.json +++ b/packages/browser-utils/package.json @@ -40,11 +40,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "run-p build:transpile:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:watch": "run-p build:transpile:watch build:types:watch", + "build:dev:watch": "run-p build:transpile:watch build:types: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-browser-utils-*.tgz", "lint:fix": "oxlint . --fix --type-aware", diff --git a/packages/browser-utils/test/performance/elementTiming.test.ts b/packages/browser-utils/test/performance/elementTiming.test.ts index 54fc3fba12da..23f409098a05 100644 --- a/packages/browser-utils/test/performance/elementTiming.test.ts +++ b/packages/browser-utils/test/performance/elementTiming.test.ts @@ -1,12 +1,17 @@ -import * as sentryCore from '@sentry/core'; +import type * as sentryCore from '@sentry/core'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { elementTimingIntegration, startTrackingElementTiming } from '../../src/performance/elementTiming'; import * as browserMetricsInstrumentation from '../../src/instrumentation/performanceObserver'; import * as browserMetricsUtils from '../../src/performance/utils'; -describe('elementTimingIntegration', () => { - const distributionSpy = vi.spyOn(sentryCore.metrics, 'distribution'); +const { distributionSpy } = vi.hoisted(() => ({ distributionSpy: vi.fn() })); + +vi.mock('@sentry/core', async () => { + const actual = await vi.importActual('@sentry/core'); + return { ...actual, metrics: { ...actual.metrics, distribution: distributionSpy } }; +}); +describe('elementTimingIntegration', () => { let elementHandler: (data: { entries: PerformanceEntry[] }) => void; beforeEach(() => { diff --git a/packages/browser/package.json b/packages/browser/package.json index 8923b9b763fb..08c7f25b21b0 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -52,13 +52,14 @@ "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": "tsc -p tsconfig.types.json", - "build:watch": "run-p build:transpile:watch build:bundle:watch", - "build:dev:watch": "run-p build:transpile:watch", - "build:bundle:watch": "rollup -c rollup.bundle.config.mjs --watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "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": "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", "clean": "rimraf build coverage .rpt2_cache sentry-browser-*.tgz", diff --git a/packages/browser/test/tracing/browserTracingIntegration.test.ts b/packages/browser/test/tracing/browserTracingIntegration.test.ts index 0061ec0dde23..d8fe42557232 100644 --- a/packages/browser/test/tracing/browserTracingIntegration.test.ts +++ b/packages/browser/test/tracing/browserTracingIntegration.test.ts @@ -8,7 +8,6 @@ import { getCurrentScope, getDynamicSamplingContextFromSpan, getMainCarrier, - metrics, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, setCurrentClient, spanIsSampled, @@ -976,7 +975,6 @@ describe('browserTracingIntegration', () => { // so its hit/miss metric is emitted before this navigation span exists and lands on the trace // the page had before it was frozen. See the note on the pageshow handler. it('emits the bfcache metric on the pre-freeze trace, before the navigation span exists', () => { - const countSpy = vi.spyOn(metrics, 'count').mockImplementation(() => {}); const client = new BrowserClient( getDefaultBrowserClientOptions({ tracesSampleRate: 1, @@ -989,7 +987,7 @@ describe('browserTracingIntegration', () => { const traceIdBeforeRestore = getCurrentScope().getPropagationContext().traceId; let traceIdAtMetricTime: string | undefined; - countSpy.mockImplementation(() => { + client.on('processMetric', () => { traceIdAtMetricTime = getCurrentScope().getPropagationContext().traceId; }); diff --git a/packages/bun/package.json b/packages/bun/package.json index e1431a381b77..c8bcb98c0239 100644 --- a/packages/bun/package.json +++ b/packages/bun/package.json @@ -54,11 +54,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-bun-*.tgz", diff --git a/packages/bun/test/integrations/bunRuntimeMetrics.test.ts b/packages/bun/test/integrations/bunRuntimeMetrics.test.ts index a03b07ffe760..8b5ce6b5d00b 100644 --- a/packages/bun/test/integrations/bunRuntimeMetrics.test.ts +++ b/packages/bun/test/integrations/bunRuntimeMetrics.test.ts @@ -1,5 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, jest, mock, spyOn } from 'bun:test'; -import { metrics } from '@sentry/core'; + +const mockGauge = jest.fn(); +const mockCount = jest.fn(); const mockElu = { idle: 700, active: 300, utilization: 0.3 }; const mockEluDelta = { idle: 700, active: 300, utilization: 0.3 }; @@ -12,16 +14,19 @@ mock.module('perf_hooks', () => ({ performance: { eventLoopUtilization: mockEventLoopUtilization }, })); +const actualCore = await import('@sentry/core'); +mock.module('@sentry/core', () => ({ + ...actualCore, + metrics: { ...actualCore.metrics, gauge: mockGauge, count: mockCount }, +})); + const { bunRuntimeMetricsIntegration } = await import('../../src/integrations/bunRuntimeMetrics'); describe('bunRuntimeMetricsIntegration', () => { - let gaugeSpy: ReturnType; - let countSpy: ReturnType; - beforeEach(() => { jest.useFakeTimers(); - gaugeSpy = spyOn(metrics, 'gauge').mockImplementation(() => undefined); - countSpy = spyOn(metrics, 'count').mockImplementation(() => undefined); + mockGauge.mockClear(); + mockCount.mockClear(); spyOn(process, 'cpuUsage').mockReturnValue({ user: 500_000, system: 200_000 }); spyOn(process, 'memoryUsage').mockReturnValue({ @@ -50,9 +55,9 @@ describe('bunRuntimeMetricsIntegration', () => { const integration = bunRuntimeMetricsIntegration({ collectionIntervalMs: 1_000 }); integration.setup(); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); }); it('does not throw if performance.eventLoopUtilization is unavailable', () => { @@ -75,7 +80,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.cpu.utilization', expect.any(Number), ORIGIN); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.cpu.utilization', expect.any(Number), ORIGIN); }); it('does not emit cpu.user / cpu.system by default (opt-in)', () => { @@ -83,8 +88,8 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.cpu.user', expect.anything(), expect.anything()); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.cpu.system', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.cpu.user', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.cpu.system', expect.anything(), expect.anything()); }); it('emits cpu.user / cpu.system when cpuTime is opted in', () => { @@ -95,8 +100,8 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.cpu.user', expect.any(Number), SECOND); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.cpu.system', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.cpu.user', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.cpu.system', expect.any(Number), SECOND); }); it('emits mem.rss, mem.heap_used, mem.heap_total (default on)', () => { @@ -104,9 +109,9 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.mem.rss', 50_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.mem.heap_used', 20_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.mem.heap_total', 30_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.mem.rss', 50_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.mem.heap_used', 20_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.mem.heap_total', 30_000_000, BYTE); }); it('does not emit mem.external / mem.array_buffers by default (opt-in)', () => { @@ -114,8 +119,8 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.mem.external', expect.anything(), expect.anything()); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.mem.array_buffers', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.mem.external', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.mem.array_buffers', expect.anything(), expect.anything()); }); it('emits mem.external / mem.array_buffers when opted in', () => { @@ -126,8 +131,8 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.mem.external', 1_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.mem.array_buffers', 500_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.mem.external', 1_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.mem.array_buffers', 500_000, BYTE); }); it('emits event loop utilization metric', () => { @@ -135,7 +140,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('bun.runtime.event_loop.utilization', 0.3, ORIGIN); + expect(mockGauge).toHaveBeenCalledWith('bun.runtime.event_loop.utilization', 0.3, ORIGIN); }); it('does not emit event loop utilization if performance.eventLoopUtilization threw during setup', () => { @@ -147,7 +152,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( 'bun.runtime.event_loop.utilization', expect.anything(), expect.anything(), @@ -159,7 +164,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(countSpy).toHaveBeenCalledWith('bun.runtime.process.uptime', expect.any(Number), SECOND); + expect(mockCount).toHaveBeenCalledWith('bun.runtime.process.uptime', expect.any(Number), SECOND); }); }); @@ -172,7 +177,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.cpu.utilization', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.cpu.utilization', expect.anything(), expect.anything()); }); it('skips mem.rss when memRss is false', () => { @@ -183,7 +188,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('bun.runtime.mem.rss', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('bun.runtime.mem.rss', expect.anything(), expect.anything()); }); it('skips event loop utilization when eventLoopUtilization is false', () => { @@ -194,7 +199,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( 'bun.runtime.event_loop.utilization', expect.anything(), expect.anything(), @@ -209,7 +214,7 @@ describe('bunRuntimeMetricsIntegration', () => { integration.setup(); jest.advanceTimersByTime(1_000); - expect(countSpy).not.toHaveBeenCalledWith('bun.runtime.process.uptime', expect.anything(), expect.anything()); + expect(mockCount).not.toHaveBeenCalledWith('bun.runtime.process.uptime', expect.anything(), expect.anything()); }); }); @@ -225,10 +230,10 @@ describe('bunRuntimeMetricsIntegration', () => { // Should fire at minimum 1000ms, not at 100ms jest.advanceTimersByTime(100); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); jest.advanceTimersByTime(900); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); }); it('falls back to default when NaN', () => { @@ -241,10 +246,10 @@ describe('bunRuntimeMetricsIntegration', () => { // Should fire at the default 30000ms, not at 1000ms jest.advanceTimersByTime(1000); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); jest.advanceTimersByTime(29_000); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); }); }); }); diff --git a/packages/bundler-plugins/package.json b/packages/bundler-plugins/package.json index 9cacb1a31eda..5d158f476ace 100644 --- a/packages/bundler-plugins/package.json +++ b/packages/bundler-plugins/package.json @@ -70,11 +70,11 @@ "build": "run-p build:transpile build:types", "build:dev": "pnpm run build", "build:version": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/core/version.ts", - "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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "prebuild": "pnpm run build:version", "precheck:types": "pnpm run build:version", diff --git a/packages/bundler-plugins/rollup.npm.config.mjs b/packages/bundler-plugins/rollup.npm.config.mjs index 65f39a6a8d22..fe3144be69de 100644 --- a/packages/bundler-plugins/rollup.npm.config.mjs +++ b/packages/bundler-plugins/rollup.npm.config.mjs @@ -13,16 +13,16 @@ export default makeNPMConfigVariants( 'src/babel-plugin/index.ts', ], packageSpecificConfig: { + // This package only ever runs in Node, at build time. Without pinning the platform, rolldown + // would infer 'browser' for the ESM half, which defines `process.env.NODE_ENV` as + // 'development' (silently disabling release creation and sourcemap upload) and drops the + // `import.meta.url` rewrite the `createRequire` calls in `./webpack` depend on. + platform: 'node', output: { // Multiple entry points with no single default export -> emit named exports - // so rollup doesn't warn. `preserveModules` (true by default in the base config) + // so the bundler doesn't warn. `preserveModules` (true by default in the base config) // keeps the per-submodule file layout the `exports` map points at. exports: 'named', - // The source default-imports CJS Node builtins (e.g. `import crypto from 'crypto'`). - // The shared base config's `interop: 'esModule'` would emit `require('crypto').default` - // in the CJS build (undefined for real CJS modules -> runtime crash). `auto` emits the - // interop helper so default-imported CJS builtins resolve correctly. - interop: 'auto', }, }, }), diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index 5ea29fc33e01..2f6e4699f352 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -83,11 +83,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-cloudflare-*.tgz", diff --git a/packages/core/package.json b/packages/core/package.json index f320a3bf6dce..61f7b9c872b6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -70,11 +70,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-core-*.tgz", diff --git a/packages/core/rollup.npm.config.mjs b/packages/core/rollup.npm.config.mjs index 47d28e630457..1b079d3deb74 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')); @@ -23,12 +23,14 @@ const settings = { preserveModules: true, }, plugins: [ - replace({ - preventAssignment: true, - values: { + replacePlugin( + { __SENTRY_SDK_VERSION__: JSON.stringify(packageVersion), }, - }), + { + preventAssignment: true, + }, + ), ], }, }; diff --git a/packages/deno/package.json b/packages/deno/package.json index ff0e3afd3f38..fcf2e6264882 100644 --- a/packages/deno/package.json +++ b/packages/deno/package.json @@ -37,7 +37,7 @@ "deno-types": "node ./scripts/download-deno-types.mjs", "build": "run-s build:transpile build:types", "build:dev": "pnpm run build", - "build:transpile": "pnpm run deno-types && rollup -c rollup.npm.config.mjs", + "build:transpile": "pnpm run 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/deno/rollup.npm.config.mjs b/packages/deno/rollup.npm.config.mjs index 08ffaddf0bbe..ddfaf47224a3 100644 --- a/packages/deno/rollup.npm.config.mjs +++ b/packages/deno/rollup.npm.config.mjs @@ -1,4 +1,4 @@ -import { defineConfig } from 'rollup'; +import { defineConfig } from 'rolldown'; import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; const orchestrionRuntimeHooks = [ diff --git a/packages/effect/package.json b/packages/effect/package.json index 6997a2cdd1cc..ea0b43fe95ae 100644 --- a/packages/effect/package.json +++ b/packages/effect/package.json @@ -64,11 +64,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts", "clean": "rimraf build coverage sentry-effect-*.tgz", diff --git a/packages/effect/src/errorReporter.ts b/packages/effect/src/errorReporter.ts index 8accd462557c..197066e41fcf 100644 --- a/packages/effect/src/errorReporter.ts +++ b/packages/effect/src/errorReporter.ts @@ -9,9 +9,9 @@ import type * as LogLevel from 'effect/LogLevel'; // `effect/ErrorReporter` only exists in Effect v4, so it is read off the main entry instead of being imported // as a subpath. On Effect v3 the lookup yields `undefined` and no reporter is registered. The property is read -// through a separate binding because bundlers fail the build on `Effect.ErrorReporter` when the export is absent. -const effectExports = Effect as Record; -const ErrorReporter = effectExports.ErrorReporter as typeof EffectErrorReporter | undefined; +// with `Reflect.get` because bundlers fail the build on `Effect.ErrorReporter` when the export is absent, and +// an aliased property read gets folded back into exactly that member access by our own build. +const ErrorReporter = Reflect.get(Effect, 'ErrorReporter') as typeof EffectErrorReporter | undefined; const SEVERITY_TO_LEVEL: Record = { Fatal: 'fatal', diff --git a/packages/effect/test/metrics.test.ts b/packages/effect/test/metrics.test.ts index a8d5a9813fa9..54c5ecf9dd5a 100644 --- a/packages/effect/test/metrics.test.ts +++ b/packages/effect/test/metrics.test.ts @@ -1,25 +1,33 @@ import { describe, expect, it } from '@effect/vitest'; -import * as sentryCore from '@sentry/core'; import * as Context from 'effect/Context'; import { Duration, Effect, Layer, Metric } from 'effect'; import { TestClock } from 'effect/testing'; import { afterEach, beforeEach, vi } from 'vitest'; import { SentryEffectMetricsLayer } from '../src/metrics'; -describe('SentryEffectMetricsLayer', () => { - const mockCount = vi.fn(); - const mockGauge = vi.fn(); - const mockDistribution = vi.fn(); +const { mockCount, mockGauge, mockDistribution } = vi.hoisted(() => ({ + mockCount: vi.fn(), + mockGauge: vi.fn(), + mockDistribution: vi.fn(), +})); + +vi.mock('@sentry/core', async () => { + const actual = await vi.importActual('@sentry/core'); + return { + ...actual, + metrics: { ...actual.metrics, count: mockCount, gauge: mockGauge, distribution: mockDistribution }, + }; +}); +describe('SentryEffectMetricsLayer', () => { beforeEach(() => { - vi.spyOn(sentryCore.metrics, 'count').mockImplementation(mockCount); - vi.spyOn(sentryCore.metrics, 'gauge').mockImplementation(mockGauge); - vi.spyOn(sentryCore.metrics, 'distribution').mockImplementation(mockDistribution); + mockCount.mockClear(); + mockGauge.mockClear(); + mockDistribution.mockClear(); }); afterEach(() => { vi.clearAllMocks(); - vi.restoreAllMocks(); }); it.effect('creates counter metrics', () => @@ -146,19 +154,14 @@ describe('SentryEffectMetricsLayer', () => { }); describe('SentryEffectMetricsLayer flushing', () => { - const mockCount = vi.fn(); - const mockGauge = vi.fn(); - const mockDistribution = vi.fn(); - beforeEach(() => { - vi.spyOn(sentryCore.metrics, 'count').mockImplementation(mockCount); - vi.spyOn(sentryCore.metrics, 'gauge').mockImplementation(mockGauge); - vi.spyOn(sentryCore.metrics, 'distribution').mockImplementation(mockDistribution); + mockCount.mockClear(); + mockGauge.mockClear(); + mockDistribution.mockClear(); }); afterEach(() => { vi.clearAllMocks(); - vi.restoreAllMocks(); }); const TestLayer = SentryEffectMetricsLayer.pipe(Layer.provideMerge(TestClock.layer())); diff --git a/packages/elysia/package.json b/packages/elysia/package.json index df0246417cbe..e7d9bfb55945 100644 --- a/packages/elysia/package.json +++ b/packages/elysia/package.json @@ -51,11 +51,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", "clean": "rimraf build coverage sentry-elysia-*.tgz", diff --git a/packages/esbuild-plugin/package.json b/packages/esbuild-plugin/package.json index 32d433894f2b..b1ad05befa04 100644 --- a/packages/esbuild-plugin/package.json +++ b/packages/esbuild-plugin/package.json @@ -35,11 +35,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-esbuild-plugin-*.tgz", "lint": "oxlint . --type-aware", diff --git a/packages/feedback/package.json b/packages/feedback/package.json index 2fed4e3e96b2..dd48917bad44 100644 --- a/packages/feedback/package.json +++ b/packages/feedback/package.json @@ -40,8 +40,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": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:bundle:watch", diff --git a/packages/feedback/rollup.bundle.config.mjs b/packages/feedback/rollup.bundle.config.mjs index b3f54dfb2b85..67d78d9cb9b4 100644 --- a/packages/feedback/rollup.bundle.config.mjs +++ b/packages/feedback/rollup.bundle.config.mjs @@ -1,5 +1,12 @@ import { makeBaseBundleConfig, makeBundleConfigVariants } from '@sentry-internal/rollup-utils'; +// The widget's `.tsx` files import `h`/`Fragment` from preact directly and rely on the classic +// transform, the way the rollup build's esbuild `jsxFactory` override did. Rolldown would otherwise +// read `jsx: "react-jsx"` from tsconfig and pull in `preact/jsx-runtime`. +const preactJsx = { + transform: { jsx: { runtime: 'classic', pragma: 'h', pragmaFrag: 'Fragment' } }, +}; + export default [ // The core `feedback` bundle is built in the browser package // Sub-bundles are built here @@ -10,11 +17,7 @@ export default [ jsVersion: 'es6', licenseTitle: '@sentry/feedback', outputFileBase: () => 'bundles/feedback-screenshot', - esbuild: { - // The feedback widget uses preact, so override esbuild's React defaults. - jsxFactory: 'h', - jsxFragment: 'Fragment', - }, + packageSpecificConfig: preactJsx, }), ), ...makeBundleConfigVariants( @@ -24,11 +27,7 @@ export default [ jsVersion: 'es6', licenseTitle: '@sentry/feedback', outputFileBase: () => 'bundles/feedback-modal', - esbuild: { - // The feedback widget uses preact, so override esbuild's React defaults. - jsxFactory: 'h', - jsxFragment: 'Fragment', - }, + packageSpecificConfig: preactJsx, }), ), ]; diff --git a/packages/feedback/rollup.npm.config.mjs b/packages/feedback/rollup.npm.config.mjs index 03e8c739c9d6..c698f3ffa6c4 100644 --- a/packages/feedback/rollup.npm.config.mjs +++ b/packages/feedback/rollup.npm.config.mjs @@ -11,11 +11,11 @@ export default makeNPMConfigVariants( // to bundle everything into one file. preserveModules: false, }, - }, - esbuild: { - // The feedback widget uses preact, so override esbuild's React defaults. - jsxFactory: 'h', - jsxFragment: 'Fragment', + // The widget's `.tsx` files import `h`/`Fragment` from preact directly and rely on the + // classic transform, the way the rollup build's esbuild `jsxFactory` override did. Rolldown + // would otherwise read `jsx: "react-jsx"` from tsconfig, pull in `preact/jsx-runtime` and + // leave those imports dead. + transform: { jsx: { runtime: 'classic', pragma: 'h', pragmaFrag: 'Fragment' } }, }, }), ); diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 96454570f0ed..21f6f5b63ecb 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -57,11 +57,12 @@ "build:dev": "pnpm run 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": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch", "build:dev:watch": "pnpm run 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", "clean": "rimraf build coverage *.d.ts sentry-gatsby-*.tgz", diff --git a/packages/google-cloud-serverless/package.json b/packages/google-cloud-serverless/package.json index 9372b4874209..3258c92638f0 100644 --- a/packages/google-cloud-serverless/package.json +++ b/packages/google-cloud-serverless/package.json @@ -60,11 +60,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-google-cloud-*.tgz", diff --git a/packages/google-cloud-serverless/rollup.npm.config.mjs b/packages/google-cloud-serverless/rollup.npm.config.mjs index 9ffe2dab5427..e87b4a22a6e2 100644 --- a/packages/google-cloud-serverless/rollup.npm.config.mjs +++ b/packages/google-cloud-serverless/rollup.npm.config.mjs @@ -1,3 +1,11 @@ import { makeBaseNPMConfig, makeNPMConfigVariants, makeOrchestrionLoader } from '@sentry-internal/rollup-utils'; -export default [...makeNPMConfigVariants(makeBaseNPMConfig()), ...makeOrchestrionLoader('./build')]; +export default [ + ...makeNPMConfigVariants( + makeBaseNPMConfig({ + // Rolldown bundles `require()` calls, so the user-provided module this lazily requires has to be external. + packageSpecificConfig: { external: ['@google-cloud/common'] }, + }), + ), + ...makeOrchestrionLoader('./build'), +]; diff --git a/packages/hono/package.json b/packages/hono/package.json index ce561d1101ac..a9f1e468a114 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -115,11 +115,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "circularDepCheck": "madge --circular src/index.ts", "clean": "rimraf build coverage sentry-hono-*.tgz", diff --git a/packages/integration-shims/package.json b/packages/integration-shims/package.json index 0112e57ee242..8362530b867c 100644 --- a/packages/integration-shims/package.json +++ b/packages/integration-shims/package.json @@ -25,7 +25,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": "tsc -p tsconfig.types.json", "build:dev": "pnpm run build", "build:watch": "run-p build:transpile:watch", diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index a1904cd78987..7652d797c095 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -62,13 +62,14 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-nestjs-*.tgz ./*.d.ts ./*.d.ts.map", diff --git a/packages/nextjs/rollup.npm.config.mjs b/packages/nextjs/rollup.npm.config.mjs index 925a49507c0f..104dc8087894 100644 --- a/packages/nextjs/rollup.npm.config.mjs +++ b/packages/nextjs/rollup.npm.config.mjs @@ -21,6 +21,10 @@ export default [ packageSpecificConfig: { external: ['next/router', 'next/constants.js', '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: [ { @@ -53,8 +57,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/templates', // 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) @@ -71,6 +74,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; + }, + }, + ], }, }), ), @@ -80,8 +110,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/loaders', // 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 a30dcc415702..c96b2db165a0 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('pnpm exec rollup -c rollup.npm.config.mjs'); +run('pnpm exec 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..45ddaea4ba67 100644 --- a/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts +++ b/packages/nextjs/src/config/templates/sentryInitWrapperTemplate.ts @@ -1,8 +1,10 @@ -// @ts-expect-error This will be replaced with the user's sentry config gile +// @ts-expect-error This will be replaced with the user's sentry config file 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/nitro/package.json b/packages/nitro/package.json index 5ec0a62cecab..f54c2c0d190d 100644 --- a/packages/nitro/package.json +++ b/packages/nitro/package.json @@ -50,12 +50,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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": "pnpm run 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 coverage sentry-nitro-*.tgz", diff --git a/packages/node-native/package.json b/packages/node-native/package.json index d74d8798aaa9..44c8523fec7b 100644 --- a/packages/node-native/package.json +++ b/packages/node-native/package.json @@ -47,11 +47,12 @@ "lint:es-compatibility": "es-check es2022 ./build/cjs/*.js && es-check es2022 ./build/esm/*.js --module", "lint:fix": "oxlint . --fix --type-aware", "build": "pnpm run build:types && pnpm run build:transpile", - "build:transpile": "pnpm exec rollup -c rollup.npm.config.mjs", + "build:transpile": "pnpm exec rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:dev": "pnpm clean && pnpm run build", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", - "build:watch": "run-p build:transpile:watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", + "build:types:watch": "tsc -p tsconfig.types.json --watch", + "build:watch": "run-p build:transpile:watch build:types:watch", "build:tarball": "npm pack" }, "dependencies": { diff --git a/packages/node/package.json b/packages/node/package.json index 13c09eb922f6..d3b7694cd9f5 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -91,11 +91,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-node-*.tgz", diff --git a/packages/node/rollup.npm.config.mjs b/packages/node/rollup.npm.config.mjs index 45f7f66a6df4..b1262c0c1f50 100644 --- a/packages/node/rollup.npm.config.mjs +++ b/packages/node/rollup.npm.config.mjs @@ -1,4 +1,3 @@ -import replace from '@rollup/plugin-replace'; import { makeBaseNPMConfig, makeNPMConfigVariants, makeOrchestrionLoader } from '@sentry-internal/rollup-utils'; import { createWorkerCodeBuilder } from './rollup.anr-worker.config.mjs'; @@ -12,6 +11,23 @@ const [localVariablesWorkerConfig, getLocalVariablesBase64Code] = createWorkerCo 'build/esm/integrations/local-variables', ); +// The worker configs above only produce their base64 payload once their own `renderChunk` has run, +// so the placeholder values have to be read lazily. Rolldown's builtin replace plugin takes plain +// strings up front, which would capture the (still empty) payload at config time. +function makeLazyReplacePlugin(replacements, { delimiters: [delimiterStart, delimiterEnd] }) { + return { + name: 'lazy-replace-plugin', + renderChunk(code) { + const replaced = Object.entries(replacements).reduce( + (result, [key, getValue]) => result.split(`${delimiterStart}${key}${delimiterEnd}`).join(getValue()), + code, + ); + + return replaced === code ? null : { code: replaced }; + }, + }; +} + export default [ // The `@sentry/node/import` entry (`node --import @sentry/node/import app.js`), which registers // the orchestrion diagnostics-channel injection before the app loads. @@ -38,15 +54,13 @@ 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/src/integrations/fs/vendored/instrumentation.ts b/packages/node/src/integrations/fs/vendored/instrumentation.ts index d341a3d9ffa3..84d7f6a6103d 100644 --- a/packages/node/src/integrations/fs/vendored/instrumentation.ts +++ b/packages/node/src/integrations/fs/vendored/instrumentation.ts @@ -12,6 +12,10 @@ * - Completely reworked to no longer reference OpenTelemetry. * - The upstream `fs_error` span attribute (the error message) was replaced with the conventions-backed * `error.type` (the syscall error code, e.g. `ENOENT`). + * - `fs` is default-imported rather than namespace-imported. A namespace import compiles to a copied + * namespace object whose properties are getter-only, so the patching below would write to the copy + * and leave the real module untouched. The default export is the module itself in both output + * formats, so patching it reaches every other consumer of `require('fs')` / `import 'fs'`. */ import { ERROR_TYPE, SENTRY_OP, SENTRY_ORIGIN } from '@sentry/conventions/attributes'; @@ -25,7 +29,7 @@ import { suppressTracing, withActiveSpan, } from '@sentry/core'; -import * as fs from 'fs'; +import fs from 'fs'; import { promisify } from 'util'; import { CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS, SYNC_FUNCTIONS } from './constants'; import type { FMember, FPMember, FsInstrumentationConfig, GenericFunction } from './types'; diff --git a/packages/node/test/integrations/nodeRuntimeMetrics.test.ts b/packages/node/test/integrations/nodeRuntimeMetrics.test.ts index f5dd76edf779..fd3e239d2be0 100644 --- a/packages/node/test/integrations/nodeRuntimeMetrics.test.ts +++ b/packages/node/test/integrations/nodeRuntimeMetrics.test.ts @@ -1,7 +1,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { metrics } from '@sentry/core'; import { nodeRuntimeMetricsIntegration } from '../../src/integrations/nodeRuntimeMetrics'; +const { mockGauge, mockCount } = vi.hoisted(() => ({ mockGauge: vi.fn(), mockCount: vi.fn() })); + const { mockHistogram, mockMonitorEventLoopDelay, mockPerformance } = vi.hoisted(() => { const mockHistogram = { min: 2_000_000, @@ -38,17 +39,14 @@ vi.mock('perf_hooks', () => ({ vi.mock('@sentry/core', async () => { const actual = await vi.importActual('@sentry/core'); - return { ...actual }; + return { ...actual, metrics: { ...actual.metrics, gauge: mockGauge, count: mockCount } }; }); describe('nodeRuntimeMetricsIntegration', () => { - let gaugeSpy: ReturnType; - let countSpy: ReturnType; - beforeEach(() => { vi.useFakeTimers(); - gaugeSpy = vi.spyOn(metrics, 'gauge'); - countSpy = vi.spyOn(metrics, 'count'); + mockGauge.mockClear(); + mockCount.mockClear(); vi.spyOn(process, 'cpuUsage').mockReturnValue({ user: 500_000, system: 200_000 }); vi.spyOn(process, 'memoryUsage').mockReturnValue({ @@ -98,9 +96,9 @@ describe('nodeRuntimeMetricsIntegration', () => { const integration = nodeRuntimeMetricsIntegration({ collectionIntervalMs: 1_000 }); integration.setup(); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); }); }); @@ -114,7 +112,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.cpu.utilization', expect.any(Number), ORIGIN); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.cpu.utilization', expect.any(Number), ORIGIN); }); it('does not emit cpu.user / cpu.system by default (opt-in)', () => { @@ -122,8 +120,8 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.cpu.user', expect.anything(), expect.anything()); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.cpu.system', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('node.runtime.cpu.user', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('node.runtime.cpu.system', expect.anything(), expect.anything()); }); it('emits cpu.user / cpu.system when cpuTime is opted in', () => { @@ -134,8 +132,8 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.cpu.user', expect.any(Number), SECOND); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.cpu.system', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.cpu.user', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.cpu.system', expect.any(Number), SECOND); }); it('emits mem.rss, mem.heap_used, mem.heap_total (default on)', () => { @@ -143,9 +141,9 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.mem.rss', 50_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.mem.heap_used', 20_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.mem.heap_total', 30_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.mem.rss', 50_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.mem.heap_used', 20_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.mem.heap_total', 30_000_000, BYTE); }); it('does not emit mem.external / mem.array_buffers by default (opt-in)', () => { @@ -153,8 +151,12 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.mem.external', expect.anything(), expect.anything()); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.mem.array_buffers', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('node.runtime.mem.external', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith( + 'node.runtime.mem.array_buffers', + expect.anything(), + expect.anything(), + ); }); it('emits mem.external / mem.array_buffers when opted in', () => { @@ -165,8 +167,8 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.mem.external', 1_000_000, BYTE); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.mem.array_buffers', 500_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.mem.external', 1_000_000, BYTE); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.mem.array_buffers', 500_000, BYTE); }); it('emits event_loop.delay.p50 and p99 (default on) and resets histogram', () => { @@ -174,8 +176,8 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.p50', expect.any(Number), SECOND); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.p99', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.p50', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.p99', expect.any(Number), SECOND); expect(mockHistogram.reset).toHaveBeenCalledOnce(); }); @@ -185,7 +187,7 @@ describe('nodeRuntimeMetricsIntegration', () => { vi.advanceTimersByTime(1_000); for (const suffix of ['min', 'max', 'mean', 'p90']) { - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( `node.runtime.event_loop.delay.${suffix}`, expect.anything(), expect.anything(), @@ -207,11 +209,11 @@ describe('nodeRuntimeMetricsIntegration', () => { vi.advanceTimersByTime(1_000); // min: (2_000_000 - 10_000_000) clamped to 0 → 0s - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.min', 0, SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.min', 0, SECOND); // max: (20_000_000 - 10_000_000) / 1e9 → 0.01s - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.max', 0.01, SECOND); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.mean', 0, SECOND); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.p90', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.max', 0.01, SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.mean', 0, SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.p90', expect.any(Number), SECOND); }); it('emits event loop utilization metric', () => { @@ -219,7 +221,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.utilization', 0.3, ORIGIN); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.utilization', 0.3, ORIGIN); }); it('emits uptime counter', () => { @@ -227,7 +229,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(countSpy).toHaveBeenCalledWith('node.runtime.process.uptime', expect.any(Number), SECOND); + expect(mockCount).toHaveBeenCalledWith('node.runtime.process.uptime', expect.any(Number), SECOND); }); it('does not emit event loop delay metrics if monitorEventLoopDelay threw', () => { @@ -239,7 +241,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( 'node.runtime.event_loop.delay.p99', expect.anything(), expect.anything(), @@ -256,7 +258,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.cpu.utilization', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('node.runtime.cpu.utilization', expect.anything(), expect.anything()); }); it('skips mem.rss when memRss is false', () => { @@ -267,7 +269,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith('node.runtime.mem.rss', expect.anything(), expect.anything()); + expect(mockGauge).not.toHaveBeenCalledWith('node.runtime.mem.rss', expect.anything(), expect.anything()); }); it('skips event loop delay metrics when all delay flags are false', () => { @@ -280,7 +282,7 @@ describe('nodeRuntimeMetricsIntegration', () => { expect(mockMonitorEventLoopDelay).not.toHaveBeenCalled(); vi.advanceTimersByTime(1_000); for (const suffix of ['min', 'max', 'mean', 'p50', 'p90', 'p99']) { - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( `node.runtime.event_loop.delay.${suffix}`, expect.anything(), expect.anything(), @@ -296,12 +298,12 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( 'node.runtime.event_loop.delay.p99', expect.anything(), expect.anything(), ); - expect(gaugeSpy).toHaveBeenCalledWith('node.runtime.event_loop.delay.p50', expect.any(Number), SECOND); + expect(mockGauge).toHaveBeenCalledWith('node.runtime.event_loop.delay.p50', expect.any(Number), SECOND); }); it('skips event loop utilization when eventLoopUtilization is false', () => { @@ -312,7 +314,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(gaugeSpy).not.toHaveBeenCalledWith( + expect(mockGauge).not.toHaveBeenCalledWith( 'node.runtime.event_loop.utilization', expect.anything(), expect.anything(), @@ -327,7 +329,7 @@ describe('nodeRuntimeMetricsIntegration', () => { integration.setup(); vi.advanceTimersByTime(1_000); - expect(countSpy).not.toHaveBeenCalledWith('node.runtime.process.uptime', expect.anything(), expect.anything()); + expect(mockCount).not.toHaveBeenCalledWith('node.runtime.process.uptime', expect.anything(), expect.anything()); }); it('enforces minimum collectionIntervalMs of 1000ms and warns', () => { @@ -341,10 +343,10 @@ describe('nodeRuntimeMetricsIntegration', () => { // Should fire at the minimum 1000ms, not at 100ms vi.advanceTimersByTime(100); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); vi.advanceTimersByTime(900); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); warnSpy.mockRestore(); }); @@ -359,10 +361,10 @@ describe('nodeRuntimeMetricsIntegration', () => { // Should fire at the default 30000ms, not at 1000ms vi.advanceTimersByTime(1000); - expect(gaugeSpy).not.toHaveBeenCalled(); + expect(mockGauge).not.toHaveBeenCalled(); vi.advanceTimersByTime(29_000); - expect(gaugeSpy).toHaveBeenCalled(); + expect(mockGauge).toHaveBeenCalled(); warnSpy.mockRestore(); }); diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 5b8de469cb9f..1aa9a13e13a5 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -75,12 +75,13 @@ "scripts": { "build": "run-s build:types build:transpile", "build:dev": "pnpm run build", - "build:nuxt-module": "rollup -c rollup.module.config.mjs && tsc -p tsconfig.module.json && node scripts/build-module-meta.mjs", - "build:transpile": "rollup -c rollup.npm.config.mjs && pnpm run build:nuxt-module", + "build:nuxt-module": "rolldown -c rollup.module.config.mjs && tsc -p tsconfig.module.json && node scripts/build-module-meta.mjs", + "build:transpile": "rolldown -c rollup.npm.config.mjs && pnpm run build:nuxt-module", "build:types": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch", "build:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-nuxt-*.tgz", diff --git a/packages/nuxt/rollup.module.config.mjs b/packages/nuxt/rollup.module.config.mjs index 991ea9c58fae..7dbe0155fe9a 100644 --- a/packages/nuxt/rollup.module.config.mjs +++ b/packages/nuxt/rollup.module.config.mjs @@ -1,26 +1,17 @@ import { readdirSync } from 'node:fs'; import { isAbsolute, join } from 'node:path'; -import esbuild from 'rollup-plugin-esbuild'; // The Nuxt module ships two kinds of output that live side by side in `build/module`: // - `module.mjs`: the module entry, bundled from `src/module.ts`. // - `runtime/**`: the files Nuxt injects into the consuming app, emitted one-to-one // (never bundled) because the app's own build re-processes them. -// This config replaces `@nuxt/module-builder` so the package builds with plain rollup + tsc +// This config replaces `@nuxt/module-builder` so the package builds with plain rolldown + tsc // and doesn't couple us to a build tool that consumes the TypeScript compiler API. // Anything that isn't a relative path is provided by the consuming app or Node at runtime // (this covers `@sentry/*`, `nuxt/app`, `#imports`, node builtins), so it stays external. const isExternal = id => !id.startsWith('.') && !isAbsolute(id) && !id.startsWith('\0'); -const transpile = esbuild({ - target: 'es2020', - // Don't read a per-package tsconfig; pin only what affects codegen. - tsconfig: false, - tsconfigRaw: { compilerOptions: { useDefineForClassFields: false } }, - sourceMap: false, -}); - function runtimeEntrypoints(dir = 'src/runtime', acc = []) { for (const entry of readdirSync(dir, { withFileTypes: true })) { const full = join(dir, entry.name); @@ -34,23 +25,27 @@ function runtimeEntrypoints(dir = 'src/runtime', acc = []) { return acc; } +// Don't read a per-package tsconfig; pin only what affects codegen. +const transpile = { tsconfig: false, transform: { target: 'es2020' } }; + export default [ { + ...transpile, input: 'src/module.ts', - output: { file: 'build/module/module.mjs', format: 'esm' }, + output: { file: 'build/module/module.mjs', format: 'esm', sourcemap: false }, external: isExternal, - plugins: [transpile], }, { + ...transpile, input: runtimeEntrypoints(), output: { dir: 'build/module/runtime', format: 'esm', + sourcemap: false, preserveModules: true, preserveModulesRoot: 'src/runtime', entryFileNames: '[name].js', }, external: isExternal, - plugins: [transpile], }, ]; diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index 1438faa698c1..5e6c1443fce0 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -39,11 +39,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-opentelemetry-*.tgz", diff --git a/packages/profiling-node/package.json b/packages/profiling-node/package.json index 2d15039a2079..c5c52169ff28 100644 --- a/packages/profiling-node/package.json +++ b/packages/profiling-node/package.json @@ -39,11 +39,12 @@ "lint:es-compatibility": "es-check es2022 ./build/cjs/*.js && es-check es2022 ./build/esm/*.js --module", "lint:fix": "oxlint . --fix --type-aware", "build": "pnpm run build:types && pnpm run build:transpile", - "build:transpile": "pnpm exec rollup -c rollup.npm.config.mjs", + "build:transpile": "pnpm exec rolldown -c rollup.npm.config.mjs", "build:types": "tsc -p tsconfig.types.json", "build:dev": "pnpm clean && pnpm run build", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", - "build:watch": "run-p build:transpile:watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", + "build:types:watch": "tsc -p tsconfig.types.json --watch", + "build:watch": "run-p build:transpile:watch build:types:watch", "build:tarball": "npm pack", "test:bundle": "node test-binaries.esbuild.js", "test": "vitest run", diff --git a/packages/react-router/package.json b/packages/react-router/package.json index d0cea910cc1a..a31e46644670 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -82,12 +82,13 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-react-router-*.tgz", diff --git a/packages/react/package.json b/packages/react/package.json index 17e3a19caf2f..9d2ad236e6b3 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -93,11 +93,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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/react-router.ts", "clean": "rimraf build coverage sentry-react-*.tgz", diff --git a/packages/remix/package.json b/packages/remix/package.json index 1952617db498..cedbaf77004b 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -107,11 +107,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-remix-*.tgz", diff --git a/packages/remix/rollup.npm.config.mjs b/packages/remix/rollup.npm.config.mjs index 40b06766961c..1a1ad4fba91f 100644 --- a/packages/remix/rollup.npm.config.mjs +++ b/packages/remix/rollup.npm.config.mjs @@ -1,6 +1,4 @@ -/* eslint-disable import/no-named-as-default */ -import nodeResolve from '@rollup/plugin-node-resolve'; -import { defineConfig } from 'rollup'; +import { defineConfig } from 'rolldown'; import { makeBaseNPMConfig, makeNPMConfigVariants, makeOrchestrionLoader } from '@sentry-internal/rollup-utils'; // `external: /.*/` keeps the `remix` import a runtime resolution against the installed package. @@ -32,18 +30,11 @@ const v3ClientBundle = defineConfig({ // separate subscriber registries, and instrumentation would quietly do nothing. external: id => /diagnosticsChannelShim/.test(id) || id === 'remix' || id.startsWith('@remix-run/'), treeshake: { moduleSideEffects: false, propertyReadSideEffects: false }, - plugins: [nodeResolve({ browser: true, exportConditions: ['browser', 'import', 'default'] })], + platform: 'browser', + resolve: { conditionNames: ['browser', 'import', 'default'] }, // Emitted inside `build/esm/v3/`, not at `build/`: the one import it keeps is the relative path to // the channel shim, which only resolves from there. output: { file: 'build/esm/v3/client-bundle.js', format: 'esm' }, - onwarn(warning, warn) { - // `this` is undefined in the bundled output of some dependencies, and the graph has cycles. Both - // are harmless here and would otherwise bury real warnings. - if (warning.code === 'THIS_IS_UNDEFINED' || warning.code === 'CIRCULAR_DEPENDENCY') { - return; - } - warn(warning); - }, }); // We rely on esbuild's defaults for JSX (`jsx: 'transform'` = classic runtime, no diff --git a/packages/remix/src/cloudflare/index.ts b/packages/remix/src/cloudflare/index.ts index e012093aaf76..a7fa63ada474 100644 --- a/packages/remix/src/cloudflare/index.ts +++ b/packages/remix/src/cloudflare/index.ts @@ -11,7 +11,8 @@ export * from '@sentry/react'; export { captureRemixErrorBoundaryError } from '../client/errors'; export { withSentry } from '../client/performance'; -export { ErrorBoundary, browserTracingIntegration } from '../client'; +export { browserTracingIntegration } from '../client'; +export { ErrorBoundary } from '@sentry/react'; export { makeWrappedCreateRequestHandler, sentryHandleError }; export { generateSentryServerTimingHeader } from '../server/serverTimingTracePropagation'; diff --git a/packages/remix/src/index.server.ts b/packages/remix/src/index.server.ts index e40dd4978bb3..d5dbb1d9d5aa 100644 --- a/packages/remix/src/index.server.ts +++ b/packages/remix/src/index.server.ts @@ -1,5 +1,6 @@ export * from './server'; -export { captureRemixErrorBoundaryError, withSentry, ErrorBoundary, browserTracingIntegration } from './client'; +export { captureRemixErrorBoundaryError, withSentry, browserTracingIntegration } from './client'; +export { ErrorBoundary } from '@sentry/react'; export { createRemixRouteManifest } from './config/createRemixRouteManifest'; export type { CreateRemixRouteManifestOptions } from './config/createRemixRouteManifest'; diff --git a/packages/replay-canvas/package.json b/packages/replay-canvas/package.json index ba0dc39ec23f..7aeb4fc83e45 100644 --- a/packages/replay-canvas/package.json +++ b/packages/replay-canvas/package.json @@ -25,8 +25,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": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:bundle:watch", diff --git a/packages/replay-canvas/src/canvas.ts b/packages/replay-canvas/src/canvas.ts index 5f477d386324..14924e2782f7 100644 --- a/packages/replay-canvas/src/canvas.ts +++ b/packages/replay-canvas/src/canvas.ts @@ -1,7 +1,7 @@ import type { Integration, IntegrationFn } from '@sentry/core'; import { defineIntegration } from '@sentry/core'; import type { CanvasManagerInterface, CanvasManagerOptions } from '@sentry/replay'; -import { CanvasManager } from '@sentry/rrweb'; +import { CanvasManager } from '@sentry/rrweb/canvas-manager'; interface SnapshotOptions { skipRequestAnimationFrame?: boolean; diff --git a/packages/replay-canvas/test/canvas.test.ts b/packages/replay-canvas/test/canvas.test.ts index e02c284d2dac..ce75368f93c4 100644 --- a/packages/replay-canvas/test/canvas.test.ts +++ b/packages/replay-canvas/test/canvas.test.ts @@ -2,11 +2,11 @@ * @vitest-environment jsdom */ -import { CanvasManager } from '@sentry/rrweb'; +import { CanvasManager } from '@sentry/rrweb/canvas-manager'; import { beforeEach, expect, it, vi } from 'vitest'; import { _replayCanvasIntegration, replayCanvasIntegration } from '../src/canvas'; -vi.mock('@sentry/rrweb'); +vi.mock('@sentry/rrweb/canvas-manager'); beforeEach(() => { vi.clearAllMocks(); diff --git a/packages/replay-internal/package.json b/packages/replay-internal/package.json index 064c5e526c83..16b2dd08cd72 100644 --- a/packages/replay-internal/package.json +++ b/packages/replay-internal/package.json @@ -39,8 +39,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": "tsc -p tsconfig.types.json", "build:watch": "run-p build:transpile:watch build:bundle:watch", diff --git a/packages/replay-internal/rollup.npm.config.mjs b/packages/replay-internal/rollup.npm.config.mjs index 4cf2b0263eac..47aa785d5ad1 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( @@ -20,10 +18,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 6063eb96e201..a045b207fd8d 100644 --- a/packages/replay-worker/package.json +++ b/packages/replay-worker/package.json @@ -29,8 +29,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": "tsc -p tsconfig.types.json", "build:dev": "pnpm run build", "build:watch": "run-p build:transpile:watch", diff --git a/packages/replay-worker/rollup.examples.config.mjs b/packages/replay-worker/rollup.examples.config.mjs index 7ca68e89556d..207036538f12 100644 --- a/packages/replay-worker/rollup.examples.config.mjs +++ b/packages/replay-worker/rollup.examples.config.mjs @@ -1,42 +1,24 @@ -import commonjs from '@rollup/plugin-commonjs'; -import resolve from '@rollup/plugin-node-resolve'; -import terser from '@rollup/plugin-terser'; -import { defineConfig } from 'rollup'; -import esbuild from 'rollup-plugin-esbuild'; -import { makeLicensePlugin } from '../../dev-packages/rollup-utils/plugins/index.mjs'; - -const licensePlugin = makeLicensePlugin('Sentry Replay Worker'); - -const esbuildPlugin = esbuild({ tsconfig: './tsconfig.json', target: 'es2020', sourceMap: false }); +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(), esbuildPlugin, 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(), - esbuildPlugin, - 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 36f18cb2a7e6..323772986beb 100644 --- a/packages/replay-worker/rollup.worker.config.mjs +++ b/packages/replay-worker/rollup.worker.config.mjs @@ -1,72 +1,66 @@ // 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 { defineConfig } from 'rollup'; -import esbuild from 'rollup-plugin-esbuild'; - -const esbuildPlugin = esbuild({ tsconfig: './tsconfig.json', target: 'es2020', sourceMap: false }); +import { treeShakePreset } from '@sentry-internal/rollup-utils'; +import { defineConfig } from 'rolldown'; +import { minifySync } from 'rolldown/utils'; 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: [ - esbuildPlugin, - 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(), - esbuildPlugin, - resolve(), - terser({ - mangle: { - module: true, - }, - }), { name: 'worker-to-string', + // `output.minify` runs after `renderChunk`, so it only ever sees the wrapper below and + // leaves the worker inside it untouched - that shipped ~10 kB of unminified fflate in every + // Replay bundle. Minify here instead, before embedding. + // + // Embedded with `JSON.stringify` rather than a template literal because oxc's minifier + // emits string literals as backticks, which would terminate the literal early and silently + // produce an empty chunk. renderChunk(code) { - return `export default \`${code}\`;`; + const { code: minified } = minifySync('worker.js', code, { module: true }); + + return `export default ${JSON.stringify(minified)};`; }, }, ], }, { 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(), - esbuildPlugin, - 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 bfa37b859232..85dfc8da1d33 100644 --- a/packages/replay-worker/tsconfig.json +++ b/packages/replay-worker/tsconfig.json @@ -4,7 +4,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/rollup-plugin/package.json b/packages/rollup-plugin/package.json index 74d8f39c26a9..ab82468a8e26 100644 --- a/packages/rollup-plugin/package.json +++ b/packages/rollup-plugin/package.json @@ -36,11 +36,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-rollup-plugin-*.tgz", "lint": "oxlint . --type-aware", diff --git a/packages/server-runtime-injection/package.json b/packages/server-runtime-injection/package.json index a14ef23c5b85..2e09ab914697 100644 --- a/packages/server-runtime-injection/package.json +++ b/packages/server-runtime-injection/package.json @@ -59,11 +59,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "run-p build:transpile:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-server-runtime-injection-*.tgz", "lint:fix": "oxlint . --fix --type-aware", diff --git a/packages/server-runtime-injection/rollup.npm.config.mjs b/packages/server-runtime-injection/rollup.npm.config.mjs index 3f513c8e5cbc..d996d088bf20 100644 --- a/packages/server-runtime-injection/rollup.npm.config.mjs +++ b/packages/server-runtime-injection/rollup.npm.config.mjs @@ -1,9 +1,8 @@ import { builtinModules } from 'node:module'; import * as path from 'node:path'; -import commonjs from '@rollup/plugin-commonjs'; import license from 'rollup-plugin-license'; -import { defineConfig } from 'rollup'; -import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; +import { defineConfig } from 'rolldown'; +import { makeBaseNPMConfig, makeNPMConfigVariants, plugins } from '@sentry-internal/rollup-utils'; // The orchestrion runtime dependency chain (`@apm-js-collab/tracing-hooks` → // `@apm-js-collab/code-transformer` → meriyah/esquery/astring/…) is bundled into this package's @@ -25,35 +24,6 @@ import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollu // `SENTRY_INSTRUMENTATIONS`) stay external — the base config keeps them out of the bundle, so they // resolve from `node_modules` at runtime. // -// `requireReturnsDefault: 'auto'`: node-resolve prefers a dependency's ESM build even for CJS -// `require()`s inside the vendored graph. Default-export-only ESM (e.g. esquery) must then resolve -// to the default itself, not a `{ default }` namespace — CJS callers use it as -// `require('esquery').parse(...)`. -// -// `strictRequires: false`: the default `'auto'` wraps conditionally-required modules (e.g. -// `debug`'s browser/node split) in lazy initializers exported as `__require` — an export name that -// downstream re-bundlers mishandle (Turbopack renames it, producing `.require is not a function` -// crashes in Next.js on Cloudflare). Hoisting is safe here: the vendored graph is closed (nothing -// optional/missing) and has no require cycles that depend on lazy evaluation. -const commonJSOptions = { transformMixedEsModules: true, requireReturnsDefault: 'auto', strictRequires: false }; -const commonJSPlugin = commonjs(commonJSOptions); - -// Always vendor `debug`'s Node build. Its default entry picks browser vs node at require time, -// which drags the browser build into this server-only bundle — and, hoisted by -// `strictRequires: false`, the browser build's storage detection probes `localStorage` at import -// time, which on Node >= 26 emits an ExperimentalWarning that pollutes stderr and console -// breadcrumbs in every user app. `order: 'pre'` because the base config's node-resolve plugin -// sorts ahead of package-specific plugins and would otherwise resolve `debug` first. -const debugNodeAlias = { - name: 'debug-node-alias', - resolveId: { - order: 'pre', - handler(source, importer) { - return source === 'debug' ? this.resolve('debug/src/node.js', importer, { skipSelf: true }) : null; - }, - }, -}; - // `debug` vendors the `supports-color` that it finds, and which version that is depends on how the package manager // installs it. Resolve it from this package instead, so the vendored version is the one in its `devDependencies`. const supportsColorFromPackage = { @@ -68,7 +38,7 @@ const supportsColorFromPackage = { }, }; -// Bundling files from the repo-root `node_modules` moves rollup's common source ancestor up to the +// Bundling files from the repo-root `node_modules` moves the common source ancestor up to the // repo root, so `preserveModules` names our own files `packages/server-runtime-injection/src/...` — // strip that prefix to keep the `build/cjs/register.js` layout the `exports` map points at. A vendored // dependency is named by its path after the last `node_modules/`, because pnpm installs some of them @@ -79,7 +49,7 @@ const sanitizedFileNames = info => // The vendored dependencies (see above) are third-party code redistributed inside this package's // published `build/`, so their licenses require us to carry each one's copyright/permission notice -// (and, for Apache-2.0 deps like `@apm-js-collab/*`, the upstream NOTICE). Rollup strips per-file +// (and, for Apache-2.0 deps like `@apm-js-collab/*`, the upstream NOTICE). Bundling strips per-file // banners, so instead we aggregate them into a single `build/THIRD-PARTY-LICENSES.txt`. const thirdPartyLicensePlugin = license({ thirdParty: { @@ -90,9 +60,14 @@ const thirdPartyLicensePlugin = license({ }, }); +// Split so a downstream bundler that inlines this package can drop the parse/query/generate/sourcemap +// libraries. They are only reached through the `code-transformer` factory, whose failures surface as +// the "bundled into your application" warning in `register.ts` instead of a crash. +const SPLITTABLE_VENDORED = /vendored\/(meriyah|astring|source-map|esquery)\//; + const orchestrionRuntimeHooks = [ // The side-effecting `--import` entry SDKs reference via a `--import` flag. We pass it through - // rollup only to copy it to `build/import-hook.mjs` at the path the package.json `exports` map + // rolldown only to copy it to `build/import-hook.mjs` at the path the package.json `exports` map // expects; `external: /.*/` keeps every import (`@sentry/server-runtime-injection/register`) a // runtime resolution against the installed package. defineConfig({ @@ -113,15 +88,18 @@ export default [ // `import` condition, so the `build/cjs` copy is unused. entrypoints: ['src/register.ts', 'src/hook.mjs'], packageSpecificConfig: { - plugins: [debugNodeAlias, supportsColorFromPackage, commonJSPlugin, thirdPartyLicensePlugin], + plugins: [ + plugins.makeDebugNodeAliasPlugin(), + supportsColorFromPackage, + plugins.makeEsqueryCjsAliasPlugin(), + thirdPartyLicensePlugin, + plugins.makeBuiltinRequireShimPlugin(), + plugins.makeCjsExportsSplitPlugin(SPLITTABLE_VENDORED), + ], output: { exports: 'named', preserveModules: true, entryFileNames: sanitizedFileNames, - // The commonjs-converted vendored dependencies import Node builtins as default imports - // (`require('path')` → default import of `path`), and builtins have no `.default` in CJS — - // so builtins need `'default'` interop (the module itself is the default export). - interop: id => (id && (id.startsWith('node:') || builtinModules.includes(id)) ? 'default' : 'esModule'), // The vendored dependencies import builtins unprefixed (`import … from 'tty'`), which Deno // rejects and vite-node (Node 26) misresolves as a relative path. Emit them `node:`-prefixed. paths: Object.fromEntries(builtinModules.map(m => [m, `node:${m}`])), diff --git a/packages/server-utils/package.json b/packages/server-utils/package.json index 71d095313848..2ddfdd0dab4a 100644 --- a/packages/server-utils/package.json +++ b/packages/server-utils/package.json @@ -110,11 +110,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "run-p build:transpile:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-server-utils-*.tgz", "lint:fix": "oxlint . --fix --type-aware", diff --git a/packages/server-utils/rollup.npm.config.mjs b/packages/server-utils/rollup.npm.config.mjs index ab0a51d3ef21..4bd91f15ed8d 100644 --- a/packages/server-utils/rollup.npm.config.mjs +++ b/packages/server-utils/rollup.npm.config.mjs @@ -1,7 +1,6 @@ import { builtinModules } from 'node:module'; -import commonjs from '@rollup/plugin-commonjs'; import license from 'rollup-plugin-license'; -import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; +import { makeBaseNPMConfig, makeNPMConfigVariants, plugins } from '@sentry-internal/rollup-utils'; // The orchestrion build-time bundler-plugin chain (`@apm-js-collab/code-transformer-bundler-plugins` // → `@apm-js-collab/code-transformer` → meriyah/esquery/astring/…) is bundled into this package's @@ -19,50 +18,8 @@ import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollu // build-time and runtime transforms always ship the same `code-transformer` version, and so this // package has no `@apm-js-collab/*` install footprint at all. // -// `requireReturnsDefault: 'auto'`: node-resolve prefers a dependency's ESM build even for CJS -// `require()`s inside the vendored graph. Default-export-only ESM (e.g. esquery) must then resolve -// to the default itself, not a `{ default }` namespace — CJS callers use it as -// `require('esquery').parse(...)`. -// -// `strictRequires: false`: the default `'auto'` wraps conditionally-required modules (e.g. -// `debug`'s browser/node split) in lazy initializers exported as `__require` — an export name that -// downstream re-bundlers mishandle (Turbopack renames it, producing `.require is not a function` -// crashes in Next.js on Cloudflare). Hoisting is safe here: the vendored graph is closed (nothing -// optional/missing) and has no require cycles that depend on lazy evaluation. -const commonJSOptions = { transformMixedEsModules: true, requireReturnsDefault: 'auto', strictRequires: false }; -const commonJSPlugin = commonjs(commonJSOptions); - -// Always vendor `debug`'s Node build. Its default entry picks browser vs node at require time, -// which drags the browser build into this server-only bundle — and, hoisted by -// `strictRequires: false`, the browser build's storage detection probes `localStorage` at import -// time, which on Node >= 26 emits an ExperimentalWarning that pollutes stderr and console -// breadcrumbs in every user app. `order: 'pre'` because the base config's node-resolve plugin -// sorts ahead of package-specific plugins and would otherwise resolve `debug` first. -const debugNodeAlias = { - name: 'debug-node-alias', - resolveId: { - order: 'pre', - handler(source, importer) { - return source === 'debug' ? this.resolve('debug/src/node.js', importer, { skipSelf: true }) : null; - }, - }, -}; - -// This package only runs in Node, but rollup's default CJS replacement for `import.meta.url` -// picks browser behavior whenever a `document` global exists, and jsdom/happy-dom define -// `document` while tests run in Node. Always emit the unconditional Node form instead. -const importMetaUrlNodeShim = { - name: 'import-meta-url-node-shim', - resolveImportMeta(property, { format }) { - if (property === 'url' && format === 'cjs') { - return "require('node:url').pathToFileURL(__filename).href"; - } - return null; - }, -}; - -// Bundling files from the repo-root `node_modules` moves rollup's common source ancestor up to the -// repo root, so `preserveModules` names our own files `packages/server-utils/src/...` — strip that +// Bundling files from the repo-root `node_modules` moves the common source ancestor up to the repo +// root, so `preserveModules` names our own files `packages/server-utils/src/...` — strip that // prefix to keep the `build/cjs/index.js` layout the `exports` map points at. A vendored dependency // is named by its path after the last `node_modules/`, because pnpm installs some of them in nested // or `.pnpm` folders. And npm never packs `node_modules` directories, so the vendored dependencies @@ -76,7 +33,9 @@ const sanitizedFileNames = info => // banners, so instead we aggregate them into a single `build/THIRD-PARTY-LICENSES.txt`. The default // template emits each dependency's license text AND its NOTICE text, which covers the MIT/ISC/BSD // notice requirement and the Apache-2.0 §4(d) NOTICE requirement. Only bundled (non-external) -// packages are collected — our own `@sentry/*` deps stay external and are excluded. +// packages are collected — our own `@sentry/*` deps stay external and are excluded. The plugin only +// uses hooks rolldown implements (`renderChunk` / `generateBundle` plus `this.getModuleIds()`), so +// it keeps working unchanged on rolldown. // // Both the CJS and ESM build variants run this and bundle the same dependency set, so each writes // the same file; the last write wins and the content is identical. @@ -89,6 +48,12 @@ const thirdPartyLicensePlugin = license({ }, }); +// Only the parse/query/generate/sourcemap libraries are split. They are reached exclusively through +// the lazily-invoked `code-transformer` factory, which is called inside a try/catch, so a consumer +// that drops them degrades to "no channel injection" instead of throwing. Everything else (notably +// `debug`, whose export is called at module-evaluation time) must stay non-droppable. +const SPLITTABLE_VENDORED = /vendored\/(meriyah|astring|source-map|esquery)\//; + export default [ ...makeNPMConfigVariants( makeBaseNPMConfig({ @@ -110,18 +75,19 @@ export default [ 'src/orchestrion/bundler/bun.ts', ], packageSpecificConfig: { - plugins: [debugNodeAlias, commonJSPlugin, importMetaUrlNodeShim, thirdPartyLicensePlugin], + plugins: [ + plugins.makeDebugNodeAliasPlugin(), + plugins.makeEsqueryCjsAliasPlugin(), + thirdPartyLicensePlugin, + plugins.makeBuiltinRequireShimPlugin(), + plugins.makeCjsExportsSplitPlugin(SPLITTABLE_VENDORED), + ], output: { // set exports to 'named' or 'auto' so that rollup doesn't warn exports: 'named', // set preserveModules to true because we don't want to bundle everything into one file. preserveModules: true, entryFileNames: sanitizedFileNames, - // The repo default `interop: 'esModule'` dereferences `.default` on default imports of - // externals. The commonjs-converted vendored dependencies import Node builtins that way - // (e.g. `require('path')` → default import of `path`), and builtins have no `.default` in - // CJS — so builtins need `'default'` interop (the module itself is the default export). - interop: id => (id && (id.startsWith('node:') || builtinModules.includes(id)) ? 'default' : 'esModule'), // The vendored dependencies import builtins unprefixed (`import … from 'tty'`), which // Deno rejects outright and vite-node (Node 26) misresolves as a relative path. Emit them // `node:`-prefixed. diff --git a/packages/solid/package.json b/packages/solid/package.json index a6f1a7561dc5..f5688eef051a 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -85,13 +85,14 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-solid-*.tgz ./*.d.ts ./*.d.ts.map", diff --git a/packages/solidstart/package.json b/packages/solidstart/package.json index ae1d2146c890..80a764b8ff00 100644 --- a/packages/solidstart/package.json +++ b/packages/solidstart/package.json @@ -103,13 +103,14 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-solidstart-*.tgz ./*.d.ts ./*.d.ts.map ./client ./server", diff --git a/packages/svelte/package.json b/packages/svelte/package.json index edf1f1671b5c..0873846f8573 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -49,11 +49,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-svelte-*.tgz", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 5579aba94f31..ab66a5dc794c 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -93,11 +93,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-sveltekit-*.tgz", diff --git a/packages/tanstackstart-react/package.json b/packages/tanstackstart-react/package.json index 5ac79c55c050..f60687329afa 100644 --- a/packages/tanstackstart-react/package.json +++ b/packages/tanstackstart-react/package.json @@ -67,7 +67,7 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index 0f27ac318967..10efc7c6b5a1 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -43,11 +43,12 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run 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", "clean": "rimraf build coverage sentry-vercel-edge-*.tgz", 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/vite-plugin/package.json b/packages/vite-plugin/package.json index eb848edbfb19..eb2d7fd0c911 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -35,11 +35,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-vite-plugin-*.tgz", "lint": "oxlint . --type-aware", diff --git a/packages/vue/package.json b/packages/vue/package.json index 5013bec66901..58970fff9cc3 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -68,13 +68,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:core": "tsc -p tsconfig.types.json", "build:types:router": "tsc -p tsconfig.router-types.json", - "build:watch": "run-p build:transpile:watch", - "build:dev:watch": "run-p build:transpile:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:watch": "run-p build:transpile:watch build:types:watch", + "build:dev:watch": "run-p build:transpile:watch build:types: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", "clean": "rimraf build coverage sentry-vue-*.tgz", diff --git a/packages/wasm/package.json b/packages/wasm/package.json index 394b88025568..7a43ba6291f9 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -37,14 +37,15 @@ }, "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": "tsc -p tsconfig.types.json", - "build:watch": "run-p build:transpile:watch build:bundle:watch", - "build:bundle:watch": "rollup --config rollup.bundle.config.mjs --watch", - "build:dev:watch": "run-p build:transpile:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:watch": "run-p build:transpile:watch build:bundle:watch build:types: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": "rolldown -c rollup.npm.config.mjs --watch", + "build:types:watch": "tsc -p tsconfig.types.json --watch", "build:tarball": "npm pack", "test": "vitest run", "test:watch": "vitest --watch", diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 376c24635b5d..13f58fe49ca7 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -40,11 +40,11 @@ "scripts": { "build": "run-p build:transpile build:types", "build:dev": "pnpm run 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:dev:watch": "pnpm run build:watch", - "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:transpile:watch": "rolldown -c rollup.npm.config.mjs --watch", "build:tarball": "npm pack", "clean": "rimraf build coverage sentry-webpack-plugin-*.tgz", "lint": "oxlint . --type-aware", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfdd2832b6d3..f5ccaa817038 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,21 +172,6 @@ importers: .: devDependencies: - '@rollup/plugin-commonjs': - specifier: ^25.0.7 - version: 25.0.8(rollup@4.62.3) - '@rollup/plugin-json': - specifier: ^6.1.0 - version: 6.1.0(rollup@4.62.3) - '@rollup/plugin-node-resolve': - specifier: ^16.0.3 - version: 16.0.3(rollup@4.62.3) - '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.7(rollup@4.62.3) - '@rollup/plugin-terser': - specifier: ^0.4.4 - version: 0.4.4(rollup@4.62.3) '@sentry-internal/browser-integration-tests': specifier: workspace:* version: link:dev-packages/browser-integration-tests @@ -397,9 +382,6 @@ importers: es-check: specifier: ^7.2.1 version: 7.2.1 - esbuild: - specifier: ^0.28.1 - version: 0.28.1 jsdom: specifier: ^21.1.2 version: 21.1.2(supports-color@10.0.0) @@ -427,12 +409,12 @@ importers: rimraf: specifier: ^6.1.3 version: 6.1.3 + rolldown: + specifier: ^1.2.14 + version: 1.2.14 rollup: specifier: ^4.60.3 version: 4.62.3 - rollup-plugin-esbuild: - specifier: ^6.2.1 - version: 6.2.1(esbuild@0.28.1)(rollup@4.62.3)(supports-color@10.0.0) rollup-plugin-license: specifier: ^3.7.1 version: 3.7.1(picomatch@4.0.7)(rollup@4.62.3) @@ -1004,13 +986,6 @@ importers: version: 3.25.76 dev-packages/rollup-utils: - dependencies: - acorn: - specifier: ^8.7.0 - version: 8.18.0 - recast: - specifier: ^0.24.0 - version: 0.24.0 devDependencies: eslint-plugin-regexp: specifier: ^3.1.0 @@ -1282,7 +1257,7 @@ importers: version: 4.0.0 rolldown: specifier: ^1.0.0 - version: 1.2.11 + version: 1.2.14 vitest: specifier: ^4.1.11 version: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@20.19.43)(@vitest/coverage-v8@4.1.11)(esbuild@0.28.1)(jiti@2.7.0)(jsdom@21.1.2(supports-color@8.1.1))(less@4.2.0(supports-color@8.1.1))(sass@1.72.0)(stylus@0.59.0(supports-color@8.1.1))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) @@ -1761,7 +1736,7 @@ importers: dependencies: '@nuxt/kit': specifier: ^4.6.0 - version: 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.152.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + version: 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.152.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) '@sentry/browser': specifier: 11.8.0 version: link:../browser @@ -1792,7 +1767,7 @@ importers: devDependencies: '@nuxt/nitro-server': specifier: ^3.21.11 - version: 3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + version: 3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) h3: specifier: ^1.15.10 version: 1.15.11 @@ -1804,7 +1779,7 @@ importers: version: 3.25.1 nuxt: specifier: 3.21.11 - version: 3.21.11(655d928df5d3f11c3078cc77ff7227cd) + version: 3.21.11(22d65155c9d751dff0e315548e3499ce) vite: specifier: ^8.3.1 version: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) @@ -2202,7 +2177,7 @@ importers: version: 1.0.0(solid-js@1.9.11) '@solidjs/start': specifier: ^1.3.2 - version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) + version: 1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) '@solidjs/testing-library': specifier: 0.8.5 version: 0.8.5(@solidjs/router@1.0.0(solid-js@1.9.11))(solid-js@1.9.11) @@ -2217,7 +2192,7 @@ importers: version: 1.9.11 vinxi: specifier: ^0.5.11 - version: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) + version: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) vite: specifier: ^8.3.1 version: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) @@ -6808,12 +6783,12 @@ packages: '@oxc-project/types@0.143.0': resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==} - '@oxc-project/types@0.151.0': - resolution: {integrity: sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==} - '@oxc-project/types@0.152.0': resolution: {integrity: sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw==} + '@oxc-project/types@0.154.0': + resolution: {integrity: sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==} + '@oxc-transform/binding-android-arm-eabi@0.143.0': resolution: {integrity: sha512-Rufrk7btlzkIAofJyrm3COzSrn4iNYOnHNYOahBDQly/PgleJv6QIVCHsPTqC6qfX/EJNoAeNshALvVfKSTY5A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -7630,98 +7605,98 @@ packages: '@remix-run/web-stream@1.1.0': resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} - '@rolldown/binding-android-arm-eabi@1.2.11': - resolution: {integrity: sha512-A5kXfGKvKWWZE0TtPrfsvT+q4Y5d1QG8gGUzpYjGydM+fARM9MuX90PrXYXe0XbsDVgyxxNzHo6giCj90bsFNw==} + '@rolldown/binding-android-arm-eabi@1.2.14': + resolution: {integrity: sha512-aWR+XKH9+rW7m5fWq/5360J3mHycrx/o6xZM2DQFdJnTMdyP7/WzxPjhtLbVWdKo2y612/4U1bWqb3HQhiF7vg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@rolldown/binding-android-arm64@1.2.11': - resolution: {integrity: sha512-z6cTycz+iJ4PVkuL4HHW4DfTfoeU/2nqYYuSOrTmH7yHK5Y0LCOnA03V4ZNxavyVaU1oOqUgIg2klN/s+USGOA==} + '@rolldown/binding-android-arm64@1.2.14': + resolution: {integrity: sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.11': - resolution: {integrity: sha512-jShvqNtP6vDC6/A5JOAzbVV+DkgHqhl/ScVCJEbt+TUY6QYz7YnXcrg3sLtFBniro0f/Ld50ZwCWA6f7KYD1nQ==} + '@rolldown/binding-darwin-arm64@1.2.14': + resolution: {integrity: sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.11': - resolution: {integrity: sha512-f2i2xiNWq1Z1l2++q2fuhZRdLAT3aqxD6vRNm1RAxpUoBcdqNB3C0s1Bt+K+PbEx2F5F4gQp6hqKkphCY/xF9w==} + '@rolldown/binding-darwin-x64@1.2.14': + resolution: {integrity: sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.11': - resolution: {integrity: sha512-4Ir5FSOKIAMr4r0kExpt1s3bMgzJU3rA45AYOHtQpls0oNeqcYBKrWMlckrYH4KCfGLfkfn1tN1dmZPMVsdXow==} + '@rolldown/binding-freebsd-x64@1.2.14': + resolution: {integrity: sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.11': - resolution: {integrity: sha512-/gnRDM+39BROzAN/k1OZjDPnDMcZxB/0EUxKjONO5yVkNEvlsoMDrxGNKgZi/ttFriS2gwlDNzB65pvNbFOXIQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.14': + resolution: {integrity: sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.11': - resolution: {integrity: sha512-PFaK8HwvAHbaKbBcDNQihjMKYvFnA5hiENx/l5tphTDz1E0WFp32l0A7aq7lyUwGsRw/xSrNIy/gIK4thrSCrw==} + '@rolldown/binding-linux-arm64-gnu@1.2.14': + resolution: {integrity: sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.11': - resolution: {integrity: sha512-AskzJUIKRLPxkruR1wLKewGbOw+EYfU/9lOrBFj4AFrEA8hPpKFnODWNu2WLaNs0QNkEb9QIJufmVZZIL/bJlg==} + '@rolldown/binding-linux-arm64-musl@1.2.14': + resolution: {integrity: sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.11': - resolution: {integrity: sha512-qlUGAheh2yh8afH7QBgx0PrRHN85hKnNd78x8MeMhXivuevgd8vgf6/CstOzmNKY/lLTHvNTrPy98cLnAugzJw==} + '@rolldown/binding-linux-ppc64-gnu@1.2.14': + resolution: {integrity: sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.11': - resolution: {integrity: sha512-secpEad+0vCbSfn8upFySkDskv+bGPk3THSDS9Y89yc4rb4kzqHp8Dmyd9BkQW4SnhNXBZCl/6CrO//hZahNJQ==} + '@rolldown/binding-linux-s390x-gnu@1.2.14': + resolution: {integrity: sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.11': - resolution: {integrity: sha512-mOVBT3dPpkWm8XBWPmU4bf+U6dYDLeMo/9ojUmis4N0L5uu10qra5vOyngZ7/PSdoE4G9KvRt4bloRxNjLas7A==} + '@rolldown/binding-linux-x64-gnu@1.2.14': + resolution: {integrity: sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.11': - resolution: {integrity: sha512-Is78i9A8Ui4SqcxUwFJ9uMmjDn58IbVTjFWYdQestFEgeuEmHMLGNriXnVJKkwG2YiZjw8cP0zCTyDMdDGtOOg==} + '@rolldown/binding-linux-x64-musl@1.2.14': + resolution: {integrity: sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.11': - resolution: {integrity: sha512-dUCXneZ87INUMyQ0D+C0HrEBNUPNXHaPmU5GTjyKTJEiussw9Kaj5Ln8UztPe4epV/ffvgNBEadksdYhmW6xJA==} + '@rolldown/binding-openharmony-arm64@1.2.14': + resolution: {integrity: sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.11': - resolution: {integrity: sha512-jByxb6qfd+bH1xUd0qnfFnb17i9sWBPY2tOavJ0l3tdr3OTu+Kvtm8cd/JV5nFt657b1VqGltxg9olOEfofXWw==} + '@rolldown/binding-win32-arm64-msvc@1.2.14': + resolution: {integrity: sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.11': - resolution: {integrity: sha512-/PzKqzAJ03i19oy2ItPvyvaVjOjBCNnfaJs8yvUdGBKmiESgnrJSQ2awd81QzFbbnAmu7YO9ZnJrDCb9VSJPRA==} + '@rolldown/binding-win32-x64-msvc@1.2.14': + resolution: {integrity: sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -7751,15 +7726,6 @@ packages: rollup: optional: true - '@rollup/plugin-commonjs@25.0.8': - resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-commonjs@28.0.1': resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -7816,15 +7782,6 @@ packages: rollup: optional: true - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-replace@6.0.3': resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} engines: {node: '>=14.0.0'} @@ -7834,15 +7791,6 @@ packages: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-terser@1.0.0': resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} engines: {node: '>=20.0.0'} @@ -12475,9 +12423,6 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - getopts@2.3.0: resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} @@ -16413,10 +16358,6 @@ packages: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} - recast@0.24.0: - resolution: {integrity: sha512-dN08tw9Kl2i8oDBy16NhxBh6qOqsEqmGYpX1xaxPmgz6/6ukopSuysLfvLbieuDMY57jEz6eTmNz6lqH54kuqQ==} - engines: {node: '>= 22'} - rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} @@ -16611,9 +16552,6 @@ packages: resolve-pathname@2.2.0: resolution: {integrity: sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-url-loader@5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} engines: {node: '>=12'} @@ -16697,8 +16635,8 @@ packages: resolution: {integrity: sha512-CV9WefQfUXTX6wr8CrEMhfNef3sjIt9wNhE/5PNu4tNWsaoDNDXqq+OGn/RW9A1UPb0qc7FQlswXRaJJJsqn8A==} engines: {node: '>=12.0'} - rolldown@1.2.11: - resolution: {integrity: sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw==} + rolldown@1.2.14: + resolution: {integrity: sha512-eTBTTqMR6uHKLgcUqpJP8ntzDI6V4LYA8negAMBEI7gkgVvOdrx6VsvS2Ym+83KhOPdLCHWJu0w7UQFJZhHKNw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -16707,13 +16645,6 @@ packages: peerDependencies: rollup: '>=1.1.2' - rollup-plugin-esbuild@6.2.1: - resolution: {integrity: sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==} - engines: {node: '>=14.18.0'} - peerDependencies: - esbuild: '>=0.18.0' - rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - rollup-plugin-license@3.7.1: resolution: {integrity: sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==} engines: {node: '>=14.0.0'} @@ -18238,10 +18169,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin-utils@0.2.5: - resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} - engines: {node: '>=18.12.0'} - unplugin-utils@0.3.2: resolution: {integrity: sha512-xVToRh2CTmLk2HnEG7ac4rl1MJTT3RFkpS8B++/SnB0kXvuaavD+n3m/vrzyWQOdJNSZQACnbz01pnppbwV5BA==} engines: {node: '>=20.19.0'} @@ -22517,17 +22444,17 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@dxup/nuxt@0.5.6(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(esbuild@0.28.1)(giget@3.3.1)(jiti@2.7.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': + '@dxup/nuxt@0.5.6(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(esbuild@0.28.1)(giget@3.3.1)(jiti@2.7.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) '@vue/compiler-dom': 3.5.41 chokidar: 5.0.0 knitwork: 1.3.0 magic-string: 1.1.0 pathe: 2.0.3 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) transitivePeerDependencies: - '@farmfe/core' - '@nuxt/schema' @@ -24327,9 +24254,9 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@3.4.1(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))': + '@nuxt/devtools-kit@3.4.1(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) execa: 8.0.1 vite: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) transitivePeerDependencies: @@ -24355,11 +24282,11 @@ snapshots: pkg-types: 2.3.1 semver: 7.8.5 - '@nuxt/devtools@3.4.1(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@nuxt/schema@3.21.11)(confbox@0.2.4)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(dotenv@17.4.2)(giget@3.3.1)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(supports-color@10.0.0)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2))': + '@nuxt/devtools@3.4.1(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@nuxt/schema@3.21.11)(confbox@0.2.4)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(dotenv@17.4.2)(giget@3.3.1)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(supports-color@10.0.0)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2))': dependencies: - '@nuxt/devtools-kit': 3.4.1(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) + '@nuxt/devtools-kit': 3.4.1(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.4.1 - '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) '@vue/devtools-core': 8.2.1(vue@3.5.41(typescript@7.0.2)) '@vue/devtools-kit': 8.2.1 birpc: 4.1.0 @@ -24387,7 +24314,7 @@ snapshots: tinyglobby: 0.2.17 unstorage: 1.17.5(@azure/storage-blob@12.31.0(supports-color@10.0.0))(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.11.0(supports-color@10.0.0)) vite: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) - vite-plugin-inspect: 11.4.1(@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) vite-plugin-vue-tracer: 1.5.0(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2)) which: 6.0.1 ws: 8.21.3 @@ -24452,7 +24379,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': + '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': dependencies: consola: 3.4.2 defu: 6.1.7 @@ -24470,7 +24397,7 @@ snapshots: std-env: 4.3.0 tinyexec: 1.3.1 tinyglobby: 0.2.17 - unctx: 3.0.1(magic-string@0.30.21)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + unctx: 3.0.1(magic-string@0.30.21)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) verkit: 0.5.0 optionalDependencies: '@nuxt/schema': 3.21.11 @@ -24480,12 +24407,12 @@ snapshots: jiti: 2.7.0 mlly: 1.8.2 oxc-parser: 0.143.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - magic-string - unplugin - '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': + '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': dependencies: consola: 3.4.2 defu: 6.1.7 @@ -24503,7 +24430,7 @@ snapshots: std-env: 4.3.0 tinyexec: 1.3.1 tinyglobby: 0.2.17 - unctx: 3.0.1(magic-string@1.1.0)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + unctx: 3.0.1(magic-string@1.1.0)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) verkit: 0.5.0 optionalDependencies: '@nuxt/schema': 3.21.11 @@ -24513,12 +24440,12 @@ snapshots: jiti: 2.7.0 mlly: 1.8.2 oxc-parser: 0.143.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - magic-string - unplugin - '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.152.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': + '@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.1.0)(mlly@1.8.2)(oxc-parser@0.152.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))': dependencies: consola: 3.4.2 defu: 6.1.7 @@ -24536,7 +24463,7 @@ snapshots: std-env: 4.3.0 tinyexec: 1.3.1 tinyglobby: 0.2.17 - unctx: 3.0.1(magic-string@1.1.0)(oxc-parser@0.152.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + unctx: 3.0.1(magic-string@1.1.0)(oxc-parser@0.152.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) verkit: 0.5.0 optionalDependencies: '@nuxt/schema': 3.21.11 @@ -24546,12 +24473,12 @@ snapshots: jiti: 2.7.0 mlly: 1.8.2 oxc-parser: 0.152.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - magic-string - unplugin - '@nuxt/nitro-server@3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': + '@nuxt/nitro-server@3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.21.11(magicast@0.5.4) @@ -24565,11 +24492,11 @@ snapshots: escape-string-regexp: 5.0.0 exsolve: 1.1.3 h3: 1.15.11 - impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.143.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) - nuxt: 3.21.11(655d928df5d3f11c3078cc77ff7227cd) + nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.143.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + nuxt: 3.21.11(22d65155c9d751dff0e315548e3499ce) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -24625,7 +24552,7 @@ snapshots: - webpack - xml2js - '@nuxt/nitro-server@3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': + '@nuxt/nitro-server@3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.21.11(magicast@0.5.4) @@ -24639,11 +24566,11 @@ snapshots: escape-string-regexp: 5.0.0 exsolve: 1.1.3 h3: 1.15.11 - impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) - nuxt: 3.21.11(655d928df5d3f11c3078cc77ff7227cd) + nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + nuxt: 3.21.11(22d65155c9d751dff0e315548e3499ce) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -24720,7 +24647,7 @@ snapshots: rc9: 3.1.0 std-env: 4.3.0 - '@nuxt/vite-builder@3.21.11(@types/node@20.19.43)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(magicast@0.5.4)(meow@13.2.0)(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(optionator@0.9.4)(oxlint@1.75.0(oxlint-tsgolint@7.0.2003))(rolldown@1.2.11)(rollup-plugin-visualizer@6.0.11(rolldown@1.2.11)(rollup@4.62.3))(rollup@4.62.3)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(typescript@7.0.2)(vue@3.5.41(typescript@7.0.2))(yaml@2.9.0)': + '@nuxt/vite-builder@3.21.11(@types/node@20.19.43)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(magicast@0.5.4)(meow@13.2.0)(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(optionator@0.9.4)(oxlint@1.75.0(oxlint-tsgolint@7.0.2003))(rolldown@1.2.14)(rollup-plugin-visualizer@6.0.11(rolldown@1.2.14)(rollup@4.62.3))(rollup@4.62.3)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(typescript@7.0.2)(vue@3.5.41(typescript@7.0.2))(yaml@2.9.0)': dependencies: '@nuxt/kit': 3.21.11(magicast@0.5.4) '@rollup/plugin-replace': 6.0.3(rollup@4.62.3) @@ -24740,7 +24667,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.11(655d928df5d3f11c3078cc77ff7227cd) + nuxt: 3.21.11(22d65155c9d751dff0e315548e3499ce) nypm: 0.6.9 ohash: 2.0.11 pathe: 2.0.3 @@ -24757,8 +24684,8 @@ snapshots: vue: 3.5.41(typescript@7.0.2) vue-bundle-renderer: 2.3.2 optionalDependencies: - rolldown: 1.2.11 - rollup-plugin-visualizer: 6.0.11(rolldown@1.2.11)(rollup@4.62.3) + rolldown: 1.2.14 + rollup-plugin-visualizer: 6.0.11(rolldown@1.2.14)(rollup@4.62.3) transitivePeerDependencies: - '@biomejs/biome' - '@types/node' @@ -25164,10 +25091,10 @@ snapshots: '@oxc-project/types@0.143.0': {} - '@oxc-project/types@0.151.0': {} - '@oxc-project/types@0.152.0': {} + '@oxc-project/types@0.154.0': {} + '@oxc-transform/binding-android-arm-eabi@0.143.0': optional: true @@ -25763,49 +25690,49 @@ snapshots: dependencies: web-streams-polyfill: 3.3.3 - '@rolldown/binding-android-arm-eabi@1.2.11': + '@rolldown/binding-android-arm-eabi@1.2.14': optional: true - '@rolldown/binding-android-arm64@1.2.11': + '@rolldown/binding-android-arm64@1.2.14': optional: true - '@rolldown/binding-darwin-arm64@1.2.11': + '@rolldown/binding-darwin-arm64@1.2.14': optional: true - '@rolldown/binding-darwin-x64@1.2.11': + '@rolldown/binding-darwin-x64@1.2.14': optional: true - '@rolldown/binding-freebsd-x64@1.2.11': + '@rolldown/binding-freebsd-x64@1.2.14': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.11': + '@rolldown/binding-linux-arm-gnueabihf@1.2.14': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.11': + '@rolldown/binding-linux-arm64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.11': + '@rolldown/binding-linux-arm64-musl@1.2.14': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.11': + '@rolldown/binding-linux-ppc64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.11': + '@rolldown/binding-linux-s390x-gnu@1.2.14': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.11': + '@rolldown/binding-linux-x64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-x64-musl@1.2.11': + '@rolldown/binding-linux-x64-musl@1.2.14': optional: true - '@rolldown/binding-openharmony-arm64@1.2.11': + '@rolldown/binding-openharmony-arm64@1.2.14': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.11': + '@rolldown/binding-win32-arm64-msvc@1.2.14': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.11': + '@rolldown/binding-win32-x64-msvc@1.2.14': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -25826,17 +25753,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@25.0.8(rollup@4.62.3)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.62.3) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.21 - optionalDependencies: - rollup: 4.62.3 - '@rollup/plugin-commonjs@28.0.1(rollup@4.62.3)': dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.62.3) @@ -25900,13 +25816,6 @@ snapshots: optionalDependencies: rollup: 4.62.3 - '@rollup/plugin-replace@5.0.7(rollup@4.62.3)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.62.3) - magic-string: 0.30.21 - optionalDependencies: - rollup: 4.62.3 - '@rollup/plugin-replace@6.0.3(rollup@4.62.3)': dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.62.3) @@ -25914,14 +25823,6 @@ snapshots: optionalDependencies: rollup: 4.62.3 - '@rollup/plugin-terser@0.4.4(rollup@4.62.3)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.4.1 - terser: 5.43.1 - optionalDependencies: - rollup: 4.62.3 - '@rollup/plugin-terser@1.0.0(rollup@4.62.3)': dependencies: serialize-javascript: 7.0.5 @@ -26528,11 +26429,11 @@ snapshots: dependencies: solid-js: 1.9.11 - '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))': + '@solidjs/start@1.3.2(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))': dependencies: '@tanstack/server-functions-plugin': 1.121.21(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) cookie-es: 2.0.1 defu: 6.1.7 error-stack-parser: 2.1.4 @@ -26544,7 +26445,7 @@ snapshots: source-map-js: 1.2.2 terracotta: 1.0.5(solid-js@1.9.11) tinyglobby: 0.2.17 - vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) + vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) vite-plugin-solid: 2.11.14(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) transitivePeerDependencies: - '@testing-library/jest-dom' @@ -27485,7 +27386,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.3 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))': dependencies: '@babel/parser': 7.29.8 acorn: 8.18.0 @@ -27496,18 +27397,18 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) + vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) - '@vinxi/server-components@0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))': + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0)) acorn: 8.18.0 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.18.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) + vinxi: 0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0) '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.0.0)(vite@7.3.6(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2))': dependencies: @@ -31695,10 +31596,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.14.0: - dependencies: - resolve-pkg-maps: 1.0.0 - getopts@2.3.0: {} giget@2.0.0: @@ -32412,12 +32309,12 @@ snapshots: import-meta-resolve@4.2.0: {} - impound@1.1.6(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + impound@1.1.6(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@jridgewell/trace-mapping': 0.3.31 es-module-lexer: 2.1.0 pathe: 2.0.3 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 transitivePeerDependencies: - '@farmfe/core' @@ -34491,7 +34388,7 @@ snapshots: ocache: 0.1.4 ofetch: 2.0.0-alpha.3 ohash: 2.0.11 - rolldown: 1.2.11 + rolldown: 1.2.14 srvx: 0.11.22 unenv: 2.0.0-rc.24 unstorage: 2.0.0-alpha.7(@azure/storage-blob@12.31.0(supports-color@10.0.0))(chokidar@5.0.0)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.11.0(supports-color@10.0.0))(lru-cache@11.4.0)(mongodb@7.1.0(@aws-sdk/credential-providers@3.983.0)(socks@2.8.7))(ofetch@2.0.0-alpha.3) @@ -34544,7 +34441,7 @@ snapshots: ocache: 0.1.4 ofetch: 2.0.0-alpha.3 ohash: 2.0.11 - rolldown: 1.2.11 + rolldown: 1.2.14 srvx: 0.11.22 unenv: 2.0.0-rc.24 unstorage: 2.0.0-alpha.7(@azure/storage-blob@12.31.0(supports-color@10.0.0))(chokidar@5.0.0)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.11.0(supports-color@10.0.0))(lru-cache@11.4.0)(mongodb@7.1.0(@aws-sdk/credential-providers@3.983.0)(socks@2.8.7))(ofetch@2.0.0-alpha.3) @@ -34585,7 +34482,7 @@ snapshots: - sqlite3 - uploadthing - nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.143.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.143.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.62.3) @@ -34638,7 +34535,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.62.3 - rollup-plugin-visualizer: 6.0.11(rolldown@1.2.11)(rollup@4.62.3) + rollup-plugin-visualizer: 6.0.11(rolldown@1.2.14)(rollup@4.62.3) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -34650,7 +34547,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 unstorage: 1.17.5(@azure/storage-blob@12.31.0(supports-color@10.0.0))(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.10.1(supports-color@10.0.0)) untyped: 2.0.0 @@ -34694,7 +34591,7 @@ snapshots: - vite - webpack - nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.62.3) @@ -34747,7 +34644,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.62.3 - rollup-plugin-visualizer: 6.0.11(rolldown@1.2.11)(rollup@4.62.3) + rollup-plugin-visualizer: 6.0.11(rolldown@1.2.14)(rollup@4.62.3) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -34759,7 +34656,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 unstorage: 1.17.5(@azure/storage-blob@12.31.0(supports-color@10.0.0))(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.10.1(supports-color@10.0.0)) untyped: 2.0.0 @@ -34803,7 +34700,7 @@ snapshots: - vite - webpack - nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + nitropack@2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.62.3) @@ -34856,7 +34753,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.62.3 - rollup-plugin-visualizer: 6.0.11(rolldown@1.2.11)(rollup@4.62.3) + rollup-plugin-visualizer: 6.0.11(rolldown@1.2.14)(rollup@4.62.3) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -34868,7 +34765,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 unstorage: 1.17.5(@azure/storage-blob@12.31.0(supports-color@10.0.0))(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(ioredis@5.10.1(supports-color@10.0.0)) untyped: 2.0.0 @@ -35113,16 +35010,16 @@ snapshots: nuxi@3.25.1: {} - nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd): + nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce): dependencies: - '@dxup/nuxt': 0.5.6(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(esbuild@0.28.1)(giget@3.3.1)(jiti@2.7.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + '@dxup/nuxt': 0.5.6(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(esbuild@0.28.1)(giget@3.3.1)(jiti@2.7.0)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) '@nuxt/cli': 3.37.0(@nuxt/schema@3.21.11)(@parcel/watcher@2.5.6)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.4)(supports-color@10.0.0) - '@nuxt/devtools': 3.4.1(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@nuxt/schema@3.21.11)(confbox@0.2.4)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(dotenv@17.4.2)(giget@3.3.1)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(supports-color@10.0.0)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2)) + '@nuxt/devtools': 3.4.1(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@nuxt/schema@3.21.11)(confbox@0.2.4)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(dotenv@17.4.2)(giget@3.3.1)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(supports-color@10.0.0)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(vue@3.5.41(typescript@7.0.2)) '@nuxt/kit': 3.21.11(magicast@0.5.4) - '@nuxt/nitro-server': 3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + '@nuxt/nitro-server': 3.21.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(encoding@0.1.13)(esbuild@0.28.1)(ioredis@5.11.0(supports-color@10.0.0))(magicast@0.5.4)(mysql2@3.23.3(@types/node@20.19.43))(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(srvx@0.11.22)(supports-color@10.0.0)(typescript@7.0.2)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) '@nuxt/schema': 3.21.11 '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.11(magicast@0.5.4)) - '@nuxt/vite-builder': 3.21.11(@types/node@20.19.43)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(magicast@0.5.4)(meow@13.2.0)(nuxt@3.21.11(655d928df5d3f11c3078cc77ff7227cd))(optionator@0.9.4)(oxlint@1.75.0(oxlint-tsgolint@7.0.2003))(rolldown@1.2.11)(rollup-plugin-visualizer@6.0.11(rolldown@1.2.11)(rollup@4.62.3))(rollup@4.62.3)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(typescript@7.0.2)(vue@3.5.41(typescript@7.0.2))(yaml@2.9.0) + '@nuxt/vite-builder': 3.21.11(@types/node@20.19.43)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(magicast@0.5.4)(meow@13.2.0)(nuxt@3.21.11(22d65155c9d751dff0e315548e3499ce))(optionator@0.9.4)(oxlint@1.75.0(oxlint-tsgolint@7.0.2003))(rolldown@1.2.14)(rollup-plugin-visualizer@6.0.11(rolldown@1.2.14)(rollup@4.62.3))(rollup@4.62.3)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(typescript@7.0.2)(vue@3.5.41(typescript@7.0.2))(yaml@2.9.0) '@unhead/vue': 2.1.17(vue@3.5.41(typescript@7.0.2)) '@vue/shared': 3.5.41 c12: 3.3.4(magicast@0.5.4) @@ -35139,7 +35036,7 @@ snapshots: h3: 1.15.11 hookable: 5.5.3 ignore: 7.0.12 - impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + impound: 1.1.6(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 @@ -35153,7 +35050,7 @@ snapshots: oxc-minify: 0.143.0 oxc-parser: 0.143.0 oxc-transform: 0.143.0 - oxc-walker: 1.1.1(@oxc-project/types@0.152.0)(oxc-parser@0.143.0)(rolldown@1.2.11) + oxc-walker: 1.1.1(@oxc-project/types@0.152.0)(oxc-parser@0.143.0)(rolldown@1.2.14) pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 @@ -35166,8 +35063,8 @@ snapshots: ultrahtml: 1.7.0 uncrypto: 0.1.3 unctx: 2.5.0 - unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unimport: 6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.41)(vue-router@4.6.4(vue@3.5.41(typescript@7.0.2)))(vue@3.5.41(typescript@7.0.2)) untyped: 2.0.0 vue: 3.5.41(typescript@7.0.2) @@ -35686,11 +35583,11 @@ snapshots: '@oxc-transform/binding-win32-ia32-msvc': 0.143.0 '@oxc-transform/binding-win32-x64-msvc': 0.143.0 - oxc-walker@1.1.1(@oxc-project/types@0.152.0)(oxc-parser@0.143.0)(rolldown@1.2.11): + oxc-walker@1.1.1(@oxc-project/types@0.152.0)(oxc-parser@0.143.0)(rolldown@1.2.14): optionalDependencies: '@oxc-project/types': 0.152.0 oxc-parser: 0.143.0 - rolldown: 1.2.11 + rolldown: 1.2.14 oxfmt@0.70.0: dependencies: @@ -37161,14 +37058,6 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - recast@0.24.0: - dependencies: - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tiny-invariant: 1.3.3 - tslib: 2.8.1 - rechoir@0.8.0: dependencies: resolve: 1.22.12 @@ -37433,8 +37322,6 @@ snapshots: resolve-pathname@2.2.0: {} - resolve-pkg-maps@1.0.0: {} - resolve-url-loader@5.0.0: dependencies: adjust-sourcemap-loader: 4.0.0 @@ -37536,43 +37423,32 @@ snapshots: safe-stable-stringify: 2.5.0 semver-compare: 1.0.0 - rolldown@1.2.11: + rolldown@1.2.14: dependencies: - '@oxc-project/types': 0.151.0 + '@oxc-project/types': 0.154.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.11 - '@rolldown/binding-android-arm64': 1.2.11 - '@rolldown/binding-darwin-arm64': 1.2.11 - '@rolldown/binding-darwin-x64': 1.2.11 - '@rolldown/binding-freebsd-x64': 1.2.11 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.11 - '@rolldown/binding-linux-arm64-gnu': 1.2.11 - '@rolldown/binding-linux-arm64-musl': 1.2.11 - '@rolldown/binding-linux-ppc64-gnu': 1.2.11 - '@rolldown/binding-linux-s390x-gnu': 1.2.11 - '@rolldown/binding-linux-x64-gnu': 1.2.11 - '@rolldown/binding-linux-x64-musl': 1.2.11 - '@rolldown/binding-openharmony-arm64': 1.2.11 - '@rolldown/binding-win32-arm64-msvc': 1.2.11 - '@rolldown/binding-win32-x64-msvc': 1.2.11 + '@rolldown/binding-android-arm-eabi': 1.2.14 + '@rolldown/binding-android-arm64': 1.2.14 + '@rolldown/binding-darwin-arm64': 1.2.14 + '@rolldown/binding-darwin-x64': 1.2.14 + '@rolldown/binding-freebsd-x64': 1.2.14 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.14 + '@rolldown/binding-linux-arm64-gnu': 1.2.14 + '@rolldown/binding-linux-arm64-musl': 1.2.14 + '@rolldown/binding-linux-ppc64-gnu': 1.2.14 + '@rolldown/binding-linux-s390x-gnu': 1.2.14 + '@rolldown/binding-linux-x64-gnu': 1.2.14 + '@rolldown/binding-linux-x64-musl': 1.2.14 + '@rolldown/binding-openharmony-arm64': 1.2.14 + '@rolldown/binding-win32-arm64-msvc': 1.2.14 + '@rolldown/binding-win32-x64-msvc': 1.2.14 rollup-plugin-copy-assets@2.0.3(rollup@4.62.3): dependencies: fs-extra: 7.0.1 rollup: 4.62.3 - rollup-plugin-esbuild@6.2.1(esbuild@0.28.1)(rollup@4.62.3)(supports-color@10.0.0): - dependencies: - debug: 4.4.3(supports-color@10.0.0) - es-module-lexer: 1.7.0 - esbuild: 0.28.1 - get-tsconfig: 4.14.0 - rollup: 4.62.3 - unplugin-utils: 0.2.5 - transitivePeerDependencies: - - supports-color - rollup-plugin-license@3.7.1(picomatch@4.0.7)(rollup@4.62.3): dependencies: commenting: 1.1.0 @@ -37595,14 +37471,14 @@ snapshots: optionalDependencies: '@types/node': 14.18.63 - rollup-plugin-visualizer@6.0.11(rolldown@1.2.11)(rollup@4.62.3): + rollup-plugin-visualizer@6.0.11(rolldown@1.2.14)(rollup@4.62.3): dependencies: open: 8.4.2 picomatch: 4.0.7 source-map: 0.7.6 yargs: 17.7.3 optionalDependencies: - rolldown: 1.2.11 + rolldown: 1.2.14 rollup: 4.62.3 rollup@2.80.0: @@ -39131,26 +39007,26 @@ snapshots: magic-string: 0.30.21 unplugin: 2.3.11 - unctx@3.0.1(magic-string@0.30.21)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): + unctx@3.0.1(magic-string@0.30.21)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): optionalDependencies: magic-string: 0.30.21 oxc-parser: 0.143.0 - rolldown: 1.2.11 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + rolldown: 1.2.14 + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) - unctx@3.0.1(magic-string@1.1.0)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): + unctx@3.0.1(magic-string@1.1.0)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): optionalDependencies: magic-string: 1.1.0 oxc-parser: 0.143.0 - rolldown: 1.2.11 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + rolldown: 1.2.14 + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) - unctx@3.0.1(magic-string@1.1.0)(oxc-parser@0.152.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): + unctx@3.0.1(magic-string@1.1.0)(oxc-parser@0.152.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))): optionalDependencies: magic-string: 1.1.0 oxc-parser: 0.152.0 - rolldown: 1.2.11 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + rolldown: 1.2.14 + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) undefsafe@2.0.5: {} @@ -39214,7 +39090,7 @@ snapshots: trough: 2.1.0 vfile: 6.0.3 - unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.143.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 @@ -39228,11 +39104,11 @@ snapshots: scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 optionalDependencies: oxc-parser: 0.143.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -39243,7 +39119,7 @@ snapshots: - vite - webpack - unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 @@ -39257,11 +39133,11 @@ snapshots: scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 optionalDependencies: oxc-parser: 0.152.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -39272,7 +39148,7 @@ snapshots: - vite - webpack - unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + unimport@6.4.0(esbuild@0.28.1)(oxc-parser@0.152.0)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 @@ -39286,11 +39162,11 @@ snapshots: scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) unplugin-utils: 0.3.2 optionalDependencies: oxc-parser: 0.152.0 - rolldown: 1.2.11 + rolldown: 1.2.14 transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -39371,11 +39247,6 @@ snapshots: unpipe@1.0.0: {} - unplugin-utils@0.2.5: - dependencies: - pathe: 2.0.3 - picomatch: 4.0.7 - unplugin-utils@0.3.2: dependencies: pathe: 2.0.3 @@ -39413,26 +39284,26 @@ snapshots: picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 - unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 optionalDependencies: esbuild: 0.28.1 - rolldown: 1.2.11 + rolldown: 1.2.14 rollup: 4.62.3 vite: 6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) webpack: 5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3) - unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): + unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 optionalDependencies: esbuild: 0.28.1 - rolldown: 1.2.11 + rolldown: 1.2.14 rollup: 4.62.3 vite: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) webpack: 5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3) @@ -39613,7 +39484,7 @@ snapshots: '@types/unist': 3.0.0 vfile-message: 4.0.3 - vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0): + vinxi@0.5.11(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(@types/node@20.19.43)(db0@0.3.4(mysql2@3.23.3(@types/node@20.19.43)))(debug@4.4.3(supports-color@10.0.0))(encoding@0.1.13)(ioredis@5.11.0(supports-color@10.0.0))(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(sass@1.72.0)(srvx@0.11.22)(stylus@0.59.0(supports-color@10.0.0))(supports-color@10.0.0)(terser@5.43.1)(tsx@4.23.0)(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))(yaml@2.9.0): dependencies: '@babel/core': 7.29.7(supports-color@10.0.0) '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.0.0)) @@ -39634,7 +39505,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1(debug@4.4.3(supports-color@10.0.0)) micromatch: 4.0.8 - nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.11)(srvx@0.11.22)(supports-color@10.0.0)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) + nitropack: 2.13.4(@azure/storage-blob@12.31.0(supports-color@10.0.0))(@parcel/watcher@2.5.6)(encoding@0.1.13)(mysql2@3.23.3(@types/node@20.19.43))(oxc-parser@0.152.0)(rolldown@1.2.14)(srvx@0.11.22)(supports-color@10.0.0)(vite@6.4.3(@types/node@20.19.43)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(lightningcss@1.33.0)(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3)) node-fetch-native: 1.6.7 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -39767,7 +39638,7 @@ snapshots: oxlint: 1.75.0(oxlint-tsgolint@7.0.2003) typescript: 7.0.2 - vite-plugin-inspect@11.4.1(@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))))(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 @@ -39780,7 +39651,7 @@ snapshots: vite: 8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0) vite-dev-rpc: 2.0.0(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)) optionalDependencies: - '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.11)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.11)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) + '@nuxt/kit': 4.6.0(@nuxt/schema@3.21.11)(confbox@0.2.4)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@0.30.21)(mlly@1.8.2)(oxc-parser@0.143.0)(rolldown@1.2.14)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.14)(rollup@4.62.3)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0))(webpack@5.107.2(clean-css@5.2.2)(cssnano@7.1.9(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.28)(uglify-js@3.13.3))) vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(supports-color@10.0.0)(vite@8.3.1(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.2.0(supports-color@10.0.0))(sass@1.72.0)(stylus@0.59.0(supports-color@10.0.0))(terser@5.43.1)(tsx@4.23.0)(yaml@2.9.0)): dependencies: @@ -39866,7 +39737,7 @@ snapshots: lightningcss: 1.33.0 picomatch: 4.0.7 postcss: 8.5.28 - rolldown: 1.2.11 + rolldown: 1.2.14 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 20.19.43 @@ -39885,7 +39756,7 @@ snapshots: lightningcss: 1.33.0 picomatch: 4.0.7 postcss: 8.5.28 - rolldown: 1.2.11 + rolldown: 1.2.14 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 20.19.43