@rspack-debug/core 2.0.0-alpha.1 → 2.0.0-beta.1

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.
@@ -1 +1 @@
1
- var __module_federation_bundler_runtime__,__module_federation_runtime_plugins__,__module_federation_remote_infos__,__module_federation_container_name__,__module_federation_share_strategy__;export default function(){if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){var _ref,_ref1,_ref2,_ref3,_ref4;var __webpack_require___remotesLoadingData,__webpack_require___remotesLoadingData1,__webpack_require___initializeSharingData,__webpack_require___consumesLoadingData,__webpack_require___consumesLoadingData1,__webpack_require___initializeExposesData,__webpack_require___consumesLoadingData2;const override=(obj,key,value)=>{if(!obj)return;if(obj[key])obj[key]=value};const merge=(obj,key,fn)=>{const value=fn();if(Array.isArray(value)){var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value==="object"&&value!==null){var _obj1,_key1,_1;(_1=(_obj1=obj)[_key1=key])!==null&&_1!==void 0?_1:_obj1[_key1]={};Object.assign(obj[key],value)}};const early=(obj,key,initial)=>{var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};const remotesLoadingChunkMapping=(_ref=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&_ref!==void 0?_ref:{};const remotesLoadingModuleIdToRemoteDataMapping=(_ref1=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&_ref1!==void 0?_ref1:{};const initializeSharingScopeToInitDataMapping=(_ref2=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&_ref2!==void 0?_ref2:{};const consumesLoadingChunkMapping=(_ref3=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&_ref3!==void 0?_ref3:{};const consumesLoadingModuleToConsumeDataMapping=(_ref4=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&_ref4!==void 0?_ref4:{};const consumesLoadinginstalledModules={};const initializeSharingInitPromises=[];const initializeSharingInitTokens={};const containerShareScope=(__webpack_require___initializeExposesData=__webpack_require__.initializeExposesData)===null||__webpack_require___initializeExposesData===void 0?void 0:__webpack_require___initializeExposesData.shareScope;for(const key in __module_federation_bundler_runtime__){__webpack_require__.federation[key]=__module_federation_bundler_runtime__[key]}early(__webpack_require__.federation,"consumesLoadingModuleToHandlerMapping",()=>{const consumesLoadingModuleToHandlerMapping={};for(let[moduleId,data]of Object.entries(consumesLoadingModuleToConsumeDataMapping)){consumesLoadingModuleToHandlerMapping[moduleId]={getter:data.fallback,shareInfo:{shareConfig:{fixedDependencies:false,requiredVersion:data.requiredVersion,strictVersion:data.strictVersion,singleton:data.singleton,eager:data.eager},scope:[data.shareScope]},shareKey:data.shareKey}}return consumesLoadingModuleToHandlerMapping});early(__webpack_require__.federation,"initOptions",()=>({}));early(__webpack_require__.federation.initOptions,"name",()=>__module_federation_container_name__);early(__webpack_require__.federation.initOptions,"shareStrategy",()=>__module_federation_share_strategy__);early(__webpack_require__.federation.initOptions,"shared",()=>{const shared={};for(let[scope,stages]of Object.entries(initializeSharingScopeToInitDataMapping)){for(let stage of stages){if(typeof stage==="object"&&stage!==null){const{name,version,factory,eager,singleton,requiredVersion,strictVersion}=stage;const shareConfig={};const isValidValue=function(val){return typeof val!=="undefined"};if(isValidValue(singleton)){shareConfig.singleton=singleton}if(isValidValue(requiredVersion)){shareConfig.requiredVersion=requiredVersion}if(isValidValue(eager)){shareConfig.eager=eager}if(isValidValue(strictVersion)){shareConfig.strictVersion=strictVersion}const options={version,scope:[scope],shareConfig,get:factory};if(shared[name]){shared[name].push(options)}else{shared[name]=[options]}}}}return shared});merge(__webpack_require__.federation.initOptions,"remotes",()=>Object.values(__module_federation_remote_infos__).flat().filter(remote=>remote.externalType==="script"));merge(__webpack_require__.federation.initOptions,"plugins",()=>__module_federation_runtime_plugins__);early(__webpack_require__.federation,"bundlerRuntimeOptions",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions,"remotes",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"chunkMapping",()=>remotesLoadingChunkMapping);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"remoteInfos",()=>__module_federation_remote_infos__);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"idToExternalAndNameMapping",()=>{const remotesLoadingIdToExternalAndNameMappingMapping={};for(let[moduleId,data]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){remotesLoadingIdToExternalAndNameMappingMapping[moduleId]=[data.shareScope,data.name,data.externalModuleId,data.remoteName]}return remotesLoadingIdToExternalAndNameMappingMapping});early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"webpackRequire",()=>__webpack_require__);merge(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"idToRemoteMap",()=>{const idToRemoteMap={};for(let[id,remoteData]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){const info=__module_federation_remote_infos__[remoteData.remoteName];if(info)idToRemoteMap[id]=info}return idToRemoteMap});override(__webpack_require__,"S",__webpack_require__.federation.bundlerRuntime.S);if(__webpack_require__.federation.attachShareScopeMap){__webpack_require__.federation.attachShareScopeMap(__webpack_require__)}override(__webpack_require__.f,"remotes",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.remotes({chunkId,promises,chunkMapping:remotesLoadingChunkMapping,idToExternalAndNameMapping:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToExternalAndNameMapping,idToRemoteMap:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToRemoteMap,webpackRequire:__webpack_require__}));override(__webpack_require__.f,"consumes",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.consumes({chunkId,promises,chunkMapping:consumesLoadingChunkMapping,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping,installedModules:consumesLoadinginstalledModules,webpackRequire:__webpack_require__}));override(__webpack_require__,"I",(name,initScope)=>__webpack_require__.federation.bundlerRuntime.I({shareScopeName:name,initScope,initPromises:initializeSharingInitPromises,initTokens:initializeSharingInitTokens,webpackRequire:__webpack_require__}));override(__webpack_require__,"initContainer",(shareScope,initScope,remoteEntryInitOptions)=>__webpack_require__.federation.bundlerRuntime.initContainerEntry({shareScope,initScope,remoteEntryInitOptions,shareScopeKey:containerShareScope,webpackRequire:__webpack_require__}));override(__webpack_require__,"getContainer",(module,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module)?moduleMap[module]():Promise.resolve().then(()=>{throw new Error('Module "'+module+'" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);if((__webpack_require___consumesLoadingData2=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData2===void 0?void 0:__webpack_require___consumesLoadingData2.initialConsumes){__webpack_require__.federation.bundlerRuntime.installInitialConsumes({webpackRequire:__webpack_require__,installedModules:consumesLoadinginstalledModules,initialConsumes:__webpack_require__.consumesLoadingData.initialConsumes,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping})}}}
1
+ var __module_federation_bundler_runtime__,__module_federation_runtime_plugins__,__module_federation_remote_infos__,__module_federation_container_name__,__module_federation_share_strategy__,__module_federation_share_fallbacks__,__module_federation_library_type__;export default function(){if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){var _ref,_ref1,_ref2,_ref3,_ref4;var __webpack_require___remotesLoadingData,__webpack_require___remotesLoadingData1,__webpack_require___initializeSharingData,__webpack_require___consumesLoadingData,__webpack_require___consumesLoadingData1,__webpack_require___initializeExposesData,__webpack_require___consumesLoadingData2;const override=(obj,key,value)=>{if(!obj)return;if(obj[key])obj[key]=value};const merge=(obj,key,fn)=>{const value=fn();if(Array.isArray(value)){var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value==="object"&&value!==null){var _obj1,_key1,_1;(_1=(_obj1=obj)[_key1=key])!==null&&_1!==void 0?_1:_obj1[_key1]={};Object.assign(obj[key],value)}};const early=(obj,key,initial)=>{var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};const remotesLoadingChunkMapping=(_ref=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&_ref!==void 0?_ref:{};const remotesLoadingModuleIdToRemoteDataMapping=(_ref1=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&_ref1!==void 0?_ref1:{};const initializeSharingScopeToInitDataMapping=(_ref2=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&_ref2!==void 0?_ref2:{};const consumesLoadingChunkMapping=(_ref3=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&_ref3!==void 0?_ref3:{};const consumesLoadingModuleToConsumeDataMapping=(_ref4=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&_ref4!==void 0?_ref4:{};const consumesLoadinginstalledModules={};const initializeSharingInitPromises=[];const initializeSharingInitTokens={};const containerShareScope=(__webpack_require___initializeExposesData=__webpack_require__.initializeExposesData)===null||__webpack_require___initializeExposesData===void 0?void 0:__webpack_require___initializeExposesData.shareScope;for(const key in __module_federation_bundler_runtime__){__webpack_require__.federation[key]=__module_federation_bundler_runtime__[key]}early(__webpack_require__.federation,"libraryType",()=>__module_federation_library_type__);early(__webpack_require__.federation,"sharedFallback",()=>__module_federation_share_fallbacks__);const sharedFallback=__webpack_require__.federation.sharedFallback;early(__webpack_require__.federation,"consumesLoadingModuleToHandlerMapping",()=>{const consumesLoadingModuleToHandlerMapping={};for(let[moduleId,data]of Object.entries(consumesLoadingModuleToConsumeDataMapping)){var __webpack_require___federation_bundlerRuntime;consumesLoadingModuleToHandlerMapping[moduleId]={getter:sharedFallback?(__webpack_require___federation_bundlerRuntime=__webpack_require__.federation.bundlerRuntime)===null||__webpack_require___federation_bundlerRuntime===void 0?void 0:__webpack_require___federation_bundlerRuntime.getSharedFallbackGetter({shareKey:data.shareKey,factory:data.fallback,webpackRequire:__webpack_require__,libraryType:__webpack_require__.federation.libraryType}):data.fallback,treeShakingGetter:sharedFallback?data.fallback:undefined,shareInfo:{shareConfig:{fixedDependencies:false,requiredVersion:data.requiredVersion,strictVersion:data.strictVersion,singleton:data.singleton,eager:data.eager},scope:[data.shareScope]},shareKey:data.shareKey,treeShaking:__webpack_require__.federation.sharedFallback?{get:data.fallback,mode:data.treeShakingMode}:undefined}}return consumesLoadingModuleToHandlerMapping});early(__webpack_require__.federation,"initOptions",()=>({}));early(__webpack_require__.federation.initOptions,"name",()=>__module_federation_container_name__);early(__webpack_require__.federation.initOptions,"shareStrategy",()=>__module_federation_share_strategy__);early(__webpack_require__.federation.initOptions,"shared",()=>{const shared={};for(let[scope,stages]of Object.entries(initializeSharingScopeToInitDataMapping)){for(let stage of stages){if(typeof stage==="object"&&stage!==null){const{name,version,factory,eager,singleton,requiredVersion,strictVersion,treeShakingMode}=stage;const shareConfig={};const isValidValue=function(val){return typeof val!=="undefined"};if(isValidValue(singleton)){shareConfig.singleton=singleton}if(isValidValue(requiredVersion)){shareConfig.requiredVersion=requiredVersion}if(isValidValue(eager)){shareConfig.eager=eager}if(isValidValue(strictVersion)){shareConfig.strictVersion=strictVersion}const options={version,scope:[scope],shareConfig,get:factory,treeShaking:treeShakingMode?{mode:treeShakingMode}:undefined};if(shared[name]){shared[name].push(options)}else{shared[name]=[options]}}}}return shared});merge(__webpack_require__.federation.initOptions,"remotes",()=>Object.values(__module_federation_remote_infos__).flat().filter(remote=>remote.externalType==="script"));merge(__webpack_require__.federation.initOptions,"plugins",()=>__module_federation_runtime_plugins__);early(__webpack_require__.federation,"bundlerRuntimeOptions",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions,"remotes",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"chunkMapping",()=>remotesLoadingChunkMapping);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"remoteInfos",()=>__module_federation_remote_infos__);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"idToExternalAndNameMapping",()=>{const remotesLoadingIdToExternalAndNameMappingMapping={};for(let[moduleId,data]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){remotesLoadingIdToExternalAndNameMappingMapping[moduleId]=[data.shareScope,data.name,data.externalModuleId,data.remoteName]}return remotesLoadingIdToExternalAndNameMappingMapping});early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"webpackRequire",()=>__webpack_require__);merge(__webpack_require__.federation.bundlerRuntimeOptions.remotes,"idToRemoteMap",()=>{const idToRemoteMap={};for(let[id,remoteData]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){const info=__module_federation_remote_infos__[remoteData.remoteName];if(info)idToRemoteMap[id]=info}return idToRemoteMap});override(__webpack_require__,"S",__webpack_require__.federation.bundlerRuntime.S);if(__webpack_require__.federation.attachShareScopeMap){__webpack_require__.federation.attachShareScopeMap(__webpack_require__)}override(__webpack_require__.f,"remotes",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.remotes({chunkId,promises,chunkMapping:remotesLoadingChunkMapping,idToExternalAndNameMapping:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToExternalAndNameMapping,idToRemoteMap:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToRemoteMap,webpackRequire:__webpack_require__}));override(__webpack_require__.f,"consumes",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.consumes({chunkId,promises,chunkMapping:consumesLoadingChunkMapping,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping,installedModules:consumesLoadinginstalledModules,webpackRequire:__webpack_require__}));override(__webpack_require__,"I",(name,initScope)=>__webpack_require__.federation.bundlerRuntime.I({shareScopeName:name,initScope,initPromises:initializeSharingInitPromises,initTokens:initializeSharingInitTokens,webpackRequire:__webpack_require__}));override(__webpack_require__,"initContainer",(shareScope,initScope,remoteEntryInitOptions)=>__webpack_require__.federation.bundlerRuntime.initContainerEntry({shareScope,initScope,remoteEntryInitOptions,shareScopeKey:containerShareScope,webpackRequire:__webpack_require__}));override(__webpack_require__,"getContainer",(module,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module)?moduleMap[module]():Promise.resolve().then(()=>{throw new Error('Module "'+module+'" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.bundlerRuntime.init({webpackRequire:__webpack_require__});if((__webpack_require___consumesLoadingData2=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData2===void 0?void 0:__webpack_require___consumesLoadingData2.initialConsumes){__webpack_require__.federation.bundlerRuntime.installInitialConsumes({webpackRequire:__webpack_require__,installedModules:consumesLoadinginstalledModules,initialConsumes:__webpack_require__.consumesLoadingData.initialConsumes,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping})}}}
@@ -0,0 +1,22 @@
1
+ import { type BuiltinPlugin, BuiltinPluginName } from '@rspack/binding';
2
+ import { RspackBuiltinPlugin } from '../builtin-plugin/base.js';
3
+ import type { Compiler } from '../Compiler.js';
4
+ import { type NormalizedSharedOptions } from './SharePlugin.js';
5
+ export type CollectSharedEntryPluginOptions = {
6
+ sharedOptions: NormalizedSharedOptions;
7
+ shareScope?: string;
8
+ };
9
+ export type ShareRequestsMap = Record<string, {
10
+ shareScope: string;
11
+ requests: [string, string][];
12
+ }>;
13
+ export declare class CollectSharedEntryPlugin extends RspackBuiltinPlugin {
14
+ name: BuiltinPluginName;
15
+ sharedOptions: NormalizedSharedOptions;
16
+ private _collectedEntries;
17
+ constructor(options: CollectSharedEntryPluginOptions);
18
+ getData(): ShareRequestsMap;
19
+ getFilename(): string;
20
+ apply(compiler: Compiler): void;
21
+ raw(): BuiltinPlugin;
22
+ }
@@ -20,7 +20,19 @@ export type ConsumesConfig = {
20
20
  shareScope?: string;
21
21
  singleton?: boolean;
22
22
  strictVersion?: boolean;
23
+ treeShakingMode?: 'server-calc' | 'runtime-infer';
23
24
  };
25
+ export declare function normalizeConsumeShareOptions(consumes: Consumes, shareScope?: string): [string, {
26
+ import: string | undefined;
27
+ shareScope: string;
28
+ shareKey: string;
29
+ requiredVersion: string | false | undefined;
30
+ strictVersion: boolean;
31
+ packageName: string | undefined;
32
+ singleton: boolean;
33
+ eager: boolean;
34
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
35
+ }][];
24
36
  export declare class ConsumeSharedPlugin extends RspackBuiltinPlugin {
25
37
  name: BuiltinPluginName;
26
38
  _options: {
@@ -33,6 +45,7 @@ export declare class ConsumeSharedPlugin extends RspackBuiltinPlugin {
33
45
  packageName: string | undefined;
34
46
  singleton: boolean;
35
47
  eager: boolean;
48
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
36
49
  }][];
37
50
  enhanced: boolean;
38
51
  };
@@ -0,0 +1,35 @@
1
+ import type { Compiler } from '../Compiler.js';
2
+ import type { LibraryOptions, Plugins } from '../config/index.js';
3
+ import { type ModuleFederationManifestPluginOptions } from '../container/ModuleFederationManifestPlugin.js';
4
+ import type { Shared, SharedConfig } from './SharePlugin.js';
5
+ export type MakeRequired<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
6
+ export interface IndependentSharePluginOptions {
7
+ name: string;
8
+ shared: Shared;
9
+ library?: LibraryOptions;
10
+ outputDir?: string;
11
+ plugins?: Plugins;
12
+ treeShaking?: boolean;
13
+ manifest?: ModuleFederationManifestPluginOptions;
14
+ injectTreeShakingUsedExports?: boolean;
15
+ treeShakingSharedExcludePlugins?: string[];
16
+ }
17
+ export type ShareFallback = Record<string, [string, string, string][]>;
18
+ export declare class IndependentSharedPlugin {
19
+ mfName: string;
20
+ shared: Shared;
21
+ library?: LibraryOptions;
22
+ sharedOptions: [string, SharedConfig][];
23
+ outputDir: string;
24
+ plugins: Plugins;
25
+ treeShaking?: boolean;
26
+ manifest?: ModuleFederationManifestPluginOptions;
27
+ buildAssets: ShareFallback;
28
+ injectTreeShakingUsedExports?: boolean;
29
+ treeShakingSharedExcludePlugins?: string[];
30
+ name: string;
31
+ constructor(options: IndependentSharePluginOptions);
32
+ apply(compiler: Compiler): void;
33
+ private createIndependentCompilers;
34
+ private createIndependentCompiler;
35
+ }
@@ -23,7 +23,26 @@ type ProvidesEnhancedExtraConfig = {
23
23
  singleton?: boolean;
24
24
  strictVersion?: boolean;
25
25
  requiredVersion?: false | string;
26
+ /**
27
+ * Tree shaking strategy for the shared module.
28
+ */
29
+ treeShakingMode?: 'server-calc' | 'runtime-infer';
26
30
  };
31
+ export declare function normalizeProvideShareOptions<Enhanced extends boolean = false>(options: Provides<Enhanced>, shareScope?: string, enhanced?: boolean): [string, {
32
+ shareKey: string;
33
+ version: string | false | undefined;
34
+ shareScope: string;
35
+ eager: boolean;
36
+ } | {
37
+ singleton: boolean | undefined;
38
+ requiredVersion: string | false | undefined;
39
+ strictVersion: boolean | undefined;
40
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
41
+ shareKey: string;
42
+ version: string | false | undefined;
43
+ shareScope: string;
44
+ eager: boolean;
45
+ }][];
27
46
  export declare class ProvideSharedPlugin<Enhanced extends boolean = false> extends RspackBuiltinPlugin {
28
47
  name: BuiltinPluginName;
29
48
  _provides: [string, Omit<RawProvideOptions, 'key'>][];
@@ -9,6 +9,11 @@ export type SharedItem = string;
9
9
  export type SharedObject = {
10
10
  [k: string]: SharedConfig | SharedItem;
11
11
  };
12
+ export type TreeShakingConfig = {
13
+ usedExports?: string[];
14
+ mode?: 'server-calc' | 'runtime-infer';
15
+ filename?: string;
16
+ };
12
17
  export type SharedConfig = {
13
18
  eager?: boolean;
14
19
  import?: false | SharedItem;
@@ -19,7 +24,35 @@ export type SharedConfig = {
19
24
  singleton?: boolean;
20
25
  strictVersion?: boolean;
21
26
  version?: false | string;
27
+ treeShaking?: TreeShakingConfig;
22
28
  };
29
+ export type NormalizedSharedOptions = [string, SharedConfig][];
30
+ export declare function normalizeSharedOptions(shared: Shared): NormalizedSharedOptions;
31
+ export declare function createProvideShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
32
+ [x: string]: {
33
+ shareKey: string;
34
+ shareScope: string | undefined;
35
+ version: string | false | undefined;
36
+ eager: boolean | undefined;
37
+ singleton: boolean | undefined;
38
+ requiredVersion: string | false | undefined;
39
+ strictVersion: boolean | undefined;
40
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
41
+ };
42
+ }[];
43
+ export declare function createConsumeShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
44
+ [x: string]: {
45
+ import: string | false | undefined;
46
+ shareKey: string;
47
+ shareScope: string | undefined;
48
+ requiredVersion: string | false | undefined;
49
+ strictVersion: boolean | undefined;
50
+ singleton: boolean | undefined;
51
+ packageName: string | undefined;
52
+ eager: boolean | undefined;
53
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
54
+ };
55
+ }[];
23
56
  export declare class SharePlugin {
24
57
  _shareScope: string | undefined;
25
58
  _consumes: {
@@ -32,6 +65,7 @@ export declare class SharePlugin {
32
65
  singleton: boolean | undefined;
33
66
  packageName: string | undefined;
34
67
  eager: boolean | undefined;
68
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
35
69
  };
36
70
  }[];
37
71
  _provides: {
@@ -43,9 +77,11 @@ export declare class SharePlugin {
43
77
  singleton: boolean | undefined;
44
78
  requiredVersion: string | false | undefined;
45
79
  strictVersion: boolean | undefined;
80
+ treeShakingMode: "server-calc" | "runtime-infer" | undefined;
46
81
  };
47
82
  }[];
48
83
  _enhanced: boolean;
84
+ _sharedOptions: NormalizedSharedOptions;
49
85
  constructor(options: SharePluginOptions);
50
86
  apply(compiler: Compiler): void;
51
87
  }
@@ -0,0 +1,23 @@
1
+ import { type BuiltinPlugin, BuiltinPluginName, type RawSharedContainerPluginOptions } from '@rspack/binding';
2
+ import { RspackBuiltinPlugin } from '../builtin-plugin/base.js';
3
+ import type { Compiler } from '../Compiler.js';
4
+ import type { LibraryOptions } from '../config/index.js';
5
+ export type SharedContainerPluginOptions = {
6
+ mfName: string;
7
+ shareName: string;
8
+ version: string;
9
+ request: string;
10
+ library?: LibraryOptions;
11
+ independentShareFileName?: string;
12
+ };
13
+ export declare class SharedContainerPlugin extends RspackBuiltinPlugin {
14
+ name: BuiltinPluginName;
15
+ filename: string;
16
+ _options: RawSharedContainerPluginOptions;
17
+ _shareName: string;
18
+ _globalName: string;
19
+ constructor(options: SharedContainerPluginOptions);
20
+ getData(): (string | undefined)[];
21
+ raw(compiler: Compiler): BuiltinPlugin;
22
+ apply(compiler: Compiler): void;
23
+ }
@@ -0,0 +1,14 @@
1
+ import type { BuiltinPlugin } from '@rspack/binding';
2
+ import { BuiltinPluginName } from '@rspack/binding';
3
+ import { RspackBuiltinPlugin } from '../builtin-plugin/base.js';
4
+ import { type ModuleFederationManifestPluginOptions } from '../container/ModuleFederationManifestPlugin.js';
5
+ import type { NormalizedSharedOptions } from './SharePlugin.js';
6
+ export declare class SharedUsedExportsOptimizerPlugin extends RspackBuiltinPlugin {
7
+ name: BuiltinPluginName;
8
+ private sharedOptions;
9
+ private injectTreeShakingUsedExports;
10
+ private manifestOptions;
11
+ constructor(sharedOptions: NormalizedSharedOptions, injectTreeShakingUsedExports?: boolean, manifestOptions?: ModuleFederationManifestPluginOptions);
12
+ private buildOptions;
13
+ raw(): BuiltinPlugin | undefined;
14
+ }
@@ -0,0 +1,16 @@
1
+ import type { Compiler } from '../Compiler.js';
2
+ import type { ModuleFederationPluginOptions } from '../container/ModuleFederationPlugin.js';
3
+ export interface TreeshakingSharedPluginOptions {
4
+ mfConfig: ModuleFederationPluginOptions;
5
+ secondary?: boolean;
6
+ }
7
+ export declare class TreeShakingSharedPlugin {
8
+ mfConfig: ModuleFederationPluginOptions;
9
+ outputDir: string;
10
+ secondary?: boolean;
11
+ private _independentSharePlugin?;
12
+ name: string;
13
+ constructor(options: TreeshakingSharedPluginOptions);
14
+ apply(compiler: Compiler): void;
15
+ get buildAssets(): import("./IndependentSharedPlugin.js").ShareFallback;
16
+ }
@@ -1 +1,2 @@
1
1
  export declare function isRequiredVersion(str: string): boolean;
2
+ export declare const encodeName: (name: string, prefix?: string, withExt?: boolean) => string;
@@ -13,4 +13,4 @@ import Hash from './hash/index.js';
13
13
  * @param algorithm the algorithm name or a constructor creating a hash
14
14
  * @returns the hash
15
15
  */
16
- export declare const createHash: (algorithm: "debug" | "xxhash64" | "md4" | "native-md4" | (string & {}) | (new () => Hash)) => Hash;
16
+ export declare const createHash: (algorithm: "xxhash64" | "md4" | "native-md4" | (string & {}) | (new () => Hash)) => Hash;
package/dist/worker.js CHANGED
@@ -352,20 +352,6 @@ class BulkUpdateDecorator extends Hash {
352
352
  return void 0 !== digestCache && 'string' == typeof result && digestCache.set(buffer, result), result;
353
353
  }
354
354
  }
355
- class DebugHash extends Hash {
356
- string;
357
- constructor(){
358
- super(), this.string = '';
359
- }
360
- update(data) {
361
- let normalizedData;
362
- return (normalizedData = Buffer.isBuffer(data) ? data.toString('utf-8') : data).startsWith('debug-digest-') && (normalizedData = Buffer.from(normalizedData.slice(13), 'hex').toString()), this.string += `[${normalizedData}](${Error().stack?.split('\n', 3)[2]})\n`, this;
363
- }
364
- digest(encoding) {
365
- let result = `debug-digest-${Buffer.from(this.string).toString('hex')}`;
366
- return encoding ? result : Buffer.from(result);
367
- }
368
- }
369
355
  class WasmHashAdapter extends Hash {
370
356
  wasmHash;
371
357
  constructor(wasmHash){
@@ -381,8 +367,6 @@ class WasmHashAdapter extends Hash {
381
367
  let createHash_createHash = (algorithm)=>{
382
368
  if ('function' == typeof algorithm) return new BulkUpdateDecorator(()=>new algorithm());
383
369
  switch(algorithm){
384
- case 'debug':
385
- return new DebugHash();
386
370
  case 'xxhash64':
387
371
  return new WasmHashAdapter((()=>{
388
372
  if (!createXxhash64) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspack-debug/core",
3
- "version": "2.0.0-alpha.1",
3
+ "version": "2.0.0-beta.1",
4
4
  "webpackVersion": "5.75.0",
5
5
  "license": "MIT",
6
6
  "description": "The fast Rust-based web bundler with webpack-compatible API",
@@ -39,17 +39,18 @@
39
39
  "devDependencies": {
40
40
  "@ast-grep/napi": "^0.40.5",
41
41
  "@napi-rs/wasm-runtime": "1.0.7",
42
- "@rsbuild/plugin-node-polyfill": "^1.4.2",
43
- "@rslib/core": "0.19.2",
42
+ "@rsbuild/plugin-node-polyfill": "^1.4.3",
43
+ "@rspack/lite-tapable": "1.1.0",
44
+ "@rslib/core": "0.19.4",
44
45
  "@swc/types": "0.1.25",
45
- "@types/node": "^20.19.29",
46
+ "@types/node": "^20.19.31",
46
47
  "@types/watchpack": "^2.4.5",
47
48
  "browserslist-load-config": "^1.0.1",
48
49
  "browserslist-to-es-version": "^1.4.1",
49
50
  "enhanced-resolve": "5.18.4",
50
51
  "glob-to-regexp": "^0.4.1",
51
52
  "memfs": "4.53.0",
52
- "prebundle": "^1.6.0",
53
+ "prebundle": "^1.6.2",
53
54
  "tinypool": "^1.1.1",
54
55
  "tsx": "^4.21.0",
55
56
  "typescript": "^5.9.3",
@@ -57,11 +58,10 @@
57
58
  "webpack-sources": "3.3.3"
58
59
  },
59
60
  "dependencies": {
60
- "@rspack/lite-tapable": "1.1.0",
61
- "@rspack/binding": "npm:@rspack-debug/binding@2.0.0-alpha.1"
61
+ "@rspack/binding": "npm:@rspack-debug/binding@2.0.0-beta.1"
62
62
  },
63
63
  "peerDependencies": {
64
- "@module-federation/runtime-tools": ">=0.22.0",
64
+ "@module-federation/runtime-tools": "0.24.1",
65
65
  "@swc/helpers": ">=0.5.1"
66
66
  },
67
67
  "peerDependenciesMeta": {