@rollup/wasm-node 4.59.1 → 4.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/rollup CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /*
3
3
  @license
4
- Rollup.js v4.59.1
5
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
4
+ Rollup.js v4.60.0
5
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
6
6
 
7
7
  https://github.com/rollup/rollup
8
8
 
@@ -27,7 +27,7 @@ require('node:perf_hooks');
27
27
  require('node:url');
28
28
  require('../getLogFilter.js');
29
29
 
30
- const help = "rollup version 4.59.1\n=====================================\n\nUsage: rollup [options] <entry file>\n\nOptions:\n\n-c, --config <filename> Use this config file (if argument is used but value\n is unspecified, Rollup will try to load configuration files in\n the following order:\n rollup.config.mjs -> rollup.config.cjs -> rollup.config.js)\n-d, --dir <dirname> Directory for chunks (if absent, prints to stdout)\n-e, --external <ids> Comma-separate list of module IDs to exclude\n-f, --format <format> Type of output (amd, cjs, es, iife, umd, system)\n-g, --globals <pairs> Comma-separate list of `moduleID:Global` pairs\n-h, --help Show this help message\n-i, --input <filename> Input (alternative to <entry file>)\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n-n, --name <name> Name for UMD export\n-o, --file <output> Single output file (if absent, prints to stdout)\n-p, --plugin <plugin> Use the plugin specified (may be repeated)\n-v, --version Show version number\n-w, --watch Watch files in bundle and rebuild on changes\n--amd.autoId Generate the AMD ID based off the chunk name\n--amd.basePath <prefix> Path to prepend to auto generated AMD ID\n--amd.define <name> Function to use in place of `define`\n--amd.forceJsExtensionForImports Use `.js` extension in AMD imports\n--amd.id <id> ID for AMD module (default is anonymous)\n--assetFileNames <pattern> Name pattern for emitted assets\n--banner <text> Code to insert at top of bundle (outside wrapper)\n--chunkFileNames <pattern> Name pattern for emitted secondary chunks\n--compact Minify wrapper code\n--context <variable> Specify top-level `this` value\n--no-dynamicImportInCjs Write external dynamic CommonJS imports as require\n--entryFileNames <pattern> Name pattern for emitted entry chunks\n--environment <values> Settings passed to config file (see example)\n--no-esModule Do not add __esModule property\n--exports <mode> Specify export mode (auto, default, named, none)\n--extend Extend global variable defined by --name\n--no-externalImportAttributes Omit import attributes in \"es\" output\n--no-externalLiveBindings Do not generate code to support live bindings\n--failAfterWarnings Exit with an error if the build produced warnings\n--filterLogs <filter> Filter log messages\n--footer <text> Code to insert at end of bundle (outside wrapper)\n--forceExit Force exit the process when done\n--no-freeze Do not freeze namespace objects\n--generatedCode <preset> Which code features to use (es5/es2015)\n--generatedCode.arrowFunctions Use arrow functions in generated code\n--generatedCode.constBindings Use \"const\" in generated code\n--generatedCode.objectShorthand Use shorthand properties in generated code\n--no-generatedCode.reservedNamesAsProps Always quote reserved names as props\n--generatedCode.symbols Use symbols in generated code\n--hashCharacters <name> Use the specified character set for file hashes\n--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks\n--importAttributesKey <name> Use the specified keyword for import attributes\n--no-indent Don't indent result\n--inlineDynamicImports Create single bundle when using dynamic imports\n--no-interop Do not include interop block\n--intro <text> Code to insert at top of bundle (inside wrapper)\n--logLevel <level> Which kind of logs to display\n--no-makeAbsoluteExternalsRelative Prevent normalization of external imports\n--maxParallelFileOps <value> How many files to read in parallel\n--minifyInternalExports Force or disable minification of internal exports\n--noConflict Generate a noConflict method for UMD globals\n--outro <text> Code to insert at end of bundle (inside wrapper)\n--perf Display performance timings\n--no-preserveEntrySignatures Avoid facade chunks for entry points\n--preserveModules Preserve module structure\n--preserveModulesRoot Put preserved modules under this path at root level\n--preserveSymlinks Do not follow symlinks when resolving files\n--no-reexportProtoFromExternal Ignore `__proto__` in star re-exports\n--no-sanitizeFileName Do not replace invalid characters in file names\n--shimMissingExports Create shim variables for missing exports\n--silent Don't print warnings\n--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base\n--sourcemapDebugIds Emit unique debug ids in source and sourcemaps\n--sourcemapExcludeSources Do not include source code in source maps\n--sourcemapFile <file> Specify bundle position for source maps\n--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps\n--stdin=ext Specify file extension used for stdin input\n--no-stdin Do not read \"-\" from stdin\n--no-strict Don't emit `\"use strict\";` in the generated modules\n--strictDeprecations Throw errors for deprecated features\n--no-systemNullSetters Do not replace empty SystemJS setters with `null`\n--no-treeshake Disable tree-shaking optimisations\n--no-treeshake.annotations Ignore pure call annotations\n--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared\n--treeshake.manualPureFunctions <names> Manually declare functions as pure\n--no-treeshake.moduleSideEffects Assume modules have no side effects\n--no-treeshake.propertyReadSideEffects Ignore property access side effects\n--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking\n--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw\n--validate Validate output\n--waitForBundleInput Wait for bundle input files\n--watch.allowInputInsideOutputPath Whether the input path is allowed to be a\n subpath of the output path\n--watch.buildDelay <number> Throttle watch rebuilds\n--no-watch.clearScreen Do not clear the screen when rebuilding\n--watch.exclude <files> Exclude files from being watched\n--watch.include <files> Limit watching to specified files\n--watch.onBundleEnd <cmd> Shell command to run on `\"BUNDLE_END\"` event\n--watch.onBundleStart <cmd> Shell command to run on `\"BUNDLE_START\"` event\n--watch.onEnd <cmd> Shell command to run on `\"END\"` event\n--watch.onError <cmd> Shell command to run on `\"ERROR\"` event\n--watch.onStart <cmd> Shell command to run on `\"START\"` event\n--watch.skipWrite Do not write files to disk when watching\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --file=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://rollupjs.org\n";
30
+ const help = "rollup version 4.60.0\n=====================================\n\nUsage: rollup [options] <entry file>\n\nOptions:\n\n-c, --config <filename> Use this config file (if argument is used but value\n is unspecified, Rollup will try to load configuration files in\n the following order:\n rollup.config.mjs -> rollup.config.cjs -> rollup.config.js)\n-d, --dir <dirname> Directory for chunks (if absent, prints to stdout)\n-e, --external <ids> Comma-separate list of module IDs to exclude\n-f, --format <format> Type of output (amd, cjs, es, iife, umd, system)\n-g, --globals <pairs> Comma-separate list of `moduleID:Global` pairs\n-h, --help Show this help message\n-i, --input <filename> Input (alternative to <entry file>)\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n-n, --name <name> Name for UMD export\n-o, --file <output> Single output file (if absent, prints to stdout)\n-p, --plugin <plugin> Use the plugin specified (may be repeated)\n-v, --version Show version number\n-w, --watch Watch files in bundle and rebuild on changes\n--amd.autoId Generate the AMD ID based off the chunk name\n--amd.basePath <prefix> Path to prepend to auto generated AMD ID\n--amd.define <name> Function to use in place of `define`\n--amd.forceJsExtensionForImports Use `.js` extension in AMD imports\n--amd.id <id> ID for AMD module (default is anonymous)\n--assetFileNames <pattern> Name pattern for emitted assets\n--banner <text> Code to insert at top of bundle (outside wrapper)\n--chunkFileNames <pattern> Name pattern for emitted secondary chunks\n--compact Minify wrapper code\n--context <variable> Specify top-level `this` value\n--no-dynamicImportInCjs Write external dynamic CommonJS imports as require\n--entryFileNames <pattern> Name pattern for emitted entry chunks\n--environment <values> Settings passed to config file (see example)\n--no-esModule Do not add __esModule property\n--exports <mode> Specify export mode (auto, default, named, none)\n--extend Extend global variable defined by --name\n--no-externalImportAttributes Omit import attributes in \"es\" output\n--no-externalLiveBindings Do not generate code to support live bindings\n--failAfterWarnings Exit with an error if the build produced warnings\n--filterLogs <filter> Filter log messages\n--footer <text> Code to insert at end of bundle (outside wrapper)\n--forceExit Force exit the process when done\n--no-freeze Do not freeze namespace objects\n--generatedCode <preset> Which code features to use (es5/es2015)\n--generatedCode.arrowFunctions Use arrow functions in generated code\n--generatedCode.constBindings Use \"const\" in generated code\n--generatedCode.objectShorthand Use shorthand properties in generated code\n--no-generatedCode.reservedNamesAsProps Always quote reserved names as props\n--generatedCode.symbols Use symbols in generated code\n--hashCharacters <name> Use the specified character set for file hashes\n--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks\n--importAttributesKey <name> Use the specified keyword for import attributes\n--no-indent Don't indent result\n--inlineDynamicImports Create single bundle when using dynamic imports\n--no-interop Do not include interop block\n--intro <text> Code to insert at top of bundle (inside wrapper)\n--logLevel <level> Which kind of logs to display\n--no-makeAbsoluteExternalsRelative Prevent normalization of external imports\n--maxParallelFileOps <value> How many files to read in parallel\n--minifyInternalExports Force or disable minification of internal exports\n--noConflict Generate a noConflict method for UMD globals\n--outro <text> Code to insert at end of bundle (inside wrapper)\n--perf Display performance timings\n--no-preserveEntrySignatures Avoid facade chunks for entry points\n--preserveModules Preserve module structure\n--preserveModulesRoot Put preserved modules under this path at root level\n--preserveSymlinks Do not follow symlinks when resolving files\n--no-reexportProtoFromExternal Ignore `__proto__` in star re-exports\n--no-sanitizeFileName Do not replace invalid characters in file names\n--shimMissingExports Create shim variables for missing exports\n--silent Don't print warnings\n--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base\n--sourcemapDebugIds Emit unique debug ids in source and sourcemaps\n--sourcemapExcludeSources Do not include source code in source maps\n--sourcemapFile <file> Specify bundle position for source maps\n--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps\n--stdin=ext Specify file extension used for stdin input\n--no-stdin Do not read \"-\" from stdin\n--no-strict Don't emit `\"use strict\";` in the generated modules\n--strictDeprecations Throw errors for deprecated features\n--no-systemNullSetters Do not replace empty SystemJS setters with `null`\n--no-treeshake Disable tree-shaking optimisations\n--no-treeshake.annotations Ignore pure call annotations\n--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared\n--treeshake.manualPureFunctions <names> Manually declare functions as pure\n--no-treeshake.moduleSideEffects Assume modules have no side effects\n--no-treeshake.propertyReadSideEffects Ignore property access side effects\n--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking\n--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw\n--validate Validate output\n--waitForBundleInput Wait for bundle input files\n--watch.allowInputInsideOutputPath Whether the input path is allowed to be a\n subpath of the output path\n--watch.buildDelay <number> Throttle watch rebuilds\n--no-watch.clearScreen Do not clear the screen when rebuilding\n--watch.exclude <files> Exclude files from being watched\n--watch.include <files> Limit watching to specified files\n--watch.onBundleEnd <cmd> Shell command to run on `\"BUNDLE_END\"` event\n--watch.onBundleStart <cmd> Shell command to run on `\"BUNDLE_START\"` event\n--watch.onEnd <cmd> Shell command to run on `\"END\"` event\n--watch.onError <cmd> Shell command to run on `\"ERROR\"` event\n--watch.onStart <cmd> Shell command to run on `\"START\"` event\n--watch.skipWrite Do not write files to disk when watching\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --file=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://rollupjs.org\n";
31
31
 
32
32
  /**
33
33
  * @license
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/es/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,13 +1,13 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
8
8
  Released under the MIT License.
9
9
  */
10
- import { EMPTY_OBJECT, ExportDefaultDeclaration as ExportDefaultDeclaration$1, CallExpression as CallExpression$1, EMPTY_ARRAY, LOGLEVEL_WARN, logUnusedExternalImports, ANNOTATION_KEY, INVALID_ANNOTATION_KEY, ExpressionStatement as ExpressionStatement$1, AwaitExpression as AwaitExpression$1, MemberExpression as MemberExpression$1, Identifier as Identifier$1, FunctionExpression as FunctionExpression$1, ArrowFunctionExpression as ArrowFunctionExpression$1, ObjectExpression as ObjectExpression$1, Property as Property$1, Program as Program$1, logIllegalImportReassignment, BLANK, logRedeclarationError, StaticBlock as StaticBlock$1, CatchClause as CatchClause$1, logDuplicateArgumentNameError, logModuleLevelDirective, ReturnStatement as ReturnStatement$1, VariableDeclarator as VariableDeclarator$1, logMissingExport, normalize, getImportPath, logMissingNodeBuiltins, logReservedNamespace, error, logIllegalIdentifierAsName, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, RestElement as RestElement$1, logConstVariableReassignError, EMPTY_SET, logCannotCallNamespace, logEval, BlockStatement as BlockStatement$1, getRollupError, logModuleParseError, logParseError, LOGLEVEL_INFO, logFirstSideEffect, locate, logInvalidAnnotation, logThisIsUndefined, getAstBuffer, convertAnnotations, FIXED_STRINGS, convertNode as convertNode$1, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logMissingEntryExport, logSyntheticNamedExportsNeedNamespaceExport, logDuplicateExportError, logInvalidSourcemapForError, augmentCodeLocation, logInconsistentImportAttributes, logMissingJsxExport, logNamespaceConflict, logAmbiguousExternalNamespaces, logShimmedExport, parseAst, TemplateLiteral as TemplateLiteral$1, Literal as Literal$1, logCircularReexport, logInvalidFormatForTopLevelAwait, logAddonNotGenerated, logIncompatibleExportOptionValue, logMixedExport, logFailedValidation, isPathFragment, logCyclicCrossChunkReexport, getAliasName, logUnexpectedNamedImport, isAbsolute as isAbsolute$1, relative as relative$1, logUnexpectedNamespaceReexport, logEmptyChunk, logMissingGlobalName, logOptimizeChunkStatus, logSourcemapBroken, logConflictingSourcemapSources, logChunkInvalid, logInvalidOption, URL_OUTPUT_FORMAT, URL_OUTPUT_DIR, URL_OUTPUT_SOURCEMAPFILE, URL_OUTPUT_AMD_ID, logFileNameOutsideOutputDirectory, logCannotAssignModuleToChunk, logCircularChunk, logUnknownOption, printQuotedStringList, LOGLEVEL_ERROR, logLevelPriority, LOGLEVEL_DEBUG, logAnonymousPluginCache, logDuplicatePluginName, logInvalidSetAssetSourceCall, logPluginError, logNoTransformMapOrAstWithoutCode, warnDeprecation, URL_TRANSFORM, relativeId, logBadLoader, logInternalIdCannotBeExternal, isRelative, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logExternalSyntheticExports, logUnresolvedEntry, logUnresolvedImplicitDependant, logExternalModulesCannotBeIncludedInManualChunks, logEntryCannotBeExternal, logImplicitDependantCannotBeExternal, logExternalModulesCannotBeTransformedToModules, URL_LOAD, logNoAssetSourceSet, logFileReferenceIdNotFoundForFilename, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logInvalidRollupPhaseForChunkEmission, logChunkNotGeneratedForFileName, logAssetNotFinalisedForFileName, logFileNameConflict, URL_GENERATEBUNDLE, logInvalidLogPosition, logInputHookInOutputPlugin, logInvalidAddonPluginHook, logInvalidFunctionPluginHook, logImplicitDependantIsNotIncluded, logCircularDependency, augmentLogMessage, URL_JSX, URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_PRESERVEENTRYSIGNATURES, URL_OUTPUT_GENERATEDCODE, isValidUrl, addTrailingSlashIfMissed, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_MANUALCHUNKS, logInvalidExportOptionValue, URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_INTEROP, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, logAlreadyClosed, logMissingFileOrDirOption, logCannotEmitFromOptionsHook, URL_WATCH } from './parseAst.js';
10
+ import { EMPTY_OBJECT, ExportDefaultDeclaration as ExportDefaultDeclaration$1, CallExpression as CallExpression$1, EMPTY_ARRAY, LOGLEVEL_WARN, logUnusedExternalImports, ANNOTATION_KEY, INVALID_ANNOTATION_KEY, ExpressionStatement as ExpressionStatement$1, AwaitExpression as AwaitExpression$1, MemberExpression as MemberExpression$1, Identifier as Identifier$1, FunctionExpression as FunctionExpression$1, ArrowFunctionExpression as ArrowFunctionExpression$1, ObjectExpression as ObjectExpression$1, Property as Property$1, Program as Program$1, logIllegalImportReassignment, BLANK, logRedeclarationError, StaticBlock as StaticBlock$1, CatchClause as CatchClause$1, logDuplicateArgumentNameError, logModuleLevelDirective, ReturnStatement as ReturnStatement$1, VariableDeclarator as VariableDeclarator$1, logMissingExport, normalize, getImportPath, error, logSourcePhaseFormatUnsupported, logMissingNodeBuiltins, logReservedNamespace, logIllegalIdentifierAsName, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, RestElement as RestElement$1, logConstVariableReassignError, EMPTY_SET, logCannotCallNamespace, logEval, BlockStatement as BlockStatement$1, getRollupError, logModuleParseError, logParseError, LOGLEVEL_INFO, logFirstSideEffect, locate, logInvalidAnnotation, logThisIsUndefined, getAstBuffer, convertAnnotations, FIXED_STRINGS, convertNode as convertNode$1, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logMissingEntryExport, logSyntheticNamedExportsNeedNamespaceExport, logDuplicateExportError, logInvalidSourcemapForError, augmentCodeLocation, logInconsistentImportAttributes, logMissingJsxExport, logNamespaceConflict, logAmbiguousExternalNamespaces, logShimmedExport, parseAst, TemplateLiteral as TemplateLiteral$1, Literal as Literal$1, logCircularReexport, logInvalidFormatForTopLevelAwait, logAddonNotGenerated, logIncompatibleExportOptionValue, logMixedExport, logFailedValidation, isPathFragment, logCyclicCrossChunkReexport, getAliasName, logUnexpectedNamedImport, isAbsolute as isAbsolute$1, relative as relative$1, logUnexpectedNamespaceReexport, logEmptyChunk, logMissingGlobalName, logOptimizeChunkStatus, logSourcemapBroken, logConflictingSourcemapSources, logChunkInvalid, logInvalidOption, URL_OUTPUT_FORMAT, URL_OUTPUT_DIR, URL_OUTPUT_SOURCEMAPFILE, URL_OUTPUT_AMD_ID, logFileNameOutsideOutputDirectory, logCannotAssignModuleToChunk, logCircularChunk, logUnknownOption, printQuotedStringList, LOGLEVEL_ERROR, logLevelPriority, LOGLEVEL_DEBUG, logAnonymousPluginCache, logDuplicatePluginName, logInvalidSetAssetSourceCall, logPluginError, logNoTransformMapOrAstWithoutCode, warnDeprecation, URL_TRANSFORM, relativeId, logBadLoader, logNonExternalSourcePhaseImport, logInternalIdCannotBeExternal, isRelative, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logExternalSyntheticExports, logUnresolvedEntry, logUnresolvedImplicitDependant, logExternalModulesCannotBeIncludedInManualChunks, logEntryCannotBeExternal, logImplicitDependantCannotBeExternal, logExternalModulesCannotBeTransformedToModules, URL_LOAD, logNoAssetSourceSet, logFileReferenceIdNotFoundForFilename, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logInvalidRollupPhaseForChunkEmission, logChunkNotGeneratedForFileName, logAssetNotFinalisedForFileName, logFileNameConflict, URL_GENERATEBUNDLE, logInvalidLogPosition, logInputHookInOutputPlugin, logInvalidAddonPluginHook, logInvalidFunctionPluginHook, logImplicitDependantIsNotIncluded, logCircularDependency, augmentLogMessage, URL_JSX, URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_PRESERVEENTRYSIGNATURES, URL_OUTPUT_GENERATEDCODE, isValidUrl, addTrailingSlashIfMissed, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_MANUALCHUNKS, logInvalidExportOptionValue, URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_INTEROP, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, logAlreadyClosed, logMissingFileOrDirOption, logCannotEmitFromOptionsHook, URL_WATCH } from './parseAst.js';
11
11
  import { relative, dirname, basename, extname, resolve as resolve$1, join } from 'node:path';
12
12
  import { posix, isAbsolute, resolve, win32 } from 'path';
13
13
  import { parseAsync, xxhashBase16, xxhashBase64Url, xxhashBase36 } from '../../native.js';
@@ -27,7 +27,7 @@ function _mergeNamespaces(n, m) {
27
27
  return Object.defineProperty(n, Symbol.toStringTag, { value: 'Module' });
28
28
  }
29
29
 
30
- var version = "4.59.1";
30
+ var version = "4.60.0";
31
31
 
32
32
  // src/vlq.ts
33
33
  var comma = ",".charCodeAt(0);
@@ -2464,12 +2464,15 @@ class Variable extends ExpressionEntity {
2464
2464
  }
2465
2465
  }
2466
2466
 
2467
+ /** Synthetic import name for source phase imports, similar to '*' for namespaces */
2468
+ const SOURCE_PHASE_IMPORT = '*source';
2467
2469
  class ExternalVariable extends Variable {
2468
2470
  constructor(module, name) {
2469
2471
  super(name);
2470
2472
  this.referenced = false;
2471
2473
  this.module = module;
2472
2474
  this.isNamespace = name === '*';
2475
+ this.isSourcePhase = name === SOURCE_PHASE_IMPORT;
2473
2476
  }
2474
2477
  addReference(identifier) {
2475
2478
  this.referenced = true;
@@ -8432,6 +8435,13 @@ function getInteropBlock(dependencies, interop, externalLiveBindings, freeze, sy
8432
8435
  return `${getHelpersBlock(neededInteropHelpers, accessedGlobals, indent, snippets, externalLiveBindings, freeze, symbols)}${interopStatements.length > 0 ? `${interopStatements.join(n)}${n}${n}` : ''}`;
8433
8436
  }
8434
8437
 
8438
+ function throwOnPhase(outputFormat, chunkId, dependencies) {
8439
+ const sourcePhaseDependency = dependencies.find(dependency => dependency.sourcePhaseImport);
8440
+ if (sourcePhaseDependency) {
8441
+ error(logSourcePhaseFormatUnsupported(outputFormat, chunkId, sourcePhaseDependency.importPath));
8442
+ }
8443
+ }
8444
+
8435
8445
  function addJsExtension(name) {
8436
8446
  return name.endsWith('.js') ? name : name + '.js';
8437
8447
  }
@@ -8570,6 +8580,7 @@ function warnOnBuiltins(log, dependencies) {
8570
8580
 
8571
8581
  function amd(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, log, outro, snippets }, { amd, esModule, externalLiveBindings, freeze, generatedCode: { symbols }, interop, reexportProtoFromExternal, strict }) {
8572
8582
  warnOnBuiltins(log, dependencies);
8583
+ throwOnPhase('amd', id, dependencies);
8573
8584
  const deps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);
8574
8585
  const parameters = dependencies.map(m => m.name);
8575
8586
  const { n, getNonArrowFunctionIntro, _ } = snippets;
@@ -8607,7 +8618,8 @@ function amd(magicString, { accessedGlobals, dependencies, exports: exports$1, h
8607
8618
  .append(`${n}${n}}));`);
8608
8619
  }
8609
8620
 
8610
- function cjs(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) {
8621
+ function cjs(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) {
8622
+ throwOnPhase('cjs', id, dependencies);
8611
8623
  const { _, n } = snippets;
8612
8624
  const useStrict = strict ? `'use strict';${n}${n}` : '';
8613
8625
  let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), isModuleFacade && symbols, snippets);
@@ -8660,11 +8672,16 @@ function es(magicString, { accessedGlobals, indent: t, intro, outro, dependencie
8660
8672
  }
8661
8673
  function getImportBlock(dependencies, importAttributesKey, { _ }) {
8662
8674
  const importBlock = [];
8663
- for (const { importPath, reexports, imports, name, attributes } of dependencies) {
8675
+ for (const { importPath, reexports, imports, name, attributes, sourcePhaseImport } of dependencies) {
8664
8676
  const assertion = attributes ? `${_}${importAttributesKey}${_}${attributes}` : '';
8665
8677
  const pathWithAssertion = `'${importPath}'${assertion};`;
8678
+ if (sourcePhaseImport) {
8679
+ importBlock.push(`import source ${sourcePhaseImport} from${_}${pathWithAssertion}`);
8680
+ }
8666
8681
  if (!reexports && !imports) {
8667
- importBlock.push(`import${_}${pathWithAssertion}`);
8682
+ if (!sourcePhaseImport) {
8683
+ importBlock.push(`import${_}${pathWithAssertion}`);
8684
+ }
8668
8685
  continue;
8669
8686
  }
8670
8687
  if (imports) {
@@ -8818,7 +8835,8 @@ function trimEmptyImports(dependencies) {
8818
8835
  return [];
8819
8836
  }
8820
8837
 
8821
- function iife(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) {
8838
+ function iife(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) {
8839
+ throwOnPhase('iife', id, dependencies);
8822
8840
  const { _, getNonArrowFunctionIntro, getPropertyAccess, n } = snippets;
8823
8841
  const isNamespaced = name && name.includes('.');
8824
8842
  const useVariableAssignment = !extend && !isNamespaced;
@@ -8877,7 +8895,8 @@ function iife(magicString, { accessedGlobals, dependencies, exports: exports$1,
8877
8895
 
8878
8896
  const MISSING_EXPORT_SHIM_VARIABLE = '_missingExportShim';
8879
8897
 
8880
- function system(magicString, { accessedGlobals, dependencies, exports: exports$1, hasExports, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) {
8898
+ function system(magicString, { accessedGlobals, dependencies, exports: exports$1, hasExports, id, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) {
8899
+ throwOnPhase('system', id, dependencies);
8881
8900
  const { _, getFunctionIntro, getNonArrowFunctionIntro, n, s } = snippets;
8882
8901
  const { importBindings, setters, starExcludes } = analyzeDependencies(dependencies, exports$1, t, snippets);
8883
8902
  const registeredName = name ? `'${name}',${_}` : '';
@@ -9045,6 +9064,7 @@ function umd(magicString, { accessedGlobals, dependencies, exports: exports$1, h
9045
9064
  if (hasExports && !name) {
9046
9065
  return error(logMissingNameOptionForUmdExport());
9047
9066
  }
9067
+ throwOnPhase('umd', id, dependencies);
9048
9068
  warnOnBuiltins(log, dependencies);
9049
9069
  const amdDeps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);
9050
9070
  const cjsDeps = dependencies.map(m => `require('${m.importPath}')`);
@@ -16120,6 +16140,8 @@ const bufferParsers = [
16120
16140
  node.specifiers = convertNodeList(node, scope, buffer[position], buffer);
16121
16141
  node.source = convertNode(node, scope, buffer[position + 1], buffer);
16122
16142
  node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer);
16143
+ const phaseIndex = buffer[position + 3];
16144
+ node.phase = phaseIndex === 0 ? undefined : FIXED_STRINGS[phaseIndex];
16123
16145
  },
16124
16146
  function importDefaultSpecifier(node, position, buffer) {
16125
16147
  const { scope } = node;
@@ -16131,6 +16153,8 @@ const bufferParsers = [
16131
16153
  node.sourceAstNode = convertNode$1(buffer[position], buffer);
16132
16154
  const optionsPosition = buffer[position + 1];
16133
16155
  node.options = optionsPosition === 0 ? null : convertNode(node, scope, optionsPosition, buffer);
16156
+ const phaseIndex = buffer[position + 2];
16157
+ node.phase = phaseIndex === 0 ? undefined : FIXED_STRINGS[phaseIndex];
16134
16158
  },
16135
16159
  function importNamespaceSpecifier(node, position, buffer) {
16136
16160
  const { scope } = node;
@@ -16916,6 +16940,7 @@ class Module {
16916
16940
  this.isUserDefinedEntryPoint = false;
16917
16941
  this.needsExportShim = false;
16918
16942
  this.sideEffectDependenciesByVariable = new Map();
16943
+ this.sourcePhaseSources = new Set();
16919
16944
  this.sourcesWithAttributes = new Map();
16920
16945
  this.allExportsIncluded = false;
16921
16946
  this.ast = null;
@@ -17566,16 +17591,19 @@ class Module {
17566
17591
  if (this.scope.variables.has(localName) || this.importDescriptions.has(localName)) {
17567
17592
  this.error(logRedeclarationError(localName), specifier.local.start);
17568
17593
  }
17569
- const name = specifier instanceof ImportDefaultSpecifier
17570
- ? 'default'
17571
- : specifier instanceof ImportNamespaceSpecifier
17572
- ? '*'
17573
- : specifier.imported instanceof Identifier
17574
- ? specifier.imported.name
17575
- : specifier.imported.value;
17594
+ const name = node.phase === 'source'
17595
+ ? SOURCE_PHASE_IMPORT
17596
+ : specifier instanceof ImportDefaultSpecifier
17597
+ ? 'default'
17598
+ : specifier instanceof ImportNamespaceSpecifier
17599
+ ? '*'
17600
+ : specifier.imported instanceof Identifier
17601
+ ? specifier.imported.name
17602
+ : specifier.imported.value;
17576
17603
  this.importDescriptions.set(localName, {
17577
17604
  module: null, // filled in later
17578
17605
  name,
17606
+ phase: node.phase === 'source' ? 'source' : 'instance',
17579
17607
  source,
17580
17608
  start: specifier.start
17581
17609
  });
@@ -17648,6 +17676,9 @@ class Module {
17648
17676
  else {
17649
17677
  this.sourcesWithAttributes.set(source, parsedAttributes);
17650
17678
  }
17679
+ if (declaration.phase === 'source') {
17680
+ this.sourcePhaseSources.add(source);
17681
+ }
17651
17682
  }
17652
17683
  getImportedJsxFactoryVariable(baseName, nodeStart, importSource) {
17653
17684
  const { id } = this.resolvedIds[importSource];
@@ -17861,6 +17892,9 @@ function deconflictImportsEsmOrSystem(usedNames, imports, dependenciesToBeDeconf
17861
17892
  ? externalChunkByModule.get(module)
17862
17893
  : chunkByModule.get(module)).variableName);
17863
17894
  }
17895
+ else if (module instanceof ExternalModule && variable.isSourcePhase) {
17896
+ variable.setRenderNames(null, getSafeName(module.suggestedVariableName + '__source', usedNames, variable.forbiddenNames));
17897
+ }
17864
17898
  else if (module instanceof ExternalModule && name === 'default') {
17865
17899
  variable.setRenderNames(null, getSafeName([...module.exportedVariables].some(([exportedVariable, exportedName]) => exportedName === '*' && exportedVariable.included)
17866
17900
  ? module.suggestedVariableName + '__default'
@@ -18907,10 +18941,14 @@ class Chunk {
18907
18941
  const module = variable.module;
18908
18942
  let dependency;
18909
18943
  let imported;
18944
+ const isSourcePhase = module instanceof ExternalModule && variable.isSourcePhase;
18910
18945
  if (module instanceof ExternalModule) {
18911
18946
  dependency = this.externalChunkByModule.get(module);
18912
18947
  imported = variable.name;
18913
- if (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {
18948
+ if (!isSourcePhase &&
18949
+ imported !== 'default' &&
18950
+ imported !== '*' &&
18951
+ interop(module.id) === 'defaultOnly') {
18914
18952
  return error(logUnexpectedNamedImport(module.id, imported, false));
18915
18953
  }
18916
18954
  }
@@ -18920,7 +18958,8 @@ class Chunk {
18920
18958
  }
18921
18959
  getOrCreate(importsByDependency, dependency, getNewArray).push({
18922
18960
  imported,
18923
- local: variable.getName(this.snippets.getPropertyAccess)
18961
+ local: variable.getName(this.snippets.getPropertyAccess),
18962
+ phase: isSourcePhase ? 'source' : 'instance'
18924
18963
  });
18925
18964
  }
18926
18965
  return importsByDependency;
@@ -19071,6 +19110,9 @@ class Chunk {
19071
19110
  const reexports = reexportSpecifiers.get(dependency) || null;
19072
19111
  const namedExportsMode = dependency instanceof ExternalChunk || dependency.exportMode !== 'default';
19073
19112
  const importPath = dependency.getImportPath(fileName);
19113
+ // Separate source-phase imports from regular imports
19114
+ const sourcePhaseImport = imports?.find(index => index.phase === 'source');
19115
+ const instanceImports = imports?.filter(index => index.phase !== 'source') ?? null;
19074
19116
  renderedDependencies.set(dependency, {
19075
19117
  attributes: dependency instanceof ExternalChunk
19076
19118
  ? dependency.getImportAttributes(this.snippets)
@@ -19080,12 +19122,13 @@ class Chunk {
19080
19122
  (this.outputOptions.format === 'umd' || this.outputOptions.format === 'iife') &&
19081
19123
  getGlobalName(dependency, this.outputOptions.globals, (imports || reexports) !== null, this.inputOptions.onLog),
19082
19124
  importPath,
19083
- imports,
19125
+ imports: instanceImports && instanceImports.length > 0 ? instanceImports : null,
19084
19126
  isChunk: dependency instanceof Chunk,
19085
19127
  name: dependency.variableName,
19086
19128
  namedExportsMode,
19087
19129
  namespaceVariableName: dependency.namespaceVariableName,
19088
- reexports
19130
+ reexports,
19131
+ sourcePhaseImport: sourcePhaseImport?.local
19089
19132
  });
19090
19133
  }
19091
19134
  return (this.renderedDependencies = renderedDependencies);
@@ -21519,13 +21562,16 @@ class ModuleLoader {
21519
21562
  return loadNewModulesPromise;
21520
21563
  }
21521
21564
  async fetchDynamicDependencies(module, resolveDynamicImportPromises) {
21522
- const dependencies = await Promise.all(resolveDynamicImportPromises.map(resolveDynamicImportPromise => resolveDynamicImportPromise.then(async ([{ node }, resolvedId]) => {
21565
+ const dependencies = await Promise.all(resolveDynamicImportPromises.map(resolveDynamicImportPromise => resolveDynamicImportPromise.then(async ([{ argument, node }, resolvedId]) => {
21523
21566
  if (resolvedId === null)
21524
21567
  return null;
21525
21568
  if (typeof resolvedId === 'string') {
21526
21569
  node.resolution = resolvedId;
21527
21570
  return null;
21528
21571
  }
21572
+ if (node.phase === 'source' && !resolvedId.external) {
21573
+ return error(logNonExternalSourcePhaseImport(typeof argument === 'string' ? argument : relativeId(resolvedId.id), module.id));
21574
+ }
21529
21575
  return (node.resolution = await this.fetchResolvedDependency(relativeId(resolvedId.id), module.id, resolvedId));
21530
21576
  })));
21531
21577
  for (const dependency of dependencies) {
@@ -21605,7 +21651,12 @@ class ModuleLoader {
21605
21651
  return this.fetchModule(resolvedId, importer, false, false);
21606
21652
  }
21607
21653
  async fetchStaticDependencies(module, resolveStaticDependencyPromises) {
21608
- for (const dependency of await Promise.all(resolveStaticDependencyPromises.map(resolveStaticDependencyPromise => resolveStaticDependencyPromise.then(([source, resolvedId]) => this.fetchResolvedDependency(source, module.id, resolvedId))))) {
21654
+ for (const dependency of await Promise.all(resolveStaticDependencyPromises.map(resolveStaticDependencyPromise => resolveStaticDependencyPromise.then(([source, resolvedId]) => {
21655
+ if (module.sourcePhaseSources.has(source) && !resolvedId.external) {
21656
+ return error(logNonExternalSourcePhaseImport(source, module.id));
21657
+ }
21658
+ return this.fetchResolvedDependency(source, module.id, resolvedId);
21659
+ })))) {
21609
21660
  module.dependencies.add(dependency);
21610
21661
  dependency.importers.push(module.id);
21611
21662
  }
@@ -22874,7 +22925,7 @@ class Graph {
22874
22925
  warnForMissingExports() {
22875
22926
  for (const module of this.modules) {
22876
22927
  for (const importDescription of module.importDescriptions.values()) {
22877
- if (importDescription.name !== '*') {
22928
+ if (importDescription.name !== '*' && importDescription.phase !== 'source') {
22878
22929
  const [variable, options] = importDescription.module.getVariableForExportName(importDescription.name, { importChain: [module.id] });
22879
22930
  if (!variable) {
22880
22931
  module.log(LOGLEVEL_WARN, logMissingExport(importDescription.name, module.id, importDescription.module.id, !!options?.missingButExportExists), importDescription.start);
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -108,7 +108,9 @@ const FIXED_STRINGS = [
108
108
  'noSideEffects',
109
109
  'sourcemap',
110
110
  'using',
111
- 'await using'
111
+ 'await using',
112
+ 'source',
113
+ 'defer'
112
114
  ];
113
115
 
114
116
  const ANNOTATION_KEY = '_rollupAnnotations';
@@ -390,6 +392,8 @@ const URL_TREESHAKE_PURE = 'configuration-options/#pure';
390
392
  const URL_TREESHAKE_NOSIDEEFFECTS = 'configuration-options/#no-side-effects';
391
393
  const URL_TREESHAKE_MODULESIDEEFFECTS = 'configuration-options/#treeshake-modulesideeffects';
392
394
  const URL_WATCH = 'configuration-options/#watch';
395
+ // es-module-syntax
396
+ const URL_SOURCE_PHASE_IMPORTS = 'es-module-syntax/#source-phase-import';
393
397
  const URL_GENERATEBUNDLE = 'plugin-development/#generatebundle';
394
398
  const URL_LOAD = 'plugin-development/#load';
395
399
  const URL_TRANSFORM = 'plugin-development/#transform';
@@ -447,7 +451,7 @@ function augmentLogMessage(log) {
447
451
  }
448
452
  // Error codes should be sorted alphabetically while errors should be sorted by
449
453
  // error code below
450
- const ADDON_ERROR = 'ADDON_ERROR', ALREADY_CLOSED = 'ALREADY_CLOSED', AMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES', ANONYMOUS_PLUGIN_CACHE = 'ANONYMOUS_PLUGIN_CACHE', ASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED', ASSET_NOT_FOUND = 'ASSET_NOT_FOUND', ASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET', ASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING', BAD_LOADER = 'BAD_LOADER', CANNOT_CALL_NAMESPACE = 'CANNOT_CALL_NAMESPACE', CANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK', CHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED', CHUNK_INVALID = 'CHUNK_INVALID', CIRCULAR_CHUNK = 'CIRCULAR_CHUNK', CIRCULAR_DEPENDENCY = 'CIRCULAR_DEPENDENCY', CIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT', CONST_REASSIGN = 'CONST_REASSIGN', CYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT', DEPRECATED_FEATURE = 'DEPRECATED_FEATURE', DUPLICATE_ARGUMENT_NAME = 'DUPLICATE_ARGUMENT_NAME', DUPLICATE_EXPORT = 'DUPLICATE_EXPORT', DUPLICATE_PLUGIN_NAME = 'DUPLICATE_PLUGIN_NAME', EMPTY_BUNDLE = 'EMPTY_BUNDLE', EVAL = 'EVAL', EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = 'EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS', EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = 'EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES', EXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS', FILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT', FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY = 'FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY', FILE_NOT_FOUND = 'FILE_NOT_FOUND', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', INVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE', INVALID_SETASSETSOURCE = 'INVALID_SETASSETSOURCE', INVALID_TLA_FORMAT = 'INVALID_TLA_FORMAT', MISSING_EXPORT = 'MISSING_EXPORT', MISSING_GLOBAL_NAME = 'MISSING_GLOBAL_NAME', MISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT', MISSING_JSX_EXPORT = 'MISSING_JSX_EXPORT', MISSING_NAME_OPTION_FOR_IIFE_EXPORT = 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT', MISSING_NODE_BUILTINS = 'MISSING_NODE_BUILTINS', MISSING_OPTION = 'MISSING_OPTION', MIXED_EXPORTS = 'MIXED_EXPORTS', MODULE_LEVEL_DIRECTIVE = 'MODULE_LEVEL_DIRECTIVE', NAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT', NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE', OPTIMIZE_CHUNK_STATUS = 'OPTIMIZE_CHUNK_STATUS', PARSE_ERROR = 'PARSE_ERROR', PLUGIN_ERROR = 'PLUGIN_ERROR', REDECLARATION_ERROR = 'REDECLARATION_ERROR', RESERVED_NAMESPACE = 'RESERVED_NAMESPACE', SHIMMED_EXPORT = 'SHIMMED_EXPORT', SOURCEMAP_BROKEN = 'SOURCEMAP_BROKEN', SOURCEMAP_ERROR = 'SOURCEMAP_ERROR', SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT', THIS_IS_UNDEFINED = 'THIS_IS_UNDEFINED', UNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT', UNKNOWN_OPTION = 'UNKNOWN_OPTION', UNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY', UNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT', UNUSED_EXTERNAL_IMPORT = 'UNUSED_EXTERNAL_IMPORT', VALIDATION_ERROR = 'VALIDATION_ERROR';
454
+ const ADDON_ERROR = 'ADDON_ERROR', ALREADY_CLOSED = 'ALREADY_CLOSED', AMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES', ANONYMOUS_PLUGIN_CACHE = 'ANONYMOUS_PLUGIN_CACHE', ASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED', ASSET_NOT_FOUND = 'ASSET_NOT_FOUND', ASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET', ASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING', BAD_LOADER = 'BAD_LOADER', CANNOT_CALL_NAMESPACE = 'CANNOT_CALL_NAMESPACE', CANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK', CHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED', CHUNK_INVALID = 'CHUNK_INVALID', CIRCULAR_CHUNK = 'CIRCULAR_CHUNK', CIRCULAR_DEPENDENCY = 'CIRCULAR_DEPENDENCY', CIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT', CONST_REASSIGN = 'CONST_REASSIGN', CYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT', DEPRECATED_FEATURE = 'DEPRECATED_FEATURE', DUPLICATE_ARGUMENT_NAME = 'DUPLICATE_ARGUMENT_NAME', DUPLICATE_EXPORT = 'DUPLICATE_EXPORT', DUPLICATE_PLUGIN_NAME = 'DUPLICATE_PLUGIN_NAME', EMPTY_BUNDLE = 'EMPTY_BUNDLE', EVAL = 'EVAL', EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = 'EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS', EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = 'EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES', EXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS', FILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT', FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY = 'FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY', FILE_NOT_FOUND = 'FILE_NOT_FOUND', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', INVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE', INVALID_SETASSETSOURCE = 'INVALID_SETASSETSOURCE', INVALID_TLA_FORMAT = 'INVALID_TLA_FORMAT', MISSING_EXPORT = 'MISSING_EXPORT', MISSING_GLOBAL_NAME = 'MISSING_GLOBAL_NAME', MISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT', MISSING_JSX_EXPORT = 'MISSING_JSX_EXPORT', MISSING_NAME_OPTION_FOR_IIFE_EXPORT = 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT', MISSING_NODE_BUILTINS = 'MISSING_NODE_BUILTINS', MISSING_OPTION = 'MISSING_OPTION', MIXED_EXPORTS = 'MIXED_EXPORTS', MODULE_LEVEL_DIRECTIVE = 'MODULE_LEVEL_DIRECTIVE', NAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT', NON_EXTERNAL_SOURCE_PHASE_IMPORT = 'NON_EXTERNAL_SOURCE_PHASE_IMPORT', NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE', OPTIMIZE_CHUNK_STATUS = 'OPTIMIZE_CHUNK_STATUS', PARSE_ERROR = 'PARSE_ERROR', PLUGIN_ERROR = 'PLUGIN_ERROR', REDECLARATION_ERROR = 'REDECLARATION_ERROR', RESERVED_NAMESPACE = 'RESERVED_NAMESPACE', SHIMMED_EXPORT = 'SHIMMED_EXPORT', SOURCE_PHASE_FORMAT_UNSUPPORTED = 'SOURCE_PHASE_FORMAT_UNSUPPORTED', SOURCEMAP_BROKEN = 'SOURCEMAP_BROKEN', SOURCEMAP_ERROR = 'SOURCEMAP_ERROR', SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT', THIS_IS_UNDEFINED = 'THIS_IS_UNDEFINED', UNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT', UNKNOWN_OPTION = 'UNKNOWN_OPTION', UNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY', UNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT', UNUSED_EXTERNAL_IMPORT = 'UNUSED_EXTERNAL_IMPORT', VALIDATION_ERROR = 'VALIDATION_ERROR';
451
455
  function logAddonNotGenerated(message, hook, plugin) {
452
456
  return {
453
457
  code: ADDON_ERROR,
@@ -892,6 +896,13 @@ function logNamespaceConflict(binding, reexportingModuleId, sources) {
892
896
  reexporter: reexportingModuleId
893
897
  };
894
898
  }
899
+ function logNonExternalSourcePhaseImport(source, importer) {
900
+ return {
901
+ code: NON_EXTERNAL_SOURCE_PHASE_IMPORT,
902
+ message: `Source phase import "${source}" in "${relativeId(importer)}" must be external. Source phase imports are only supported for external modules. Use the "external" option to mark this module as external.`,
903
+ url: getRollupUrl(URL_SOURCE_PHASE_IMPORTS)
904
+ };
905
+ }
895
906
  function logNoTransformMapOrAstWithoutCode(pluginName) {
896
907
  return {
897
908
  code: NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE,
@@ -963,6 +974,13 @@ function logShimmedExport(id, binding) {
963
974
  message: `Missing export "${binding}" has been shimmed in module "${relativeId(id)}".`
964
975
  };
965
976
  }
977
+ function logSourcePhaseFormatUnsupported(outputFormat, chunkId, dependencyId) {
978
+ return {
979
+ code: SOURCE_PHASE_FORMAT_UNSUPPORTED,
980
+ message: `Source phase imports are not supported for the "${outputFormat}" output format, importing "${dependencyId}" in "${chunkId}". Use the "es" output format to support source phase imports.`,
981
+ url: getRollupUrl(URL_SOURCE_PHASE_IMPORTS)
982
+ };
983
+ }
966
984
  function logSourcemapBroken(plugin) {
967
985
  return {
968
986
  code: SOURCEMAP_BROKEN,
@@ -1496,13 +1514,15 @@ const nodeConverters = [
1496
1514
  };
1497
1515
  },
1498
1516
  function importDeclaration(position, buffer) {
1517
+ const phaseIndex = buffer[position + 5];
1499
1518
  return {
1500
1519
  type: 'ImportDeclaration',
1501
1520
  start: buffer[position],
1502
1521
  end: buffer[position + 1],
1503
1522
  specifiers: convertNodeList(buffer[position + 2], buffer),
1504
1523
  source: convertNode(buffer[position + 3], buffer),
1505
- attributes: convertNodeList(buffer[position + 4], buffer)
1524
+ attributes: convertNodeList(buffer[position + 4], buffer),
1525
+ ...(phaseIndex === 0 ? {} : { phase: FIXED_STRINGS[phaseIndex] })
1506
1526
  };
1507
1527
  },
1508
1528
  function importDefaultSpecifier(position, buffer) {
@@ -1515,12 +1535,14 @@ const nodeConverters = [
1515
1535
  },
1516
1536
  function importExpression(position, buffer) {
1517
1537
  const optionsPosition = buffer[position + 3];
1538
+ const phaseIndex = buffer[position + 4];
1518
1539
  return {
1519
1540
  type: 'ImportExpression',
1520
1541
  start: buffer[position],
1521
1542
  end: buffer[position + 1],
1522
1543
  source: convertNode(buffer[position + 2], buffer),
1523
- options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer)
1544
+ options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer),
1545
+ ...(phaseIndex === 0 ? {} : { phase: FIXED_STRINGS[phaseIndex] })
1524
1546
  };
1525
1547
  },
1526
1548
  function importNamespaceSpecifier(position, buffer) {
@@ -2099,4 +2121,4 @@ function getAstBuffer(astBuffer) {
2099
2121
  const parseAst = (input, { allowReturnOutsideFunction = false, jsx = false } = {}) => convertProgram(getAstBuffer(parse(input, allowReturnOutsideFunction, jsx)));
2100
2122
  const parseAstAsync = async (input, { allowReturnOutsideFunction = false, jsx = false, signal } = {}) => convertProgram(getAstBuffer(await parseAsync(input, allowReturnOutsideFunction, jsx, signal)));
2101
2123
 
2102
- export { ANNOTATION_KEY, ArrowFunctionExpression, AwaitExpression, BLANK, BlockStatement, CallExpression, CatchClause, EMPTY_ARRAY, EMPTY_OBJECT, EMPTY_SET, ExportDefaultDeclaration, ExpressionStatement, FIXED_STRINGS, FunctionExpression, INVALID_ANNOTATION_KEY, Identifier, LOGLEVEL_DEBUG, LOGLEVEL_ERROR, LOGLEVEL_INFO, LOGLEVEL_WARN, Literal, MemberExpression, ObjectExpression, Program, Property, RestElement, ReturnStatement, StaticBlock, TemplateLiteral, URL_GENERATEBUNDLE, URL_JSX, URL_LOAD, URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_AMD_ID, URL_OUTPUT_DIR, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, URL_OUTPUT_FORMAT, URL_OUTPUT_GENERATEDCODE, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_OUTPUT_INTEROP, URL_OUTPUT_MANUALCHUNKS, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_SOURCEMAPFILE, URL_PRESERVEENTRYSIGNATURES, URL_TRANSFORM, URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS, URL_WATCH, VariableDeclarator, addTrailingSlashIfMissed, augmentCodeLocation, augmentLogMessage, convertAnnotations, convertNode, error, getAliasName, getAstBuffer, getImportPath, getRollupError, isAbsolute, isPathFragment, isRelative, isValidUrl, locate, logAddonNotGenerated, logAlreadyClosed, logAmbiguousExternalNamespaces, logAnonymousPluginCache, logAssetNotFinalisedForFileName, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logBadLoader, logCannotAssignModuleToChunk, logCannotCallNamespace, logCannotEmitFromOptionsHook, logChunkInvalid, logChunkNotGeneratedForFileName, logCircularChunk, logCircularDependency, logCircularReexport, logConflictingSourcemapSources, logConstVariableReassignError, logCyclicCrossChunkReexport, logDuplicateArgumentNameError, logDuplicateExportError, logDuplicatePluginName, logEmptyChunk, logEntryCannotBeExternal, logEval, logExternalModulesCannotBeIncludedInManualChunks, logExternalModulesCannotBeTransformedToModules, logExternalSyntheticExports, logFailedValidation, logFileNameConflict, logFileNameOutsideOutputDirectory, logFileReferenceIdNotFoundForFilename, logFirstSideEffect, logIllegalIdentifierAsName, logIllegalImportReassignment, logImplicitDependantCannotBeExternal, logImplicitDependantIsNotIncluded, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logIncompatibleExportOptionValue, logInconsistentImportAttributes, logInputHookInOutputPlugin, logInternalIdCannotBeExternal, logInvalidAddonPluginHook, logInvalidAnnotation, logInvalidExportOptionValue, logInvalidFormatForTopLevelAwait, logInvalidFunctionPluginHook, logInvalidLogPosition, logInvalidOption, logInvalidRollupPhaseForChunkEmission, logInvalidSetAssetSourceCall, logInvalidSourcemapForError, logLevelPriority, logMissingEntryExport, logMissingExport, logMissingFileOrDirOption, logMissingGlobalName, logMissingJsxExport, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, logMissingNodeBuiltins, logMixedExport, logModuleLevelDirective, logModuleParseError, logNamespaceConflict, logNoAssetSourceSet, logNoTransformMapOrAstWithoutCode, logOptimizeChunkStatus, logParseError, logPluginError, logRedeclarationError, logReservedNamespace, logShimmedExport, logSourcemapBroken, logSyntheticNamedExportsNeedNamespaceExport, logThisIsUndefined, logUnexpectedNamedImport, logUnexpectedNamespaceReexport, logUnknownOption, logUnresolvedEntry, logUnresolvedImplicitDependant, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logUnusedExternalImports, normalize, parseAst, parseAstAsync, printQuotedStringList, relative, relativeId, warnDeprecation };
2124
+ export { ANNOTATION_KEY, ArrowFunctionExpression, AwaitExpression, BLANK, BlockStatement, CallExpression, CatchClause, EMPTY_ARRAY, EMPTY_OBJECT, EMPTY_SET, ExportDefaultDeclaration, ExpressionStatement, FIXED_STRINGS, FunctionExpression, INVALID_ANNOTATION_KEY, Identifier, LOGLEVEL_DEBUG, LOGLEVEL_ERROR, LOGLEVEL_INFO, LOGLEVEL_WARN, Literal, MemberExpression, ObjectExpression, Program, Property, RestElement, ReturnStatement, StaticBlock, TemplateLiteral, URL_GENERATEBUNDLE, URL_JSX, URL_LOAD, URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_AMD_ID, URL_OUTPUT_DIR, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, URL_OUTPUT_FORMAT, URL_OUTPUT_GENERATEDCODE, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_OUTPUT_INTEROP, URL_OUTPUT_MANUALCHUNKS, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_SOURCEMAPFILE, URL_PRESERVEENTRYSIGNATURES, URL_TRANSFORM, URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS, URL_WATCH, VariableDeclarator, addTrailingSlashIfMissed, augmentCodeLocation, augmentLogMessage, convertAnnotations, convertNode, error, getAliasName, getAstBuffer, getImportPath, getRollupError, isAbsolute, isPathFragment, isRelative, isValidUrl, locate, logAddonNotGenerated, logAlreadyClosed, logAmbiguousExternalNamespaces, logAnonymousPluginCache, logAssetNotFinalisedForFileName, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logBadLoader, logCannotAssignModuleToChunk, logCannotCallNamespace, logCannotEmitFromOptionsHook, logChunkInvalid, logChunkNotGeneratedForFileName, logCircularChunk, logCircularDependency, logCircularReexport, logConflictingSourcemapSources, logConstVariableReassignError, logCyclicCrossChunkReexport, logDuplicateArgumentNameError, logDuplicateExportError, logDuplicatePluginName, logEmptyChunk, logEntryCannotBeExternal, logEval, logExternalModulesCannotBeIncludedInManualChunks, logExternalModulesCannotBeTransformedToModules, logExternalSyntheticExports, logFailedValidation, logFileNameConflict, logFileNameOutsideOutputDirectory, logFileReferenceIdNotFoundForFilename, logFirstSideEffect, logIllegalIdentifierAsName, logIllegalImportReassignment, logImplicitDependantCannotBeExternal, logImplicitDependantIsNotIncluded, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logIncompatibleExportOptionValue, logInconsistentImportAttributes, logInputHookInOutputPlugin, logInternalIdCannotBeExternal, logInvalidAddonPluginHook, logInvalidAnnotation, logInvalidExportOptionValue, logInvalidFormatForTopLevelAwait, logInvalidFunctionPluginHook, logInvalidLogPosition, logInvalidOption, logInvalidRollupPhaseForChunkEmission, logInvalidSetAssetSourceCall, logInvalidSourcemapForError, logLevelPriority, logMissingEntryExport, logMissingExport, logMissingFileOrDirOption, logMissingGlobalName, logMissingJsxExport, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, logMissingNodeBuiltins, logMixedExport, logModuleLevelDirective, logModuleParseError, logNamespaceConflict, logNoAssetSourceSet, logNoTransformMapOrAstWithoutCode, logNonExternalSourcePhaseImport, logOptimizeChunkStatus, logParseError, logPluginError, logRedeclarationError, logReservedNamespace, logShimmedExport, logSourcePhaseFormatUnsupported, logSourcemapBroken, logSyntheticNamedExportsNeedNamespaceExport, logThisIsUndefined, logUnexpectedNamedImport, logUnexpectedNamespaceReexport, logUnknownOption, logUnresolvedEntry, logUnresolvedImplicitDependant, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logUnusedExternalImports, normalize, parseAst, parseAstAsync, printQuotedStringList, relative, relativeId, warnDeprecation };
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/parseAst.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -272,6 +272,8 @@ const URL_TREESHAKE_PURE = 'configuration-options/#pure';
272
272
  const URL_TREESHAKE_NOSIDEEFFECTS = 'configuration-options/#no-side-effects';
273
273
  const URL_TREESHAKE_MODULESIDEEFFECTS = 'configuration-options/#treeshake-modulesideeffects';
274
274
  const URL_WATCH = 'configuration-options/#watch';
275
+ // es-module-syntax
276
+ const URL_SOURCE_PHASE_IMPORTS = 'es-module-syntax/#source-phase-import';
275
277
  // command-line-interface
276
278
  const URL_BUNDLE_CONFIG_AS_CJS = 'command-line-interface/#bundleconfigascjs';
277
279
  const URL_CONFIGURATION_FILES = 'command-line-interface/#configuration-files';
@@ -332,7 +334,7 @@ function augmentLogMessage(log) {
332
334
  }
333
335
  // Error codes should be sorted alphabetically while errors should be sorted by
334
336
  // error code below
335
- const ADDON_ERROR = 'ADDON_ERROR', ALREADY_CLOSED = 'ALREADY_CLOSED', AMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES', ANONYMOUS_PLUGIN_CACHE = 'ANONYMOUS_PLUGIN_CACHE', ASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED', ASSET_NOT_FOUND = 'ASSET_NOT_FOUND', ASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET', ASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING', BAD_LOADER = 'BAD_LOADER', CANNOT_CALL_NAMESPACE = 'CANNOT_CALL_NAMESPACE', CANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK', CHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED', CHUNK_INVALID = 'CHUNK_INVALID', CIRCULAR_CHUNK = 'CIRCULAR_CHUNK', CIRCULAR_DEPENDENCY = 'CIRCULAR_DEPENDENCY', CIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT', CONST_REASSIGN = 'CONST_REASSIGN', CYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT', DEPRECATED_FEATURE = 'DEPRECATED_FEATURE', DUPLICATE_ARGUMENT_NAME = 'DUPLICATE_ARGUMENT_NAME', DUPLICATE_EXPORT = 'DUPLICATE_EXPORT', DUPLICATE_IMPORT_OPTIONS = 'DUPLICATE_IMPORT_OPTIONS', DUPLICATE_PLUGIN_NAME = 'DUPLICATE_PLUGIN_NAME', EMPTY_BUNDLE = 'EMPTY_BUNDLE', EVAL = 'EVAL', EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = 'EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS', EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = 'EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES', EXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS', FAIL_AFTER_WARNINGS = 'FAIL_AFTER_WARNINGS', FILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT', FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY = 'FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY', FILE_NOT_FOUND = 'FILE_NOT_FOUND', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_CONFIG_MODULE_FORMAT = 'INVALID_CONFIG_MODULE_FORMAT', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', INVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE', INVALID_SETASSETSOURCE = 'INVALID_SETASSETSOURCE', INVALID_TLA_FORMAT = 'INVALID_TLA_FORMAT', MISSING_CONFIG = 'MISSING_CONFIG', MISSING_EXPORT = 'MISSING_EXPORT', MISSING_EXTERNAL_CONFIG = 'MISSING_EXTERNAL_CONFIG', MISSING_GLOBAL_NAME = 'MISSING_GLOBAL_NAME', MISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT', MISSING_JSX_EXPORT = 'MISSING_JSX_EXPORT', MISSING_NAME_OPTION_FOR_IIFE_EXPORT = 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT', MISSING_NODE_BUILTINS = 'MISSING_NODE_BUILTINS', MISSING_OPTION = 'MISSING_OPTION', MIXED_EXPORTS = 'MIXED_EXPORTS', MODULE_LEVEL_DIRECTIVE = 'MODULE_LEVEL_DIRECTIVE', NAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT', NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE', ONLY_INLINE_SOURCEMAPS = 'ONLY_INLINE_SOURCEMAPS', OPTIMIZE_CHUNK_STATUS = 'OPTIMIZE_CHUNK_STATUS', PARSE_ERROR = 'PARSE_ERROR', PLUGIN_ERROR = 'PLUGIN_ERROR', REDECLARATION_ERROR = 'REDECLARATION_ERROR', RESERVED_NAMESPACE = 'RESERVED_NAMESPACE', SHIMMED_EXPORT = 'SHIMMED_EXPORT', SOURCEMAP_BROKEN = 'SOURCEMAP_BROKEN', SOURCEMAP_ERROR = 'SOURCEMAP_ERROR', SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT', THIS_IS_UNDEFINED = 'THIS_IS_UNDEFINED', UNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT', UNKNOWN_OPTION = 'UNKNOWN_OPTION', UNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY', UNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT', UNUSED_EXTERNAL_IMPORT = 'UNUSED_EXTERNAL_IMPORT', VALIDATION_ERROR = 'VALIDATION_ERROR';
337
+ const ADDON_ERROR = 'ADDON_ERROR', ALREADY_CLOSED = 'ALREADY_CLOSED', AMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES', ANONYMOUS_PLUGIN_CACHE = 'ANONYMOUS_PLUGIN_CACHE', ASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED', ASSET_NOT_FOUND = 'ASSET_NOT_FOUND', ASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET', ASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING', BAD_LOADER = 'BAD_LOADER', CANNOT_CALL_NAMESPACE = 'CANNOT_CALL_NAMESPACE', CANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK', CHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED', CHUNK_INVALID = 'CHUNK_INVALID', CIRCULAR_CHUNK = 'CIRCULAR_CHUNK', CIRCULAR_DEPENDENCY = 'CIRCULAR_DEPENDENCY', CIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT', CONST_REASSIGN = 'CONST_REASSIGN', CYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT', DEPRECATED_FEATURE = 'DEPRECATED_FEATURE', DUPLICATE_ARGUMENT_NAME = 'DUPLICATE_ARGUMENT_NAME', DUPLICATE_EXPORT = 'DUPLICATE_EXPORT', DUPLICATE_IMPORT_OPTIONS = 'DUPLICATE_IMPORT_OPTIONS', DUPLICATE_PLUGIN_NAME = 'DUPLICATE_PLUGIN_NAME', EMPTY_BUNDLE = 'EMPTY_BUNDLE', EVAL = 'EVAL', EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = 'EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS', EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = 'EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES', EXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS', FAIL_AFTER_WARNINGS = 'FAIL_AFTER_WARNINGS', FILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT', FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY = 'FILE_NAME_OUTSIDE_OUTPUT_DIRECTORY', FILE_NOT_FOUND = 'FILE_NOT_FOUND', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_CONFIG_MODULE_FORMAT = 'INVALID_CONFIG_MODULE_FORMAT', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', INVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE', INVALID_SETASSETSOURCE = 'INVALID_SETASSETSOURCE', INVALID_TLA_FORMAT = 'INVALID_TLA_FORMAT', MISSING_CONFIG = 'MISSING_CONFIG', MISSING_EXPORT = 'MISSING_EXPORT', MISSING_EXTERNAL_CONFIG = 'MISSING_EXTERNAL_CONFIG', MISSING_GLOBAL_NAME = 'MISSING_GLOBAL_NAME', MISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT', MISSING_JSX_EXPORT = 'MISSING_JSX_EXPORT', MISSING_NAME_OPTION_FOR_IIFE_EXPORT = 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT', MISSING_NODE_BUILTINS = 'MISSING_NODE_BUILTINS', MISSING_OPTION = 'MISSING_OPTION', MIXED_EXPORTS = 'MIXED_EXPORTS', MODULE_LEVEL_DIRECTIVE = 'MODULE_LEVEL_DIRECTIVE', NAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT', NON_EXTERNAL_SOURCE_PHASE_IMPORT = 'NON_EXTERNAL_SOURCE_PHASE_IMPORT', NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE', ONLY_INLINE_SOURCEMAPS = 'ONLY_INLINE_SOURCEMAPS', OPTIMIZE_CHUNK_STATUS = 'OPTIMIZE_CHUNK_STATUS', PARSE_ERROR = 'PARSE_ERROR', PLUGIN_ERROR = 'PLUGIN_ERROR', REDECLARATION_ERROR = 'REDECLARATION_ERROR', RESERVED_NAMESPACE = 'RESERVED_NAMESPACE', SHIMMED_EXPORT = 'SHIMMED_EXPORT', SOURCE_PHASE_FORMAT_UNSUPPORTED = 'SOURCE_PHASE_FORMAT_UNSUPPORTED', SOURCEMAP_BROKEN = 'SOURCEMAP_BROKEN', SOURCEMAP_ERROR = 'SOURCEMAP_ERROR', SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT', THIS_IS_UNDEFINED = 'THIS_IS_UNDEFINED', UNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT', UNKNOWN_OPTION = 'UNKNOWN_OPTION', UNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY', UNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT', UNUSED_EXTERNAL_IMPORT = 'UNUSED_EXTERNAL_IMPORT', VALIDATION_ERROR = 'VALIDATION_ERROR';
336
338
  function logAddonNotGenerated(message, hook, plugin) {
337
339
  return {
338
340
  code: ADDON_ERROR,
@@ -829,6 +831,13 @@ function logNamespaceConflict(binding, reexportingModuleId, sources) {
829
831
  reexporter: reexportingModuleId
830
832
  };
831
833
  }
834
+ function logNonExternalSourcePhaseImport(source, importer) {
835
+ return {
836
+ code: NON_EXTERNAL_SOURCE_PHASE_IMPORT,
837
+ message: `Source phase import "${source}" in "${relativeId(importer)}" must be external. Source phase imports are only supported for external modules. Use the "external" option to mark this module as external.`,
838
+ url: getRollupUrl(URL_SOURCE_PHASE_IMPORTS)
839
+ };
840
+ }
832
841
  function logNoTransformMapOrAstWithoutCode(pluginName) {
833
842
  return {
834
843
  code: NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE,
@@ -906,6 +915,13 @@ function logShimmedExport(id, binding) {
906
915
  message: `Missing export "${binding}" has been shimmed in module "${relativeId(id)}".`
907
916
  };
908
917
  }
918
+ function logSourcePhaseFormatUnsupported(outputFormat, chunkId, dependencyId) {
919
+ return {
920
+ code: SOURCE_PHASE_FORMAT_UNSUPPORTED,
921
+ message: `Source phase imports are not supported for the "${outputFormat}" output format, importing "${dependencyId}" in "${chunkId}". Use the "es" output format to support source phase imports.`,
922
+ url: getRollupUrl(URL_SOURCE_PHASE_IMPORTS)
923
+ };
924
+ }
909
925
  function logSourcemapBroken(plugin) {
910
926
  return {
911
927
  code: SOURCEMAP_BROKEN,
@@ -1143,7 +1159,9 @@ const FIXED_STRINGS = [
1143
1159
  'noSideEffects',
1144
1160
  'sourcemap',
1145
1161
  'using',
1146
- 'await using'
1162
+ 'await using',
1163
+ 'source',
1164
+ 'defer'
1147
1165
  ];
1148
1166
 
1149
1167
  const ANNOTATION_KEY = '_rollupAnnotations';
@@ -1559,13 +1577,15 @@ const nodeConverters = [
1559
1577
  };
1560
1578
  },
1561
1579
  function importDeclaration(position, buffer) {
1580
+ const phaseIndex = buffer[position + 5];
1562
1581
  return {
1563
1582
  type: 'ImportDeclaration',
1564
1583
  start: buffer[position],
1565
1584
  end: buffer[position + 1],
1566
1585
  specifiers: convertNodeList(buffer[position + 2], buffer),
1567
1586
  source: convertNode(buffer[position + 3], buffer),
1568
- attributes: convertNodeList(buffer[position + 4], buffer)
1587
+ attributes: convertNodeList(buffer[position + 4], buffer),
1588
+ ...(phaseIndex === 0 ? {} : { phase: FIXED_STRINGS[phaseIndex] })
1569
1589
  };
1570
1590
  },
1571
1591
  function importDefaultSpecifier(position, buffer) {
@@ -1578,12 +1598,14 @@ const nodeConverters = [
1578
1598
  },
1579
1599
  function importExpression(position, buffer) {
1580
1600
  const optionsPosition = buffer[position + 3];
1601
+ const phaseIndex = buffer[position + 4];
1581
1602
  return {
1582
1603
  type: 'ImportExpression',
1583
1604
  start: buffer[position],
1584
1605
  end: buffer[position + 1],
1585
1606
  source: convertNode(buffer[position + 2], buffer),
1586
- options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer)
1607
+ options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer),
1608
+ ...(phaseIndex === 0 ? {} : { phase: FIXED_STRINGS[phaseIndex] })
1587
1609
  };
1588
1610
  },
1589
1611
  function importNamespaceSpecifier(position, buffer) {
@@ -2309,6 +2331,7 @@ exports.logModuleParseError = logModuleParseError;
2309
2331
  exports.logNamespaceConflict = logNamespaceConflict;
2310
2332
  exports.logNoAssetSourceSet = logNoAssetSourceSet;
2311
2333
  exports.logNoTransformMapOrAstWithoutCode = logNoTransformMapOrAstWithoutCode;
2334
+ exports.logNonExternalSourcePhaseImport = logNonExternalSourcePhaseImport;
2312
2335
  exports.logOnlyInlineSourcemapsForStdout = logOnlyInlineSourcemapsForStdout;
2313
2336
  exports.logOptimizeChunkStatus = logOptimizeChunkStatus;
2314
2337
  exports.logParseError = logParseError;
@@ -2316,6 +2339,7 @@ exports.logPluginError = logPluginError;
2316
2339
  exports.logRedeclarationError = logRedeclarationError;
2317
2340
  exports.logReservedNamespace = logReservedNamespace;
2318
2341
  exports.logShimmedExport = logShimmedExport;
2342
+ exports.logSourcePhaseFormatUnsupported = logSourcePhaseFormatUnsupported;
2319
2343
  exports.logSourcemapBroken = logSourcemapBroken;
2320
2344
  exports.logSyntheticNamedExportsNeedNamespaceExport = logSyntheticNamedExportsNeedNamespaceExport;
2321
2345
  exports.logThisIsUndefined = logThisIsUndefined;
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -42,7 +42,7 @@ function _mergeNamespaces(n, m) {
42
42
 
43
43
  const promises__namespace = /*#__PURE__*/_interopNamespaceDefault(promises);
44
44
 
45
- var version = "4.59.1";
45
+ var version = "4.60.0";
46
46
 
47
47
  function ensureArray$1(items) {
48
48
  if (Array.isArray(items)) {
@@ -6255,12 +6255,15 @@ class Variable extends ExpressionEntity {
6255
6255
  }
6256
6256
  }
6257
6257
 
6258
+ /** Synthetic import name for source phase imports, similar to '*' for namespaces */
6259
+ const SOURCE_PHASE_IMPORT = '*source';
6258
6260
  class ExternalVariable extends Variable {
6259
6261
  constructor(module, name) {
6260
6262
  super(name);
6261
6263
  this.referenced = false;
6262
6264
  this.module = module;
6263
6265
  this.isNamespace = name === '*';
6266
+ this.isSourcePhase = name === SOURCE_PHASE_IMPORT;
6264
6267
  }
6265
6268
  addReference(identifier) {
6266
6269
  this.referenced = true;
@@ -12209,6 +12212,13 @@ function getInteropBlock(dependencies, interop, externalLiveBindings, freeze, sy
12209
12212
  return `${getHelpersBlock(neededInteropHelpers, accessedGlobals, indent, snippets, externalLiveBindings, freeze, symbols)}${interopStatements.length > 0 ? `${interopStatements.join(n)}${n}${n}` : ''}`;
12210
12213
  }
12211
12214
 
12215
+ function throwOnPhase(outputFormat, chunkId, dependencies) {
12216
+ const sourcePhaseDependency = dependencies.find(dependency => dependency.sourcePhaseImport);
12217
+ if (sourcePhaseDependency) {
12218
+ parseAst_js.error(parseAst_js.logSourcePhaseFormatUnsupported(outputFormat, chunkId, sourcePhaseDependency.importPath));
12219
+ }
12220
+ }
12221
+
12212
12222
  function addJsExtension(name) {
12213
12223
  return name.endsWith('.js') ? name : name + '.js';
12214
12224
  }
@@ -12347,6 +12357,7 @@ function warnOnBuiltins(log, dependencies) {
12347
12357
 
12348
12358
  function amd(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, log, outro, snippets }, { amd, esModule, externalLiveBindings, freeze, generatedCode: { symbols }, interop, reexportProtoFromExternal, strict }) {
12349
12359
  warnOnBuiltins(log, dependencies);
12360
+ throwOnPhase('amd', id, dependencies);
12350
12361
  const deps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);
12351
12362
  const parameters = dependencies.map(m => m.name);
12352
12363
  const { n, getNonArrowFunctionIntro, _ } = snippets;
@@ -12384,7 +12395,8 @@ function amd(magicString, { accessedGlobals, dependencies, exports: exports$1, h
12384
12395
  .append(`${n}${n}}));`);
12385
12396
  }
12386
12397
 
12387
- function cjs(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) {
12398
+ function cjs(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) {
12399
+ throwOnPhase('cjs', id, dependencies);
12388
12400
  const { _, n } = snippets;
12389
12401
  const useStrict = strict ? `'use strict';${n}${n}` : '';
12390
12402
  let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), isModuleFacade && symbols, snippets);
@@ -12437,11 +12449,16 @@ function es(magicString, { accessedGlobals, indent: t, intro, outro, dependencie
12437
12449
  }
12438
12450
  function getImportBlock(dependencies, importAttributesKey, { _ }) {
12439
12451
  const importBlock = [];
12440
- for (const { importPath, reexports, imports, name, attributes } of dependencies) {
12452
+ for (const { importPath, reexports, imports, name, attributes, sourcePhaseImport } of dependencies) {
12441
12453
  const assertion = attributes ? `${_}${importAttributesKey}${_}${attributes}` : '';
12442
12454
  const pathWithAssertion = `'${importPath}'${assertion};`;
12455
+ if (sourcePhaseImport) {
12456
+ importBlock.push(`import source ${sourcePhaseImport} from${_}${pathWithAssertion}`);
12457
+ }
12443
12458
  if (!reexports && !imports) {
12444
- importBlock.push(`import${_}${pathWithAssertion}`);
12459
+ if (!sourcePhaseImport) {
12460
+ importBlock.push(`import${_}${pathWithAssertion}`);
12461
+ }
12445
12462
  continue;
12446
12463
  }
12447
12464
  if (imports) {
@@ -12595,7 +12612,8 @@ function trimEmptyImports(dependencies) {
12595
12612
  return [];
12596
12613
  }
12597
12614
 
12598
- function iife(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) {
12615
+ function iife(magicString, { accessedGlobals, dependencies, exports: exports$1, hasDefaultExport, hasExports, id, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) {
12616
+ throwOnPhase('iife', id, dependencies);
12599
12617
  const { _, getNonArrowFunctionIntro, getPropertyAccess, n } = snippets;
12600
12618
  const isNamespaced = name && name.includes('.');
12601
12619
  const useVariableAssignment = !extend && !isNamespaced;
@@ -12654,7 +12672,8 @@ function iife(magicString, { accessedGlobals, dependencies, exports: exports$1,
12654
12672
 
12655
12673
  const MISSING_EXPORT_SHIM_VARIABLE = '_missingExportShim';
12656
12674
 
12657
- function system(magicString, { accessedGlobals, dependencies, exports: exports$1, hasExports, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) {
12675
+ function system(magicString, { accessedGlobals, dependencies, exports: exports$1, hasExports, id, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) {
12676
+ throwOnPhase('system', id, dependencies);
12658
12677
  const { _, getFunctionIntro, getNonArrowFunctionIntro, n, s } = snippets;
12659
12678
  const { importBindings, setters, starExcludes } = analyzeDependencies(dependencies, exports$1, t, snippets);
12660
12679
  const registeredName = name ? `'${name}',${_}` : '';
@@ -12822,6 +12841,7 @@ function umd(magicString, { accessedGlobals, dependencies, exports: exports$1, h
12822
12841
  if (hasExports && !name) {
12823
12842
  return parseAst_js.error(parseAst_js.logMissingNameOptionForUmdExport());
12824
12843
  }
12844
+ throwOnPhase('umd', id, dependencies);
12825
12845
  warnOnBuiltins(log, dependencies);
12826
12846
  const amdDeps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);
12827
12847
  const cjsDeps = dependencies.map(m => `require('${m.importPath}')`);
@@ -17730,6 +17750,8 @@ const bufferParsers = [
17730
17750
  node.specifiers = convertNodeList(node, scope, buffer[position], buffer);
17731
17751
  node.source = convertNode(node, scope, buffer[position + 1], buffer);
17732
17752
  node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer);
17753
+ const phaseIndex = buffer[position + 3];
17754
+ node.phase = phaseIndex === 0 ? undefined : parseAst_js.FIXED_STRINGS[phaseIndex];
17733
17755
  },
17734
17756
  function importDefaultSpecifier(node, position, buffer) {
17735
17757
  const { scope } = node;
@@ -17741,6 +17763,8 @@ const bufferParsers = [
17741
17763
  node.sourceAstNode = parseAst_js.convertNode(buffer[position], buffer);
17742
17764
  const optionsPosition = buffer[position + 1];
17743
17765
  node.options = optionsPosition === 0 ? null : convertNode(node, scope, optionsPosition, buffer);
17766
+ const phaseIndex = buffer[position + 2];
17767
+ node.phase = phaseIndex === 0 ? undefined : parseAst_js.FIXED_STRINGS[phaseIndex];
17744
17768
  },
17745
17769
  function importNamespaceSpecifier(node, position, buffer) {
17746
17770
  const { scope } = node;
@@ -18519,6 +18543,7 @@ class Module {
18519
18543
  this.isUserDefinedEntryPoint = false;
18520
18544
  this.needsExportShim = false;
18521
18545
  this.sideEffectDependenciesByVariable = new Map();
18546
+ this.sourcePhaseSources = new Set();
18522
18547
  this.sourcesWithAttributes = new Map();
18523
18548
  this.allExportsIncluded = false;
18524
18549
  this.ast = null;
@@ -19169,16 +19194,19 @@ class Module {
19169
19194
  if (this.scope.variables.has(localName) || this.importDescriptions.has(localName)) {
19170
19195
  this.error(parseAst_js.logRedeclarationError(localName), specifier.local.start);
19171
19196
  }
19172
- const name = specifier instanceof ImportDefaultSpecifier
19173
- ? 'default'
19174
- : specifier instanceof ImportNamespaceSpecifier
19175
- ? '*'
19176
- : specifier.imported instanceof Identifier
19177
- ? specifier.imported.name
19178
- : specifier.imported.value;
19197
+ const name = node.phase === 'source'
19198
+ ? SOURCE_PHASE_IMPORT
19199
+ : specifier instanceof ImportDefaultSpecifier
19200
+ ? 'default'
19201
+ : specifier instanceof ImportNamespaceSpecifier
19202
+ ? '*'
19203
+ : specifier.imported instanceof Identifier
19204
+ ? specifier.imported.name
19205
+ : specifier.imported.value;
19179
19206
  this.importDescriptions.set(localName, {
19180
19207
  module: null, // filled in later
19181
19208
  name,
19209
+ phase: node.phase === 'source' ? 'source' : 'instance',
19182
19210
  source,
19183
19211
  start: specifier.start
19184
19212
  });
@@ -19251,6 +19279,9 @@ class Module {
19251
19279
  else {
19252
19280
  this.sourcesWithAttributes.set(source, parsedAttributes);
19253
19281
  }
19282
+ if (declaration.phase === 'source') {
19283
+ this.sourcePhaseSources.add(source);
19284
+ }
19254
19285
  }
19255
19286
  getImportedJsxFactoryVariable(baseName, nodeStart, importSource) {
19256
19287
  const { id } = this.resolvedIds[importSource];
@@ -19464,6 +19495,9 @@ function deconflictImportsEsmOrSystem(usedNames, imports, dependenciesToBeDeconf
19464
19495
  ? externalChunkByModule.get(module)
19465
19496
  : chunkByModule.get(module)).variableName);
19466
19497
  }
19498
+ else if (module instanceof ExternalModule && variable.isSourcePhase) {
19499
+ variable.setRenderNames(null, getSafeName(module.suggestedVariableName + '__source', usedNames, variable.forbiddenNames));
19500
+ }
19467
19501
  else if (module instanceof ExternalModule && name === 'default') {
19468
19502
  variable.setRenderNames(null, getSafeName([...module.exportedVariables].some(([exportedVariable, exportedName]) => exportedName === '*' && exportedVariable.included)
19469
19503
  ? module.suggestedVariableName + '__default'
@@ -20401,10 +20435,14 @@ class Chunk {
20401
20435
  const module = variable.module;
20402
20436
  let dependency;
20403
20437
  let imported;
20438
+ const isSourcePhase = module instanceof ExternalModule && variable.isSourcePhase;
20404
20439
  if (module instanceof ExternalModule) {
20405
20440
  dependency = this.externalChunkByModule.get(module);
20406
20441
  imported = variable.name;
20407
- if (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {
20442
+ if (!isSourcePhase &&
20443
+ imported !== 'default' &&
20444
+ imported !== '*' &&
20445
+ interop(module.id) === 'defaultOnly') {
20408
20446
  return parseAst_js.error(parseAst_js.logUnexpectedNamedImport(module.id, imported, false));
20409
20447
  }
20410
20448
  }
@@ -20414,7 +20452,8 @@ class Chunk {
20414
20452
  }
20415
20453
  getOrCreate(importsByDependency, dependency, getNewArray).push({
20416
20454
  imported,
20417
- local: variable.getName(this.snippets.getPropertyAccess)
20455
+ local: variable.getName(this.snippets.getPropertyAccess),
20456
+ phase: isSourcePhase ? 'source' : 'instance'
20418
20457
  });
20419
20458
  }
20420
20459
  return importsByDependency;
@@ -20565,6 +20604,9 @@ class Chunk {
20565
20604
  const reexports = reexportSpecifiers.get(dependency) || null;
20566
20605
  const namedExportsMode = dependency instanceof ExternalChunk || dependency.exportMode !== 'default';
20567
20606
  const importPath = dependency.getImportPath(fileName);
20607
+ // Separate source-phase imports from regular imports
20608
+ const sourcePhaseImport = imports?.find(index => index.phase === 'source');
20609
+ const instanceImports = imports?.filter(index => index.phase !== 'source') ?? null;
20568
20610
  renderedDependencies.set(dependency, {
20569
20611
  attributes: dependency instanceof ExternalChunk
20570
20612
  ? dependency.getImportAttributes(this.snippets)
@@ -20574,12 +20616,13 @@ class Chunk {
20574
20616
  (this.outputOptions.format === 'umd' || this.outputOptions.format === 'iife') &&
20575
20617
  getGlobalName(dependency, this.outputOptions.globals, (imports || reexports) !== null, this.inputOptions.onLog),
20576
20618
  importPath,
20577
- imports,
20619
+ imports: instanceImports && instanceImports.length > 0 ? instanceImports : null,
20578
20620
  isChunk: dependency instanceof Chunk,
20579
20621
  name: dependency.variableName,
20580
20622
  namedExportsMode,
20581
20623
  namespaceVariableName: dependency.namespaceVariableName,
20582
- reexports
20624
+ reexports,
20625
+ sourcePhaseImport: sourcePhaseImport?.local
20583
20626
  });
20584
20627
  }
20585
20628
  return (this.renderedDependencies = renderedDependencies);
@@ -22748,13 +22791,16 @@ class ModuleLoader {
22748
22791
  return loadNewModulesPromise;
22749
22792
  }
22750
22793
  async fetchDynamicDependencies(module, resolveDynamicImportPromises) {
22751
- const dependencies = await Promise.all(resolveDynamicImportPromises.map(resolveDynamicImportPromise => resolveDynamicImportPromise.then(async ([{ node }, resolvedId]) => {
22794
+ const dependencies = await Promise.all(resolveDynamicImportPromises.map(resolveDynamicImportPromise => resolveDynamicImportPromise.then(async ([{ argument, node }, resolvedId]) => {
22752
22795
  if (resolvedId === null)
22753
22796
  return null;
22754
22797
  if (typeof resolvedId === 'string') {
22755
22798
  node.resolution = resolvedId;
22756
22799
  return null;
22757
22800
  }
22801
+ if (node.phase === 'source' && !resolvedId.external) {
22802
+ return parseAst_js.error(parseAst_js.logNonExternalSourcePhaseImport(typeof argument === 'string' ? argument : parseAst_js.relativeId(resolvedId.id), module.id));
22803
+ }
22758
22804
  return (node.resolution = await this.fetchResolvedDependency(parseAst_js.relativeId(resolvedId.id), module.id, resolvedId));
22759
22805
  })));
22760
22806
  for (const dependency of dependencies) {
@@ -22834,7 +22880,12 @@ class ModuleLoader {
22834
22880
  return this.fetchModule(resolvedId, importer, false, false);
22835
22881
  }
22836
22882
  async fetchStaticDependencies(module, resolveStaticDependencyPromises) {
22837
- for (const dependency of await Promise.all(resolveStaticDependencyPromises.map(resolveStaticDependencyPromise => resolveStaticDependencyPromise.then(([source, resolvedId]) => this.fetchResolvedDependency(source, module.id, resolvedId))))) {
22883
+ for (const dependency of await Promise.all(resolveStaticDependencyPromises.map(resolveStaticDependencyPromise => resolveStaticDependencyPromise.then(([source, resolvedId]) => {
22884
+ if (module.sourcePhaseSources.has(source) && !resolvedId.external) {
22885
+ return parseAst_js.error(parseAst_js.logNonExternalSourcePhaseImport(source, module.id));
22886
+ }
22887
+ return this.fetchResolvedDependency(source, module.id, resolvedId);
22888
+ })))) {
22838
22889
  module.dependencies.add(dependency);
22839
22890
  dependency.importers.push(module.id);
22840
22891
  }
@@ -23246,7 +23297,7 @@ class Graph {
23246
23297
  warnForMissingExports() {
23247
23298
  for (const module of this.modules) {
23248
23299
  for (const importDescription of module.importDescriptions.values()) {
23249
- if (importDescription.name !== '*') {
23300
+ if (importDescription.name !== '*' && importDescription.phase !== 'source') {
23250
23301
  const [variable, options] = importDescription.module.getVariableForExportName(importDescription.name, { importChain: [module.id] });
23251
23302
  if (!variable) {
23252
23303
  module.log(parseAst_js.LOGLEVEL_WARN, parseAst_js.logMissingExport(importDescription.name, module.id, importDescription.module.id, !!options?.missingButExportExists), importDescription.start);
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.59.1
4
- Sat, 21 Mar 2026 06:45:31 GMT - commit 0cba9e079e1d6e56882558827b37557f36c52966
3
+ Rollup.js v4.60.0
4
+ Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rollup/wasm-node",
3
- "version": "4.59.1",
3
+ "version": "4.60.0",
4
4
  "description": "Next-generation ES module bundler with Node wasm",
5
5
  "main": "dist/rollup.js",
6
6
  "module": "dist/es/rollup.js",
@@ -64,6 +64,7 @@
64
64
  "@vue/language-server": "^3.2.5",
65
65
  "acorn": "^8.16.0",
66
66
  "acorn-import-assertions": "^1.9.0",
67
+ "acorn-import-phases": "^1.0.4",
67
68
  "acorn-jsx": "^5.3.2",
68
69
  "buble": "^0.20.0",
69
70
  "builtin-modules": "^5.0.0",
@@ -74,7 +75,7 @@
74
75
  "date-time": "^4.0.0",
75
76
  "es5-shim": "^4.6.7",
76
77
  "es6-shim": "^0.35.8",
77
- "eslint": "^10.0.3",
78
+ "eslint": "^10.1.0",
78
79
  "eslint-config-prettier": "^10.1.8",
79
80
  "eslint-plugin-prettier": "^5.5.5",
80
81
  "eslint-plugin-unicorn": "^63.0.0",