@rspack-canary/browser 1.7.1-canary-becc2931-20260103070024 → 1.7.1-canary-cf4486a4-20260104102432

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.
@@ -540,10 +540,13 @@ export declare enum BuiltinPluginName {
540
540
  SplitChunksPlugin = 'SplitChunksPlugin',
541
541
  RemoveDuplicateModulesPlugin = 'RemoveDuplicateModulesPlugin',
542
542
  ShareRuntimePlugin = 'ShareRuntimePlugin',
543
+ SharedUsedExportsOptimizerPlugin = 'SharedUsedExportsOptimizerPlugin',
543
544
  ContainerPlugin = 'ContainerPlugin',
544
545
  ContainerReferencePlugin = 'ContainerReferencePlugin',
545
546
  ProvideSharedPlugin = 'ProvideSharedPlugin',
546
547
  ConsumeSharedPlugin = 'ConsumeSharedPlugin',
548
+ CollectSharedEntryPlugin = 'CollectSharedEntryPlugin',
549
+ SharedContainerPlugin = 'SharedContainerPlugin',
547
550
  ModuleFederationRuntimePlugin = 'ModuleFederationRuntimePlugin',
548
551
  ModuleFederationManifestPlugin = 'ModuleFederationManifestPlugin',
549
552
  NamedModuleIdsPlugin = 'NamedModuleIdsPlugin',
@@ -1837,6 +1840,11 @@ export interface RawCircularDependencyRspackPluginOptions {
1837
1840
  onEnd?: () => void
1838
1841
  }
1839
1842
 
1843
+ export interface RawCollectShareEntryPluginOptions {
1844
+ consumes: Array<RawConsumeOptions>
1845
+ filename?: string
1846
+ }
1847
+
1840
1848
  export interface RawCompilerPlatform {
1841
1849
  web?: boolean | null
1842
1850
  browser?: boolean | null
@@ -1857,6 +1865,7 @@ export interface RawConsumeOptions {
1857
1865
  strictVersion: boolean
1858
1866
  singleton: boolean
1859
1867
  eager: boolean
1868
+ treeshakeStrategy?: string
1860
1869
  }
1861
1870
 
1862
1871
  export interface RawConsumeSharedPluginOptions {
@@ -2470,14 +2479,8 @@ export interface RawModuleFederationManifestPluginOptions {
2470
2479
  buildInfo?: RawStatsBuildInfo
2471
2480
  }
2472
2481
 
2473
- export interface RawModuleFederationRuntimeExperimentsOptions {
2474
- asyncStartup?: boolean
2475
- }
2476
-
2477
2482
  export interface RawModuleFederationRuntimePluginOptions {
2478
2483
  entryRuntime?: string | undefined
2479
- experiments?: RawModuleFederationRuntimeExperimentsOptions
2480
- asyncStartup?: boolean
2481
2484
  }
2482
2485
 
2483
2486
  export interface RawModuleFilenameTemplateFnCtx {
@@ -2593,6 +2596,12 @@ export interface RawOptimizationOptions {
2593
2596
  avoidEntryIife: boolean
2594
2597
  }
2595
2598
 
2599
+ export interface RawOptimizeSharedConfig {
2600
+ shareKey: string
2601
+ treeshake: boolean
2602
+ usedExports?: Array<string>
2603
+ }
2604
+
2596
2605
  export interface RawOptions {
2597
2606
  name?: string
2598
2607
  mode?: undefined | 'production' | 'development' | 'none'
@@ -2693,6 +2702,7 @@ export interface RawProvideOptions {
2693
2702
  singleton?: boolean
2694
2703
  requiredVersion?: string | false | undefined
2695
2704
  strictVersion?: boolean
2705
+ treeshakeStrategy?: string
2696
2706
  }
2697
2707
 
2698
2708
  export interface RawRelated {
@@ -2829,6 +2839,21 @@ export interface RawRuntimeChunkOptions {
2829
2839
  name: string | ((entrypoint: { name: string }) => string)
2830
2840
  }
2831
2841
 
2842
+ export interface RawSharedContainerPluginOptions {
2843
+ name: string
2844
+ request: string
2845
+ version: string
2846
+ fileName?: string
2847
+ library: JsLibraryOptions
2848
+ }
2849
+
2850
+ export interface RawSharedUsedExportsOptimizerPluginOptions {
2851
+ shared: Array<RawOptimizeSharedConfig>
2852
+ injectUsedExports?: boolean
2853
+ manifestFileName?: string
2854
+ statsFileName?: string
2855
+ }
2856
+
2832
2857
  export interface RawSizeLimitsPluginOptions {
2833
2858
  assetFilter?: (assetFilename: string) => boolean
2834
2859
  hints?: "error" | "warning"
@@ -2866,6 +2891,8 @@ export interface RawSplitChunksOptions {
2866
2891
  export interface RawStatsBuildInfo {
2867
2892
  buildVersion: string
2868
2893
  buildName?: string
2894
+ target?: Array<string>
2895
+ plugins?: Array<string>
2869
2896
  }
2870
2897
 
2871
2898
  export interface RawStatsOptions {
Binary file
@@ -0,0 +1,22 @@
1
+ import { type BuiltinPlugin, BuiltinPluginName } from '@rspack/binding';
2
+ import { RspackBuiltinPlugin } from '../builtin-plugin/base';
3
+ import type { Compiler } from '../Compiler';
4
+ import { type NormalizedSharedOptions } from './SharePlugin';
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,22 @@ export type ConsumesConfig = {
20
20
  shareScope?: string;
21
21
  singleton?: boolean;
22
22
  strictVersion?: boolean;
23
+ /**
24
+ * Tree shaking strategy for the shared module.
25
+ */
26
+ treeshakeStrategy?: 'server' | 'infer';
23
27
  };
28
+ export declare function normalizeConsumeShareOptions(consumes: Consumes, shareScope?: string): [string, {
29
+ import: string | undefined;
30
+ shareScope: string;
31
+ shareKey: string;
32
+ requiredVersion: string | false | undefined;
33
+ strictVersion: boolean;
34
+ packageName: string | undefined;
35
+ singleton: boolean;
36
+ eager: boolean;
37
+ treeshakeStrategy: "server" | "infer" | undefined;
38
+ }][];
24
39
  export declare class ConsumeSharedPlugin extends RspackBuiltinPlugin {
25
40
  name: BuiltinPluginName;
26
41
  _options: {
@@ -33,6 +48,7 @@ export declare class ConsumeSharedPlugin extends RspackBuiltinPlugin {
33
48
  packageName: string | undefined;
34
49
  singleton: boolean;
35
50
  eager: boolean;
51
+ treeshakeStrategy: "server" | "infer" | undefined;
36
52
  }][];
37
53
  enhanced: boolean;
38
54
  };
@@ -0,0 +1,35 @@
1
+ import type { Compiler } from '../Compiler';
2
+ import type { LibraryOptions, Plugins } from '../config';
3
+ import { type ModuleFederationManifestPluginOptions } from '../container/ModuleFederationManifestPlugin';
4
+ import type { Shared, SharedConfig } from './SharePlugin';
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
+ treeshake?: boolean;
13
+ manifest?: ModuleFederationManifestPluginOptions;
14
+ injectUsedExports?: boolean;
15
+ treeshakeSharedExcludePlugins?: 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
+ treeshake?: boolean;
26
+ manifest?: ModuleFederationManifestPluginOptions;
27
+ buildAssets: ShareFallback;
28
+ injectUsedExports?: boolean;
29
+ treeshakeSharedExcludePlugins?: 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
+ treeshakeStrategy?: 'server' | '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
+ treeshakeStrategy: "server" | "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 TreeshakeConfig = {
13
+ usedExports?: string[];
14
+ strategy?: 'server' | '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
+ treeshake?: TreeshakeConfig;
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
+ treeshakeStrategy: "server" | "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
+ treeshakeStrategy: "server" | "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
+ treeshakeStrategy: "server" | "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
+ treeshakeStrategy: "server" | "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';
3
+ import type { Compiler } from '../Compiler';
4
+ import type { LibraryOptions } from '../config';
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';
4
+ import { type ModuleFederationManifestPluginOptions } from '../container/ModuleFederationManifestPlugin';
5
+ import type { NormalizedSharedOptions } from './SharePlugin';
6
+ export declare class SharedUsedExportsOptimizerPlugin extends RspackBuiltinPlugin {
7
+ name: BuiltinPluginName;
8
+ private sharedOptions;
9
+ private injectUsedExports;
10
+ private manifestOptions;
11
+ constructor(sharedOptions: NormalizedSharedOptions, injectUsedExports?: boolean, manifestOptions?: ModuleFederationManifestPluginOptions);
12
+ private buildOptions;
13
+ raw(): BuiltinPlugin | undefined;
14
+ }
@@ -0,0 +1,16 @@
1
+ import type { Compiler } from '../Compiler';
2
+ import type { ModuleFederationPluginOptions } from '../container/ModuleFederationPlugin';
3
+ export interface TreeshakeSharedPluginOptions {
4
+ mfConfig: ModuleFederationPluginOptions;
5
+ reShake?: boolean;
6
+ }
7
+ export declare class TreeShakeSharedPlugin {
8
+ mfConfig: ModuleFederationPluginOptions;
9
+ outputDir: string;
10
+ reShake?: boolean;
11
+ private _independentSharePlugin?;
12
+ name: string;
13
+ constructor(options: TreeshakeSharedPluginOptions);
14
+ apply(compiler: Compiler): void;
15
+ get buildAssets(): import("./IndependentSharedPlugin").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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspack-canary/browser",
3
- "version": "1.7.1-canary-becc2931-20260103070024",
3
+ "version": "1.7.1-canary-cf4486a4-20260104102432",
4
4
  "webpackVersion": "5.75.0",
5
5
  "license": "MIT",
6
6
  "description": "Rspack for running in the browser. This is still in early stage and may not follow the semver.",