@rspack-canary/browser 1.7.0-canary-75cbc848-20251220203036 → 1.7.0-canary-22d591c5-20251222090400

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',
@@ -1838,6 +1841,11 @@ export interface RawCircularDependencyRspackPluginOptions {
1838
1841
  onEnd?: () => void
1839
1842
  }
1840
1843
 
1844
+ export interface RawCollectShareEntryPluginOptions {
1845
+ consumes: Array<RawConsumeOptions>
1846
+ filename?: string
1847
+ }
1848
+
1841
1849
  export interface RawConsumeOptions {
1842
1850
  key: string
1843
1851
  import?: string
@@ -1849,6 +1857,7 @@ export interface RawConsumeOptions {
1849
1857
  strictVersion: boolean
1850
1858
  singleton: boolean
1851
1859
  eager: boolean
1860
+ treeshakeStrategy?: string
1852
1861
  }
1853
1862
 
1854
1863
  export interface RawConsumeSharedPluginOptions {
@@ -2580,6 +2589,12 @@ export interface RawOptimizationOptions {
2580
2589
  avoidEntryIife: boolean
2581
2590
  }
2582
2591
 
2592
+ export interface RawOptimizeSharedConfig {
2593
+ shareKey: string
2594
+ treeshake: boolean
2595
+ usedExports?: Array<string>
2596
+ }
2597
+
2583
2598
  export interface RawOptions {
2584
2599
  name?: string
2585
2600
  mode?: undefined | 'production' | 'development' | 'none'
@@ -2680,6 +2695,7 @@ export interface RawProvideOptions {
2680
2695
  singleton?: boolean
2681
2696
  requiredVersion?: string | false | undefined
2682
2697
  strictVersion?: boolean
2698
+ treeshakeStrategy?: string
2683
2699
  }
2684
2700
 
2685
2701
  export interface RawRelated {
@@ -2816,6 +2832,21 @@ export interface RawRuntimeChunkOptions {
2816
2832
  name: string | ((entrypoint: { name: string }) => string)
2817
2833
  }
2818
2834
 
2835
+ export interface RawSharedContainerPluginOptions {
2836
+ name: string
2837
+ request: string
2838
+ version: string
2839
+ fileName?: string
2840
+ library: JsLibraryOptions
2841
+ }
2842
+
2843
+ export interface RawSharedUsedExportsOptimizerPluginOptions {
2844
+ shared: Array<RawOptimizeSharedConfig>
2845
+ injectUsedExports?: boolean
2846
+ manifestFileName?: string
2847
+ statsFileName?: string
2848
+ }
2849
+
2819
2850
  export interface RawSizeLimitsPluginOptions {
2820
2851
  assetFilter?: (assetFilename: string) => boolean
2821
2852
  hints?: "error" | "warning"
Binary file
@@ -0,0 +1,22 @@
1
+ import { type BuiltinPlugin, BuiltinPluginName } from "../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
+ treeshakeSharedExcludedPlugins?: 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
+ treeshakeSharedExcludedPlugins?: 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 "../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 "../binding";
2
+ import { BuiltinPluginName } from "../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,19 @@
1
+ import type { Compiler } from "../Compiler";
2
+ import type { Plugins } from "../config";
3
+ import type { ModuleFederationPluginOptions } from "../container/ModuleFederationPlugin";
4
+ export interface TreeshakeSharedPluginOptions {
5
+ mfConfig: ModuleFederationPluginOptions;
6
+ plugins?: Plugins;
7
+ reshake?: boolean;
8
+ }
9
+ export declare class TreeShakeSharedPlugin {
10
+ mfConfig: ModuleFederationPluginOptions;
11
+ outputDir: string;
12
+ plugins?: Plugins;
13
+ reshake?: boolean;
14
+ private _independentSharePlugin?;
15
+ name: string;
16
+ constructor(options: TreeshakeSharedPluginOptions);
17
+ apply(compiler: Compiler): void;
18
+ get buildAssets(): import("./IndependentSharedPlugin").ShareFallback;
19
+ }
@@ -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.0-canary-75cbc848-20251220203036",
3
+ "version": "1.7.0-canary-22d591c5-20251222090400",
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.",