@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.
- package/dist/Compilation.d.ts +1 -0
- package/dist/builtin-plugin/lazy-compilation/middleware.d.ts +1 -1
- package/dist/config/normalization.d.ts +1 -2
- package/dist/config/types.d.ts +106 -30
- package/dist/container/ModuleFederationManifestPlugin.d.ts +10 -3
- package/dist/container/ModuleFederationPlugin.d.ts +17 -1
- package/dist/exports.d.ts +4 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1233 -332
- package/dist/moduleFederationDefaultRuntime.js +1 -1
- package/dist/sharing/CollectSharedEntryPlugin.d.ts +22 -0
- package/dist/sharing/ConsumeSharedPlugin.d.ts +13 -0
- package/dist/sharing/IndependentSharedPlugin.d.ts +35 -0
- package/dist/sharing/ProvideSharedPlugin.d.ts +19 -0
- package/dist/sharing/SharePlugin.d.ts +36 -0
- package/dist/sharing/SharedContainerPlugin.d.ts +23 -0
- package/dist/sharing/SharedUsedExportsOptimizerPlugin.d.ts +14 -0
- package/dist/sharing/TreeShakingSharedPlugin.d.ts +16 -0
- package/dist/sharing/utils.d.ts +1 -0
- package/dist/util/createHash.d.ts +1 -1
- package/dist/worker.js +0 -16
- package/package.json +8 -8
|
@@ -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.
|
|
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
|
+
}
|
package/dist/sharing/utils.d.ts
CHANGED
|
@@ -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: "
|
|
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-
|
|
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.
|
|
43
|
-
"@
|
|
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.
|
|
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.
|
|
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/
|
|
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": "
|
|
64
|
+
"@module-federation/runtime-tools": "0.24.1",
|
|
65
65
|
"@swc/helpers": ">=0.5.1"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|