rolldown 1.0.0-beta.28-commit.aaef991 → 1.0.0-beta.29

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/cli.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  const require_chunk = require('./shared/chunk-DDkG_k5U.cjs');
2
- const require_src = require('./shared/src-0y6R3KY2.cjs');
2
+ const require_src = require('./shared/src-h2aZxrKj.cjs');
3
3
  require('./shared/parse-ast-index-Bs4K-DpJ.cjs');
4
4
  const require_misc = require('./shared/misc-DksvspN4.cjs');
5
- const require_load_config = require('./shared/load-config-Uc0RxXBP.cjs');
5
+ const require_load_config = require('./shared/load-config-CtmmKRZf.cjs');
6
6
  const node_path = require_chunk.__toESM(require("node:path"));
7
7
  const ansis = require_chunk.__toESM(require("ansis"));
8
8
  const node_process = require_chunk.__toESM(require("node:process"));
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { __commonJS, __toESM } from "./shared/parse-ast-index-COssK1X5.mjs";
2
- import { description, getInputCliKeys, getJsonSchema, getOutputCliKeys, rolldown, validateCliOptions, version, watch } from "./shared/src-DxmazPah.mjs";
2
+ import { description, getInputCliKeys, getJsonSchema, getOutputCliKeys, rolldown, validateCliOptions, version, watch } from "./shared/src-h0g4hFbS.mjs";
3
3
  import { arraify } from "./shared/misc-CQeo-AFx.mjs";
4
- import { loadConfig } from "./shared/load-config-CKSpuYsF.mjs";
4
+ import { loadConfig } from "./shared/load-config-DiRXu5tQ.mjs";
5
5
  import path, { sep } from "node:path";
6
6
  import colors from "ansis";
7
7
  import process$1 from "node:process";
package/dist/config.cjs CHANGED
@@ -1,7 +1,7 @@
1
- const require_src = require('./shared/src-0y6R3KY2.cjs');
1
+ const require_src = require('./shared/src-h2aZxrKj.cjs');
2
2
  require('./shared/parse-ast-index-Bs4K-DpJ.cjs');
3
3
  require('./shared/misc-DksvspN4.cjs');
4
- const require_load_config = require('./shared/load-config-Uc0RxXBP.cjs');
4
+ const require_load_config = require('./shared/load-config-CtmmKRZf.cjs');
5
5
 
6
6
  //#region src/config.ts
7
7
  const VERSION = require_src.version;
package/dist/config.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./shared/binding-D1lW862e.cjs";
2
- import { ConfigExport, defineConfig } from "./shared/define-config-DQ-fbTm4.cjs";
2
+ import { ConfigExport, defineConfig } from "./shared/define-config-CbNA0bsF.cjs";
3
3
 
4
4
  //#region src/utils/load-config.d.ts
5
5
  declare function loadConfig(configPath: string): Promise<ConfigExport>;
package/dist/config.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./shared/binding-BO7hG1pA.mjs";
2
- import { ConfigExport, defineConfig } from "./shared/define-config-BVyR1lP8.mjs";
2
+ import { ConfigExport, defineConfig } from "./shared/define-config-CgND8XFH.mjs";
3
3
 
4
4
  //#region src/utils/load-config.d.ts
5
5
  declare function loadConfig(configPath: string): Promise<ConfigExport>;
package/dist/config.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./shared/parse-ast-index-COssK1X5.mjs";
2
- import { defineConfig, version } from "./shared/src-DxmazPah.mjs";
2
+ import { defineConfig, version } from "./shared/src-h0g4hFbS.mjs";
3
3
  import "./shared/misc-CQeo-AFx.mjs";
4
- import { loadConfig } from "./shared/load-config-CKSpuYsF.mjs";
4
+ import { loadConfig } from "./shared/load-config-DiRXu5tQ.mjs";
5
5
 
6
6
  //#region src/config.ts
7
7
  const VERSION = version;
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./shared/chunk-DDkG_k5U.cjs');
2
- const require_src = require('./shared/src-0y6R3KY2.cjs');
2
+ const require_src = require('./shared/src-h2aZxrKj.cjs');
3
3
  const require_parse_ast_index = require('./shared/parse-ast-index-Bs4K-DpJ.cjs');
4
4
  require('./shared/misc-DksvspN4.cjs');
5
5
  const node_url = require_chunk.__toESM(require("node:url"));
@@ -1,5 +1,5 @@
1
1
  import { BindingReplacePluginConfig, BindingTransformPluginConfig, IsolatedDeclarationsOptions, IsolatedDeclarationsResult, NapiResolveOptions, ResolveResult, ResolverFactory, TransformOptions, TransformResult, isolatedDeclaration, moduleRunnerTransform, transform } from "./shared/binding-D1lW862e.cjs";
2
- import { BuiltinPlugin, InputOptions, assetPlugin, buildImportAnalysisPlugin, defineParallelPlugin, dynamicImportVarsPlugin, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/define-config-DQ-fbTm4.cjs";
2
+ import { BuiltinPlugin, InputOptions, assetPlugin, buildImportAnalysisPlugin, defineParallelPlugin, dynamicImportVarsPlugin, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/define-config-CbNA0bsF.cjs";
3
3
 
4
4
  //#region src/api/experimental.d.ts
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { BindingReplacePluginConfig, BindingTransformPluginConfig, IsolatedDeclarationsOptions, IsolatedDeclarationsResult, NapiResolveOptions, ResolveResult, ResolverFactory, TransformOptions, TransformResult, isolatedDeclaration, moduleRunnerTransform, transform } from "./shared/binding-BO7hG1pA.mjs";
2
- import { BuiltinPlugin, InputOptions, assetPlugin, buildImportAnalysisPlugin, defineParallelPlugin, dynamicImportVarsPlugin, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/define-config-BVyR1lP8.mjs";
2
+ import { BuiltinPlugin, InputOptions, assetPlugin, buildImportAnalysisPlugin, defineParallelPlugin, dynamicImportVarsPlugin, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/define-config-CgND8XFH.mjs";
3
3
 
4
4
  //#region src/api/experimental.d.ts
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { BindingBundler, ResolverFactory, isolatedDeclaration, moduleRunnerTransform, transform } from "./shared/parse-ast-index-COssK1X5.mjs";
2
- import { BuiltinPlugin, PluginDriver, assetPlugin, buildImportAnalysisPlugin, createBundlerImpl, dynamicImportVarsPlugin, handleOutputErrors, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, normalizedStringOrRegex, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/src-DxmazPah.mjs";
2
+ import { BuiltinPlugin, PluginDriver, assetPlugin, buildImportAnalysisPlugin, createBundlerImpl, dynamicImportVarsPlugin, handleOutputErrors, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, moduleFederationPlugin, modulePreloadPolyfillPlugin, normalizedStringOrRegex, reporterPlugin, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, webWorkerPostPlugin } from "./shared/src-h0g4hFbS.mjs";
3
3
  import "./shared/misc-CQeo-AFx.mjs";
4
4
  import { pathToFileURL } from "node:url";
5
5
 
@@ -1,4 +1,4 @@
1
1
  import "./shared/binding-D1lW862e.cjs";
2
- import { withFilter } from "./shared/define-config-DQ-fbTm4.cjs";
2
+ import { withFilter } from "./shared/define-config-CbNA0bsF.cjs";
3
3
  import { and, code, exclude, id, include, moduleType, not, or, queries, query } from "@rolldown/pluginutils";
4
4
  export { and, code, exclude, id, include, moduleType, not, or, queries, query, withFilter };
@@ -1,4 +1,4 @@
1
1
  import "./shared/binding-BO7hG1pA.mjs";
2
- import { withFilter } from "./shared/define-config-BVyR1lP8.mjs";
2
+ import { withFilter } from "./shared/define-config-CgND8XFH.mjs";
3
3
  import { and, code, exclude, id, include, moduleType, not, or, queries, query } from "@rolldown/pluginutils";
4
4
  export { and, code, exclude, id, include, moduleType, not, or, queries, query, withFilter };
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_src = require('./shared/src-0y6R3KY2.cjs');
1
+ const require_src = require('./shared/src-h2aZxrKj.cjs');
2
2
  require('./shared/parse-ast-index-Bs4K-DpJ.cjs');
3
3
  require('./shared/misc-DksvspN4.cjs');
4
4
 
package/dist/index.d.cts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { PreRenderedChunk } from "./shared/binding-D1lW862e.cjs";
2
- import { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch } from "./shared/define-config-DQ-fbTm4.cjs";
2
+ import { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch } from "./shared/define-config-CbNA0bsF.cjs";
3
3
  export { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, PreRenderedChunk, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { PreRenderedChunk } from "./shared/binding-BO7hG1pA.mjs";
2
- import { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch } from "./shared/define-config-BVyR1lP8.mjs";
2
+ import { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch } from "./shared/define-config-CgND8XFH.mjs";
3
3
  export { AddonFunction, AsyncPluginHooks, BuildOptions, ChunkFileNamesFunction, ChunkingContext, ConfigExport, CustomPluginOptions, DefineParallelPluginResult, EmittedAsset, EmittedFile, ExistingRawSourceMap, ExternalOption, FunctionPluginHooks, GeneralHookFilter, GetModuleInfo, GlobalsFunction, HookFilter, HookFilterExtension, ImportKind, InputOption, InputOptions, InternalModuleFormat, LoadResult, LogLevel, LogLevelOption, LogOrStringHandler, LoggingFunction, MinifyOptions, MinimalPluginContext, ModuleFormat, ModuleInfo, ModuleOptions, ModuleType, ModuleTypeFilter, ModuleTypes, NormalizedInputOptions, NormalizedOutputOptions, ObjectHook, OptimizationOptions, OutputAsset, OutputBundle, OutputChunk, OutputOptions, ParallelPluginHooks, PartialNull, PartialResolvedId, Plugin, PluginContext, PluginContextMeta, PreRenderedAsset, PreRenderedChunk, RenderedChunk, RenderedModule, ResolveIdExtraOptions, ResolveIdResult, ResolvedId, RolldownBuild, RolldownOptions, RolldownOutput, RolldownPlugin, RolldownPluginOption, RolldownWatcher, RolldownWatcherEvent, RollupError, RollupLog, RollupLogWithString, SourceDescription, SourceMap, SourceMapInput, SourcemapIgnoreListOption, TransformPluginContext, TransformResult, TreeshakingOptions, VERSION, WarningHandlerWithDefault, WatchOptions, WatcherOptions, build, defineConfig, rolldown, watch };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./shared/parse-ast-index-COssK1X5.mjs";
2
- import { VERSION, build, defineConfig, rolldown, watch } from "./shared/src-DxmazPah.mjs";
2
+ import { VERSION, build, defineConfig, rolldown, watch } from "./shared/src-h0g4hFbS.mjs";
3
3
  import "./shared/misc-CQeo-AFx.mjs";
4
4
 
5
5
  export { VERSION, build, defineConfig, rolldown, watch };
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./shared/chunk-DDkG_k5U.cjs');
2
- const require_src = require('./shared/src-0y6R3KY2.cjs');
2
+ const require_src = require('./shared/src-h2aZxrKj.cjs');
3
3
  const require_parse_ast_index = require('./shared/parse-ast-index-Bs4K-DpJ.cjs');
4
4
  require('./shared/misc-DksvspN4.cjs');
5
5
  const node_worker_threads = require_chunk.__toESM(require("node:worker_threads"));
@@ -1,5 +1,5 @@
1
1
  import { registerPlugins } from "./shared/parse-ast-index-COssK1X5.mjs";
2
- import { PluginContextData, bindingifyPlugin } from "./shared/src-DxmazPah.mjs";
2
+ import { PluginContextData, bindingifyPlugin } from "./shared/src-h0g4hFbS.mjs";
3
3
  import "./shared/misc-CQeo-AFx.mjs";
4
4
  import { parentPort, workerData } from "node:worker_threads";
5
5
 
@@ -1,5 +1,5 @@
1
1
  import "./shared/binding-D1lW862e.cjs";
2
- import { MaybePromise, Plugin } from "./shared/define-config-DQ-fbTm4.cjs";
2
+ import { MaybePromise, Plugin } from "./shared/define-config-CbNA0bsF.cjs";
3
3
 
4
4
  //#region src/plugin/parallel-plugin-implementation.d.ts
5
5
  type ParallelPluginImplementation = Plugin;
@@ -1,5 +1,5 @@
1
1
  import "./shared/binding-BO7hG1pA.mjs";
2
- import { MaybePromise, Plugin } from "./shared/define-config-BVyR1lP8.mjs";
2
+ import { MaybePromise, Plugin } from "./shared/define-config-CgND8XFH.mjs";
3
3
 
4
4
  //#region src/plugin/parallel-plugin-implementation.d.ts
5
5
  type ParallelPluginImplementation = Plugin;
@@ -1080,7 +1080,57 @@ interface InputOptions {
1080
1080
  * > You shouldn't use `full` in the production build.
1081
1081
  */
1082
1082
  attachDebugInfo?: AttachDebugOptions;
1083
- chunkImportMap?: boolean;
1083
+ /**
1084
+ * Enables automatic generation of a chunk import map asset during build.
1085
+ *
1086
+ * This map only includes chunks with hashed filenames, where keys are derived from the facade module
1087
+ * name or primary chunk name. It produces stable and unique hash-based filenames, effectively preventing
1088
+ * cascading cache invalidation caused by content hashes and maximizing browser cache reuse.
1089
+ *
1090
+ * The output defaults to `importmap.json` unless overridden via `fileName`. A base URL prefix
1091
+ * (default `"/"`) can be applied to all paths. The resulting JSON is a valid import map and can be
1092
+ * directly injected into HTML via `<script type="importmap">`.
1093
+ *
1094
+ * Example configuration snippet:
1095
+ *
1096
+ * ```js
1097
+ * {
1098
+ * experimental: {
1099
+ * chunkImportMap: {
1100
+ * baseUrl: '/',
1101
+ * fileName: 'importmap.json'
1102
+ * }
1103
+ * },
1104
+ * plugins: [
1105
+ * {
1106
+ * name: 'inject-import-map',
1107
+ * generateBundle(_, bundle) {
1108
+ * const chunkImportMap = bundle['importmap.json'];
1109
+ * if (chunkImportMap?.type === 'asset') {
1110
+ * const htmlPath = path.resolve('index.html');
1111
+ * let html = fs.readFileSync(htmlPath, 'utf-8');
1112
+ *
1113
+ * html = html.replace(
1114
+ * /<script\s+type="importmap"[^>]*>[\s\S]*?<\/script>/i,
1115
+ * `<script type="importmap">${chunkImportMap.source}<\/script>`
1116
+ * );
1117
+ *
1118
+ * fs.writeFileSync(htmlPath, html);
1119
+ * delete bundle['importmap.json'];
1120
+ * }
1121
+ * }
1122
+ * }
1123
+ * ]
1124
+ * }
1125
+ * ```
1126
+ *
1127
+ * > [!NOTE]
1128
+ * > If you want to learn more, you can check out the example here: [examples/chunk-import-map](https://github.com/rolldown/rolldown/tree/main/examples/chunk-import-map)
1129
+ */
1130
+ chunkImportMap?: boolean | {
1131
+ baseUrl?: string;
1132
+ fileName?: string;
1133
+ };
1084
1134
  onDemandWrapping?: boolean;
1085
1135
  /**
1086
1136
  * Required to be used with `watch` mode.
@@ -1080,7 +1080,57 @@ interface InputOptions {
1080
1080
  * > You shouldn't use `full` in the production build.
1081
1081
  */
1082
1082
  attachDebugInfo?: AttachDebugOptions;
1083
- chunkImportMap?: boolean;
1083
+ /**
1084
+ * Enables automatic generation of a chunk import map asset during build.
1085
+ *
1086
+ * This map only includes chunks with hashed filenames, where keys are derived from the facade module
1087
+ * name or primary chunk name. It produces stable and unique hash-based filenames, effectively preventing
1088
+ * cascading cache invalidation caused by content hashes and maximizing browser cache reuse.
1089
+ *
1090
+ * The output defaults to `importmap.json` unless overridden via `fileName`. A base URL prefix
1091
+ * (default `"/"`) can be applied to all paths. The resulting JSON is a valid import map and can be
1092
+ * directly injected into HTML via `<script type="importmap">`.
1093
+ *
1094
+ * Example configuration snippet:
1095
+ *
1096
+ * ```js
1097
+ * {
1098
+ * experimental: {
1099
+ * chunkImportMap: {
1100
+ * baseUrl: '/',
1101
+ * fileName: 'importmap.json'
1102
+ * }
1103
+ * },
1104
+ * plugins: [
1105
+ * {
1106
+ * name: 'inject-import-map',
1107
+ * generateBundle(_, bundle) {
1108
+ * const chunkImportMap = bundle['importmap.json'];
1109
+ * if (chunkImportMap?.type === 'asset') {
1110
+ * const htmlPath = path.resolve('index.html');
1111
+ * let html = fs.readFileSync(htmlPath, 'utf-8');
1112
+ *
1113
+ * html = html.replace(
1114
+ * /<script\s+type="importmap"[^>]*>[\s\S]*?<\/script>/i,
1115
+ * `<script type="importmap">${chunkImportMap.source}<\/script>`
1116
+ * );
1117
+ *
1118
+ * fs.writeFileSync(htmlPath, html);
1119
+ * delete bundle['importmap.json'];
1120
+ * }
1121
+ * }
1122
+ * }
1123
+ * ]
1124
+ * }
1125
+ * ```
1126
+ *
1127
+ * > [!NOTE]
1128
+ * > If you want to learn more, you can check out the example here: [examples/chunk-import-map](https://github.com/rolldown/rolldown/tree/main/examples/chunk-import-map)
1129
+ */
1130
+ chunkImportMap?: boolean | {
1131
+ baseUrl?: string;
1132
+ fileName?: string;
1133
+ };
1084
1134
  onDemandWrapping?: boolean;
1085
1135
  /**
1086
1136
  * Required to be used with `watch` mode.
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-DDkG_k5U.cjs');
2
- const require_src = require('./src-0y6R3KY2.cjs');
2
+ const require_src = require('./src-h2aZxrKj.cjs');
3
3
  const node_fs = require_chunk.__toESM(require("node:fs"));
4
4
  const node_path = require_chunk.__toESM(require("node:path"));
5
5
  const node_url = require_chunk.__toESM(require("node:url"));
@@ -1,4 +1,4 @@
1
- import { rolldown } from "./src-DxmazPah.mjs";
1
+ import { rolldown } from "./src-h0g4hFbS.mjs";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { pathToFileURL } from "node:url";
@@ -8,7 +8,7 @@ import os from "node:os";
8
8
  import { Worker } from "node:worker_threads";
9
9
 
10
10
  //#region package.json
11
- var version = "1.0.0-beta.28-commit.aaef991";
11
+ var version = "1.0.0-beta.29";
12
12
  var description$1 = "Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.";
13
13
 
14
14
  //#endregion
@@ -2053,7 +2053,10 @@ const InputOptionsSchema = strictObject({
2053
2053
  literal("full")
2054
2054
  ])),
2055
2055
  chunkModulesOrder: optional(union([literal("module-id"), literal("exec-order")])),
2056
- chunkImportMap: optional(boolean())
2056
+ chunkImportMap: optional(union([boolean(), object({
2057
+ baseUrl: optional(string()),
2058
+ fileName: optional(string())
2059
+ })]))
2057
2060
  })),
2058
2061
  define: pipe(optional(record(string(), string())), description("Define global variables")),
2059
2062
  inject: optional(record(string(), union([string(), tuple([string(), string()])]))),
@@ -9,7 +9,7 @@ const node_os = require_chunk.__toESM(require("node:os"));
9
9
  const node_worker_threads = require_chunk.__toESM(require("node:worker_threads"));
10
10
 
11
11
  //#region package.json
12
- var version = "1.0.0-beta.28-commit.aaef991";
12
+ var version = "1.0.0-beta.29";
13
13
  var description$1 = "Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.";
14
14
 
15
15
  //#endregion
@@ -2054,7 +2054,10 @@ const InputOptionsSchema = strictObject({
2054
2054
  literal("full")
2055
2055
  ])),
2056
2056
  chunkModulesOrder: optional(union([literal("module-id"), literal("exec-order")])),
2057
- chunkImportMap: optional(boolean())
2057
+ chunkImportMap: optional(union([boolean(), object({
2058
+ baseUrl: optional(string()),
2059
+ fileName: optional(string())
2060
+ })]))
2058
2061
  })),
2059
2062
  define: pipe(optional(record(string(), string())), description("Define global variables")),
2060
2063
  inject: optional(record(string(), union([string(), tuple([string(), string()])]))),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rolldown",
3
- "version": "1.0.0-beta.28-commit.aaef991",
3
+ "version": "1.0.0-beta.29",
4
4
  "description": "Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.",
5
5
  "type": "module",
6
6
  "homepage": "https://rolldown.rs/",
@@ -95,7 +95,7 @@
95
95
  "@oxc-project/runtime": "=0.77.3",
96
96
  "@oxc-project/types": "=0.77.3",
97
97
  "ansis": "^4.0.0",
98
- "@rolldown/pluginutils": "1.0.0-beta.28-commit.aaef991"
98
+ "@rolldown/pluginutils": "1.0.0-beta.29"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@napi-rs/cli": "^3.0.0",
@@ -119,24 +119,24 @@
119
119
  "typedoc": "^0.28.0",
120
120
  "typescript": "^5.7.3",
121
121
  "valibot": "1.1.0",
122
- "rolldown": "1.0.0-beta.28-commit.aaef991",
123
- "@rolldown/testing": "0.0.1"
122
+ "@rolldown/testing": "0.0.1",
123
+ "rolldown": "1.0.0-beta.29"
124
124
  },
125
125
  "optionalDependencies": {
126
- "@rolldown/binding-darwin-x64": "1.0.0-beta.28-commit.aaef991",
127
- "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.28-commit.aaef991",
128
- "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.28-commit.aaef991",
129
- "@rolldown/binding-linux-x64-musl": "1.0.0-beta.28-commit.aaef991",
130
- "@rolldown/binding-freebsd-x64": "1.0.0-beta.28-commit.aaef991",
131
- "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.28-commit.aaef991",
132
- "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.28-commit.aaef991",
133
- "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.28-commit.aaef991",
134
- "@rolldown/binding-darwin-arm64": "1.0.0-beta.28-commit.aaef991",
135
- "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.28-commit.aaef991",
136
- "@rolldown/binding-linux-arm64-ohos": "1.0.0-beta.28-commit.aaef991",
137
- "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.28-commit.aaef991",
138
- "@rolldown/binding-android-arm64": "1.0.0-beta.28-commit.aaef991",
139
- "@rolldown/binding-wasm32-wasi": "1.0.0-beta.28-commit.aaef991"
126
+ "@rolldown/binding-darwin-x64": "1.0.0-beta.29",
127
+ "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.29",
128
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.29",
129
+ "@rolldown/binding-linux-x64-musl": "1.0.0-beta.29",
130
+ "@rolldown/binding-freebsd-x64": "1.0.0-beta.29",
131
+ "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.29",
132
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.29",
133
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.29",
134
+ "@rolldown/binding-darwin-arm64": "1.0.0-beta.29",
135
+ "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.29",
136
+ "@rolldown/binding-linux-arm64-ohos": "1.0.0-beta.29",
137
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.29",
138
+ "@rolldown/binding-android-arm64": "1.0.0-beta.29",
139
+ "@rolldown/binding-wasm32-wasi": "1.0.0-beta.29"
140
140
  },
141
141
  "scripts": {
142
142
  "# Scrips for binding #": "_",