Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
12d9786
feat(mf): capture rsc references in manifest
cursoragent Mar 4, 2026
2cc1a2b
test(mf): avoid named module ids in rsc manifest case
cursoragent Mar 4, 2026
fa51888
test(mf): add layered shared rsc fixture coverage
cursoragent Mar 5, 2026
3df6227
docs(mf): refresh mf and rsc state notes
cursoragent Mar 5, 2026
8a26aca
fix(mf): align manifest shared names with runtime keys
ScriptedAlchemy Mar 5, 2026
7fbcf76
fix(mf): preserve aliased remote and shared manifest links
ScriptedAlchemy Mar 6, 2026
9630d07
fix(mf): preserve aliased remote manifest lookups
ScriptedAlchemy Mar 6, 2026
b289858
test(mf): relax shared usage assertion
ScriptedAlchemy Mar 6, 2026
5686d5e
test(mf): remove brittle manifest debug assertions
ScriptedAlchemy Mar 6, 2026
f8e395d
fix(mf): restore legacy v1 single share scope
ScriptedAlchemy Mar 6, 2026
0695814
test(mf): add native serial coverage for rsc manifests
ScriptedAlchemy Mar 6, 2026
41216f6
Merge remote-tracking branch 'origin/feat/mf-layers' into cursor/mani…
ScriptedAlchemy Mar 7, 2026
3d3da69
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 7, 2026
d990649
chore(docs): drop ad hoc mf and rsc notes
ScriptedAlchemy Mar 8, 2026
d0861b8
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 8, 2026
8a9150d
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 11, 2026
2432630
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 11, 2026
d709acd
fix(mf): preserve manifest shared compatibility with main
ScriptedAlchemy Mar 11, 2026
521258e
fix(mf): stabilize manifest rsc metadata
ScriptedAlchemy Mar 11, 2026
1298bbc
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 11, 2026
f1f82d5
fix(mf): address clippy warning
ScriptedAlchemy Mar 11, 2026
4177c23
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 12, 2026
fb55d15
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 12, 2026
d84d858
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 12, 2026
9f86a4f
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 13, 2026
ee282a6
Merge branch 'feat/mf-layers' into cursor/manifest-rsc-client-data-d493
ScriptedAlchemy Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/node_binding/napi-binding.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2546,6 +2546,7 @@ export interface RawManifestExposeOption {

export interface RawManifestSharedOption {
name: string
shareKey?: string
version?: string
requiredVersion?: string
singleton?: boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ pub struct RawManifestExposeOption {
#[napi(object)]
pub struct RawManifestSharedOption {
pub name: String,
pub share_key: Option<String>,
pub version: Option<String>,
pub required_version: Option<String>,
pub singleton: Option<bool>,
Expand Down Expand Up @@ -457,7 +458,8 @@ impl From<RawModuleFederationManifestPluginOptions> for ModuleFederationManifest
.unwrap_or_default()
.into_iter()
.map(|shared| ManifestSharedOption {
name: shared.name,
name: shared.name.clone(),
share_key: shared.share_key.unwrap_or(shared.name),
version: shared.version,
required_version: shared.required_version,
singleton: shared.singleton,
Expand Down
35 changes: 35 additions & 0 deletions crates/rspack_plugin_mf/src/manifest/data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,16 @@ pub struct StatsExpose {
pub requires: Vec<String>,
#[serde(default)]
pub assets: StatsAssetsGroup,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StatsShared {
pub id: String,
pub name: String,
#[serde(rename = "shareKey")]
pub share_key: String,
pub version: String,
#[serde(default)]
pub requiredVersion: Option<String>,
Expand All @@ -56,6 +60,8 @@ pub struct StatsShared {
pub usedIn: Vec<String>,
#[serde(default)]
pub usedExports: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
Expand All @@ -68,6 +74,27 @@ pub struct StatsRemote {
pub entry: Option<String>,
#[serde(default)]
pub usedIn: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct RscActionRef {
pub id: String,
pub name: String,
}

#[derive(Debug, Serialize, Deserialize, Clone, Default)]
pub struct RscReferenceMeta {
pub lookup: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub moduleType: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<String>,
#[serde(default)]
pub clientReferences: Vec<String>,
#[serde(default)]
pub serverActions: Vec<RscActionRef>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
Expand Down Expand Up @@ -113,19 +140,25 @@ pub struct ManifestExpose {
pub name: String,
pub path: String,
pub assets: StatsAssetsGroup,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Clone)]
pub struct ManifestShared {
pub id: String,
pub name: String,
#[serde(rename = "shareKey")]
pub share_key: String,
pub version: String,
#[serde(default)]
pub requiredVersion: Option<String>,
#[serde(default)]
pub singleton: Option<bool>,
#[serde(default)]
pub assets: StatsAssetsGroup,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Clone)]
Expand All @@ -135,6 +168,8 @@ pub struct ManifestRemote {
pub alias: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub entry: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rsc: Option<RscReferenceMeta>,
}

#[derive(Debug, Serialize, Clone)]
Expand Down
Loading
Loading