@module-federation/runtime-core 0.0.0-next-20250515032930 → 0.0.0-next-20250522124810

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.
@@ -48,7 +48,7 @@ function isRemoteInfoWithEntry(remote) {
48
48
  return typeof remote.entry !== 'undefined';
49
49
  }
50
50
  function isPureRemoteEntry(remote) {
51
- return !remote.entry.includes('.json') && remote.entry.includes('.js');
51
+ return !remote.entry.includes('.json');
52
52
  }
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  async function safeWrapper(callback, disableWarn) {
@@ -196,7 +196,7 @@ function getGlobalFederationConstructor() {
196
196
  function setGlobalFederationConstructor(FederationConstructor, isDebug = sdk.isDebugMode()) {
197
197
  if (isDebug) {
198
198
  CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
199
- CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.13.1";
199
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.14.0";
200
200
  }
201
201
  }
202
202
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -648,7 +648,6 @@ function satisfy(version, range) {
648
648
  }
649
649
  const [, versionOperator, , versionMajor, versionMinor, versionPatch, versionPreRelease] = extractedVersion;
650
650
  const versionAtom = {
651
- operator: versionOperator,
652
651
  version: combineVersion(versionMajor, versionMinor, versionPatch, versionPreRelease),
653
652
  major: versionMajor,
654
653
  minor: versionMinor,
@@ -1692,9 +1691,12 @@ function snapshotPlugin() {
1692
1691
  return {
1693
1692
  name: 'snapshot-plugin',
1694
1693
  async afterResolve (args) {
1695
- const { remote, pkgNameOrAlias, expose, origin, remoteInfo } = args;
1694
+ const { remote, pkgNameOrAlias, expose, origin, remoteInfo, id } = args;
1696
1695
  if (!isRemoteInfoWithEntry(remote) || !isPureRemoteEntry(remote)) {
1697
- const { remoteSnapshot, globalSnapshot } = await origin.snapshotHandler.loadRemoteSnapshotInfo(remote);
1696
+ const { remoteSnapshot, globalSnapshot } = await origin.snapshotHandler.loadRemoteSnapshotInfo({
1697
+ moduleInfo: remote,
1698
+ id
1699
+ });
1698
1700
  assignRemoteInfo(remoteInfo, remoteSnapshot);
1699
1701
  // preloading assets
1700
1702
  const preloadOptions = {
@@ -1953,7 +1955,7 @@ const generatePreloadAssetsPlugin = function() {
1953
1955
 
1954
1956
  function getGlobalRemoteInfo(moduleInfo, origin) {
1955
1957
  const hostGlobalSnapshot = getGlobalSnapshotInfoByModuleInfo({
1956
- name: origin.options.name,
1958
+ name: origin.name,
1957
1959
  version: origin.options.version
1958
1960
  });
1959
1961
  // get remote detail info from global
@@ -1978,23 +1980,8 @@ function getGlobalRemoteInfo(moduleInfo, origin) {
1978
1980
  };
1979
1981
  }
1980
1982
  class SnapshotHandler {
1981
- async loadSnapshot(moduleInfo) {
1982
- const { options } = this.HostInstance;
1983
- const { hostGlobalSnapshot, remoteSnapshot, globalSnapshot } = this.getGlobalRemoteInfo(moduleInfo);
1984
- const { remoteSnapshot: globalRemoteSnapshot, globalSnapshot: globalSnapshotRes } = await this.hooks.lifecycle.loadSnapshot.emit({
1985
- options,
1986
- moduleInfo,
1987
- hostGlobalSnapshot,
1988
- remoteSnapshot,
1989
- globalSnapshot
1990
- });
1991
- return {
1992
- remoteSnapshot: globalRemoteSnapshot,
1993
- globalSnapshot: globalSnapshotRes
1994
- };
1995
- }
1996
1983
  // eslint-disable-next-line max-lines-per-function
1997
- async loadRemoteSnapshotInfo(moduleInfo) {
1984
+ async loadRemoteSnapshotInfo({ moduleInfo, id, expose }) {
1998
1985
  const { options } = this.HostInstance;
1999
1986
  await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
2000
1987
  options,
@@ -2081,6 +2068,8 @@ class SnapshotHandler {
2081
2068
  }
2082
2069
  }
2083
2070
  await this.hooks.lifecycle.afterLoadSnapshot.emit({
2071
+ id,
2072
+ host: this.HostInstance,
2084
2073
  options,
2085
2074
  moduleInfo,
2086
2075
  remoteSnapshot: mSnapshot
@@ -2618,7 +2607,9 @@ class RemoteHandler {
2618
2607
  await Promise.all(preloadOps.map(async (ops)=>{
2619
2608
  const { remote } = ops;
2620
2609
  const remoteInfo = getRemoteInfo(remote);
2621
- const { globalSnapshot, remoteSnapshot } = await host.snapshotHandler.loadRemoteSnapshotInfo(remote);
2610
+ const { globalSnapshot, remoteSnapshot } = await host.snapshotHandler.loadRemoteSnapshotInfo({
2611
+ moduleInfo: remote
2612
+ });
2622
2613
  const assets = await this.hooks.lifecycle.generatePreloadAssets.emit({
2623
2614
  origin: host,
2624
2615
  preloadOptions: ops,
@@ -2979,7 +2970,7 @@ class FederationHost {
2979
2970
  // maybe will change, temporarily for internal use only
2980
2971
  initContainer: new AsyncWaterfallHook('initContainer')
2981
2972
  });
2982
- this.version = "0.13.1";
2973
+ this.version = "0.14.0";
2983
2974
  this.moduleCache = new Map();
2984
2975
  this.loaderHook = new PluginSystem({
2985
2976
  // FIXME: may not be suitable , not open to the public yet
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as _extends, a as _object_without_properties_loose } from './polyfills.esm.js';
2
- import { createLogger, isBrowserEnv, isReactNativeEnv, isDebugMode, loadScriptNode, composeKeyWithSeparator, loadScript, safeToString, createLink, createScript, getResourceUrl, isManifestProvider, generateSnapshotFromManifest, warn as warn$1 } from '@module-federation/sdk';
2
+ import { createLogger, isBrowserEnv, isReactNativeEnv, isDebugMode, composeKeyWithSeparator, loadScriptNode, loadScript, safeToString, createLink, createScript, getResourceUrl, isManifestProvider, generateSnapshotFromManifest, warn as warn$1 } from '@module-federation/sdk';
3
3
  export { loadScript, loadScriptNode } from '@module-federation/sdk';
4
- import { getShortErrorMsg, RUNTIME_001, runtimeDescMap, RUNTIME_008, RUNTIME_002, RUNTIME_007, RUNTIME_003, RUNTIME_005, RUNTIME_006, RUNTIME_004 } from '@module-federation/error-codes';
4
+ import { getShortErrorMsg, RUNTIME_008, runtimeDescMap, RUNTIME_001, RUNTIME_002, RUNTIME_007, RUNTIME_003, RUNTIME_005, RUNTIME_006, RUNTIME_004 } from '@module-federation/error-codes';
5
5
 
6
6
  const LOG_CATEGORY = '[ Federation Runtime ]';
7
7
  // FIXME: pre-bundle ?
@@ -47,7 +47,7 @@ function isRemoteInfoWithEntry(remote) {
47
47
  return typeof remote.entry !== 'undefined';
48
48
  }
49
49
  function isPureRemoteEntry(remote) {
50
- return !remote.entry.includes('.json') && remote.entry.includes('.js');
50
+ return !remote.entry.includes('.json');
51
51
  }
52
52
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
53
  async function safeWrapper(callback, disableWarn) {
@@ -195,7 +195,7 @@ function getGlobalFederationConstructor() {
195
195
  function setGlobalFederationConstructor(FederationConstructor, isDebug = isDebugMode()) {
196
196
  if (isDebug) {
197
197
  CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
198
- CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.13.1";
198
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.14.0";
199
199
  }
200
200
  }
201
201
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -647,7 +647,6 @@ function satisfy(version, range) {
647
647
  }
648
648
  const [, versionOperator, , versionMajor, versionMinor, versionPatch, versionPreRelease] = extractedVersion;
649
649
  const versionAtom = {
650
- operator: versionOperator,
651
650
  version: combineVersion(versionMajor, versionMinor, versionPatch, versionPreRelease),
652
651
  major: versionMajor,
653
652
  minor: versionMinor,
@@ -1691,9 +1690,12 @@ function snapshotPlugin() {
1691
1690
  return {
1692
1691
  name: 'snapshot-plugin',
1693
1692
  async afterResolve (args) {
1694
- const { remote, pkgNameOrAlias, expose, origin, remoteInfo } = args;
1693
+ const { remote, pkgNameOrAlias, expose, origin, remoteInfo, id } = args;
1695
1694
  if (!isRemoteInfoWithEntry(remote) || !isPureRemoteEntry(remote)) {
1696
- const { remoteSnapshot, globalSnapshot } = await origin.snapshotHandler.loadRemoteSnapshotInfo(remote);
1695
+ const { remoteSnapshot, globalSnapshot } = await origin.snapshotHandler.loadRemoteSnapshotInfo({
1696
+ moduleInfo: remote,
1697
+ id
1698
+ });
1697
1699
  assignRemoteInfo(remoteInfo, remoteSnapshot);
1698
1700
  // preloading assets
1699
1701
  const preloadOptions = {
@@ -1952,7 +1954,7 @@ const generatePreloadAssetsPlugin = function() {
1952
1954
 
1953
1955
  function getGlobalRemoteInfo(moduleInfo, origin) {
1954
1956
  const hostGlobalSnapshot = getGlobalSnapshotInfoByModuleInfo({
1955
- name: origin.options.name,
1957
+ name: origin.name,
1956
1958
  version: origin.options.version
1957
1959
  });
1958
1960
  // get remote detail info from global
@@ -1977,23 +1979,8 @@ function getGlobalRemoteInfo(moduleInfo, origin) {
1977
1979
  };
1978
1980
  }
1979
1981
  class SnapshotHandler {
1980
- async loadSnapshot(moduleInfo) {
1981
- const { options } = this.HostInstance;
1982
- const { hostGlobalSnapshot, remoteSnapshot, globalSnapshot } = this.getGlobalRemoteInfo(moduleInfo);
1983
- const { remoteSnapshot: globalRemoteSnapshot, globalSnapshot: globalSnapshotRes } = await this.hooks.lifecycle.loadSnapshot.emit({
1984
- options,
1985
- moduleInfo,
1986
- hostGlobalSnapshot,
1987
- remoteSnapshot,
1988
- globalSnapshot
1989
- });
1990
- return {
1991
- remoteSnapshot: globalRemoteSnapshot,
1992
- globalSnapshot: globalSnapshotRes
1993
- };
1994
- }
1995
1982
  // eslint-disable-next-line max-lines-per-function
1996
- async loadRemoteSnapshotInfo(moduleInfo) {
1983
+ async loadRemoteSnapshotInfo({ moduleInfo, id, expose }) {
1997
1984
  const { options } = this.HostInstance;
1998
1985
  await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
1999
1986
  options,
@@ -2080,6 +2067,8 @@ class SnapshotHandler {
2080
2067
  }
2081
2068
  }
2082
2069
  await this.hooks.lifecycle.afterLoadSnapshot.emit({
2070
+ id,
2071
+ host: this.HostInstance,
2083
2072
  options,
2084
2073
  moduleInfo,
2085
2074
  remoteSnapshot: mSnapshot
@@ -2617,7 +2606,9 @@ class RemoteHandler {
2617
2606
  await Promise.all(preloadOps.map(async (ops)=>{
2618
2607
  const { remote } = ops;
2619
2608
  const remoteInfo = getRemoteInfo(remote);
2620
- const { globalSnapshot, remoteSnapshot } = await host.snapshotHandler.loadRemoteSnapshotInfo(remote);
2609
+ const { globalSnapshot, remoteSnapshot } = await host.snapshotHandler.loadRemoteSnapshotInfo({
2610
+ moduleInfo: remote
2611
+ });
2621
2612
  const assets = await this.hooks.lifecycle.generatePreloadAssets.emit({
2622
2613
  origin: host,
2623
2614
  preloadOptions: ops,
@@ -2978,7 +2969,7 @@ class FederationHost {
2978
2969
  // maybe will change, temporarily for internal use only
2979
2970
  initContainer: new AsyncWaterfallHook('initContainer')
2980
2971
  });
2981
- this.version = "0.13.1";
2972
+ this.version = "0.14.0";
2982
2973
  this.moduleCache = new Map();
2983
2974
  this.loaderHook = new PluginSystem({
2984
2975
  // FIXME: may not be suitable , not open to the public yet
@@ -33,6 +33,8 @@ export declare class SnapshotHandler {
33
33
  from: "global" | "manifest";
34
34
  }>;
35
35
  afterLoadSnapshot: AsyncWaterfallHook<{
36
+ id?: string;
37
+ host: FederationHost;
36
38
  options: Options;
37
39
  moduleInfo: Remote;
38
40
  remoteSnapshot: ModuleInfo;
@@ -41,11 +43,11 @@ export declare class SnapshotHandler {
41
43
  loaderHook: FederationHost['loaderHook'];
42
44
  manifestLoading: Record<string, Promise<ModuleInfo>>;
43
45
  constructor(HostInstance: FederationHost);
44
- loadSnapshot(moduleInfo: Remote): Promise<{
45
- remoteSnapshot: GlobalModuleInfo[string] | undefined;
46
- globalSnapshot: ReturnType<typeof getGlobalSnapshot>;
47
- }>;
48
- loadRemoteSnapshotInfo(moduleInfo: Remote): Promise<{
46
+ loadRemoteSnapshotInfo({ moduleInfo, id, expose, }: {
47
+ moduleInfo: Remote;
48
+ id?: string;
49
+ expose?: string;
50
+ }): Promise<{
49
51
  remoteSnapshot: ModuleInfo;
50
52
  globalSnapshot: GlobalModuleInfo;
51
53
  }> | never;
@@ -20,6 +20,7 @@ export type LoadShareExtraOptions = {
20
20
  resolver?: (sharedOptions: ShareInfos[string]) => Shared;
21
21
  };
22
22
  export interface RemoteInfo {
23
+ alias?: string;
23
24
  name: string;
24
25
  version?: string;
25
26
  buildVersion?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/runtime-core",
3
- "version": "0.0.0-next-20250515032930",
3
+ "version": "0.0.0-next-20250522124810",
4
4
  "type": "module",
5
5
  "author": "zhouxiao <codingzx@gmail.com>",
6
6
  "main": "./dist/index.cjs.cjs",
@@ -52,7 +52,7 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@module-federation/sdk": "0.0.0-next-20250515032930",
56
- "@module-federation/error-codes": "0.0.0-next-20250515032930"
55
+ "@module-federation/error-codes": "0.0.0-next-20250522124810",
56
+ "@module-federation/sdk": "0.0.0-next-20250522124810"
57
57
  }
58
58
  }