diff --git a/apps/tester-app/ios/Podfile.lock b/apps/tester-app/ios/Podfile.lock index b19517361..c7c4b5eba 100644 --- a/apps/tester-app/ios/Podfile.lock +++ b/apps/tester-app/ios/Podfile.lock @@ -1,6 +1,6 @@ PODS: - boost (1.84.0) - - callstack-repack (5.2.2): + - callstack-repack (5.2.3): - boost - DoubleConversion - fast_float @@ -2930,7 +2930,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - callstack-repack: c874fe60c49dcf3067bca0627b7ace673589737c + callstack-repack: 15b29626cee2b659cd3f9afa4e8c33b1d42f5c59 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 FBLazyVector: a867936a67af0d09c37935a1b900a1a3c795b6d1 @@ -3011,7 +3011,7 @@ SPEC CHECKSUMS: RNWorklets: 20451b83d42e7509f43599b405993e57e3a038af SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 - Yoga: b01392348aeea02064c21a2762a42893d82b60a7 + Yoga: 00013dd9cde63a2d98e8002fcc4f5ddb66c10782 PODFILE CHECKSUM: 6d7cbe03444d5e87210979fb32a0eca299d758fe diff --git a/apps/tester-federation-v2/ios/Podfile.lock b/apps/tester-federation-v2/ios/Podfile.lock index c3a3f72a2..be15337e5 100644 --- a/apps/tester-federation-v2/ios/Podfile.lock +++ b/apps/tester-federation-v2/ios/Podfile.lock @@ -1,6 +1,6 @@ PODS: - boost (1.84.0) - - callstack-repack (5.2.0): + - callstack-repack (5.2.3): - boost - DoubleConversion - fast_float @@ -2713,7 +2713,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - callstack-repack: 9c91d2c48b139e38919c656474f43ab0494b4c21 + callstack-repack: 15b29626cee2b659cd3f9afa4e8c33b1d42f5c59 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 FBLazyVector: a867936a67af0d09c37935a1b900a1a3c795b6d1 diff --git a/apps/tester-federation/ios/Podfile.lock b/apps/tester-federation/ios/Podfile.lock index 57aac8dc4..2b3064cbd 100644 --- a/apps/tester-federation/ios/Podfile.lock +++ b/apps/tester-federation/ios/Podfile.lock @@ -1,6 +1,6 @@ PODS: - boost (1.84.0) - - callstack-repack (5.2.0): + - callstack-repack (5.2.3): - boost - DoubleConversion - fast_float @@ -2713,7 +2713,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - callstack-repack: 9c91d2c48b139e38919c656474f43ab0494b4c21 + callstack-repack: 15b29626cee2b659cd3f9afa4e8c33b1d42f5c59 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 FBLazyVector: a867936a67af0d09c37935a1b900a1a3c795b6d1 @@ -2791,7 +2791,7 @@ SPEC CHECKSUMS: RNScreens: 5c7f22b19ee2e900e5de2c578471aeb153d1e502 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 - Yoga: 00013dd9cde63a2d98e8002fcc4f5ddb66c10782 + Yoga: b01392348aeea02064c21a2762a42893d82b60a7 PODFILE CHECKSUM: 16a059e985a55bc49163512a311428a48f715334 diff --git a/packages/repack/src/plugins/NativeEntryPlugin.ts b/packages/repack/src/plugins/NativeEntryPlugin/NativeEntryPlugin.ts similarity index 75% rename from packages/repack/src/plugins/NativeEntryPlugin.ts rename to packages/repack/src/plugins/NativeEntryPlugin/NativeEntryPlugin.ts index f215fba4f..26cc8f3e8 100644 --- a/packages/repack/src/plugins/NativeEntryPlugin.ts +++ b/packages/repack/src/plugins/NativeEntryPlugin/NativeEntryPlugin.ts @@ -1,7 +1,8 @@ import path from 'node:path'; import type { ResolveAlias, Compiler as RspackCompiler } from '@rspack/core'; import type { Compiler as WebpackCompiler } from 'webpack'; -import { isRspackCompiler, moveElementBefore } from '../helpers/index.js'; +import { isRspackCompiler, moveElementBefore } from '../../helpers/index.js'; +import { makePolyfillsRuntimeModule } from './PolyfillsRuntimeModule.js'; export interface NativeEntryPluginConfig { /** @@ -55,18 +56,37 @@ export class NativeEntryPlugin { path.join(reactNativePath, 'Libraries/Core/InitializeCore.js'); const initializeScriptManagerPath = require.resolve( - '../modules/InitializeScriptManager.js' + '../../modules/InitializeScriptManager.js' ); - const includeModulesPath = require.resolve('../modules/IncludeModules.js'); + const includeModulesPath = require.resolve( + '../../modules/IncludeModules.js' + ); + + const polyfillPaths = getReactNativePolyfills(); const nativeEntries = [ - ...getReactNativePolyfills(), + ...polyfillPaths, initializeCorePath, initializeScriptManagerPath, includeModulesPath, ]; + // Polyfills are entry modules (processed by loaders), but we also require them + // from a runtime module to guarantee they execute before Module Federation's + // startup wrapper. The duplicate require during startup is a cache hit. + compiler.hooks.compilation.tap('RepackNativeEntryPlugin', (compilation) => { + compilation.hooks.additionalTreeRuntimeRequirements.tap( + 'RepackNativeEntryPlugin', + (chunk) => { + compilation.addRuntimeModule( + chunk, + makePolyfillsRuntimeModule(compiler, { polyfillPaths }) + ); + } + ); + }); + compiler.hooks.entryOption.tap( { name: 'RepackNativeEntryPlugin', before: 'RepackDevelopmentPlugin' }, (_, entry) => { @@ -76,14 +96,12 @@ export class NativeEntryPlugin { ); } + // add native entries (including polyfills) to each declared entry point Object.keys(entry).forEach((entryName) => { - // runtime property defines the chunk name, otherwise it defaults to the entry key const entryChunkName = entry[entryName].runtime || entryName; - - // add native entries to all declared entry points for (const nativeEntry of nativeEntries) { new compiler.webpack.EntryPlugin(compiler.context, nativeEntry, { - name: entryChunkName, // prepends the entry to the chunk of specified name + name: entryChunkName, }).apply(compiler); } }); diff --git a/packages/repack/src/plugins/NativeEntryPlugin/PolyfillsRuntimeModule.ts b/packages/repack/src/plugins/NativeEntryPlugin/PolyfillsRuntimeModule.ts new file mode 100644 index 000000000..961efafd4 --- /dev/null +++ b/packages/repack/src/plugins/NativeEntryPlugin/PolyfillsRuntimeModule.ts @@ -0,0 +1,54 @@ +import type { + Compiler, + NormalModule, + RuntimeModule as RuntimeModuleType, +} from '@rspack/core'; + +interface PolyfillsRuntimeModuleConfig { + polyfillPaths: string[]; +} + +/** + * Runtime module that requires polyfill entry modules before the startup + * function (__webpack_require__.x), ensuring they run before Module Federation's + * embed_federation_runtime wrapper. Polyfills go through the normal loader + * pipeline as entry modules; this module only controls execution timing. + */ +export const makePolyfillsRuntimeModule = ( + compiler: Compiler, + moduleConfig: PolyfillsRuntimeModuleConfig +): RuntimeModuleType => { + const Template = compiler.webpack.Template; + const RuntimeModule = compiler.webpack.RuntimeModule; + const RuntimeGlobals = compiler.webpack.RuntimeGlobals; + + const PolyfillsRuntimeModule = class extends RuntimeModule { + constructor(private config: PolyfillsRuntimeModuleConfig) { + super('repack/polyfills', RuntimeModule.STAGE_BASIC); + } + + generate() { + const compilation = this.compilation!; + const chunk = this.chunk!; + const chunkGraph = compilation.chunkGraph; + const chunkModules = new Set(chunkGraph.getChunkModules(chunk)); + + const requireCalls = this.config.polyfillPaths + .map((polyfillPath) => { + for (const mod of compilation.modules) { + if ((mod as NormalModule).resource === polyfillPath) { + if (!chunkModules.has(mod)) return null; + const moduleId = chunkGraph.getModuleId(mod); + return `${RuntimeGlobals.require}(${JSON.stringify(moduleId)});`; + } + } + return null; + }) + .filter(Boolean) as string[]; + + return Template.asString(requireCalls); + } + }; + + return new PolyfillsRuntimeModule(moduleConfig); +}; diff --git a/packages/repack/src/plugins/NativeEntryPlugin/index.ts b/packages/repack/src/plugins/NativeEntryPlugin/index.ts new file mode 100644 index 000000000..52b9bf882 --- /dev/null +++ b/packages/repack/src/plugins/NativeEntryPlugin/index.ts @@ -0,0 +1,2 @@ +export { NativeEntryPlugin } from './NativeEntryPlugin.js'; +export type { NativeEntryPluginConfig } from './NativeEntryPlugin.js'; diff --git a/packages/repack/src/plugins/RepackPlugin.ts b/packages/repack/src/plugins/RepackPlugin.ts index bcd6b6ea9..9d6c7db00 100644 --- a/packages/repack/src/plugins/RepackPlugin.ts +++ b/packages/repack/src/plugins/RepackPlugin.ts @@ -3,7 +3,7 @@ import type { Compiler as WebpackCompiler } from 'webpack'; import { BabelPlugin } from './BabelPlugin.js'; import { DevelopmentPlugin } from './DevelopmentPlugin.js'; import { LoggerPlugin, type LoggerPluginConfig } from './LoggerPlugin.js'; -import { NativeEntryPlugin } from './NativeEntryPlugin.js'; +import { NativeEntryPlugin } from './NativeEntryPlugin/index.js'; import { OutputPlugin, type OutputPluginConfig } from './OutputPlugin/index.js'; import { RepackTargetPlugin } from './RepackTargetPlugin/index.js'; import { SourceMapPlugin } from './SourceMapPlugin.js'; diff --git a/packages/repack/src/plugins/index.ts b/packages/repack/src/plugins/index.ts index 143ce1168..74969765c 100644 --- a/packages/repack/src/plugins/index.ts +++ b/packages/repack/src/plugins/index.ts @@ -9,3 +9,4 @@ export * from './ModuleFederationPluginV1.js'; export * from './ModuleFederationPluginV2.js'; export * from './CodeSigningPlugin/index.js'; export * from './HermesBytecodePlugin/index.js'; +export * from './NativeEntryPlugin/index.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ac14166e..790ca9738 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -731,6 +731,15 @@ importers: '@callstack/repack': specifier: workspace:* version: link:../../packages/repack + '@module-federation/enhanced': + specifier: 2.0.1 + version: 2.0.1(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3)) + '@module-federation/enhanced-v15': + specifier: npm:@module-federation/enhanced@0.15.0 + version: '@module-federation/enhanced@0.15.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))' + '@module-federation/enhanced-v21': + specifier: npm:@module-federation/enhanced@0.21.0 + version: '@module-federation/enhanced@0.21.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))' '@rspack/core': specifier: 'catalog:' version: 1.6.0(@swc/helpers@0.5.18) @@ -811,13 +820,13 @@ importers: dependencies: '@callstack/rspress-preset': specifier: ^0.6.0 - version: 0.6.0(@rsbuild/core@1.3.5)(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 0.6.0(@rsbuild/core@1.3.5)(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@callstack/rspress-theme': specifier: ^0.6.0 - version: 0.6.0(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 0.6.0(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@rspress/core': specifier: 2.0.0 - version: 2.0.0(@types/react@18.3.3)(core-js@3.41.0) + version: 2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0) devDependencies: '@types/node': specifier: 'catalog:' @@ -1738,6 +1747,12 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.27.2': resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} engines: {node: '>=18'} @@ -1750,6 +1765,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.27.2': resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} engines: {node: '>=18'} @@ -1762,6 +1783,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.27.2': resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} engines: {node: '>=18'} @@ -1774,6 +1801,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.27.2': resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} engines: {node: '>=18'} @@ -1786,6 +1819,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.27.2': resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} engines: {node: '>=18'} @@ -1798,6 +1837,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.27.2': resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} engines: {node: '>=18'} @@ -1810,6 +1855,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.27.2': resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} engines: {node: '>=18'} @@ -1822,6 +1873,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.27.2': resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} engines: {node: '>=18'} @@ -1834,6 +1891,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.27.2': resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} engines: {node: '>=18'} @@ -1846,6 +1909,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.27.2': resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} engines: {node: '>=18'} @@ -1858,6 +1927,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.27.2': resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} engines: {node: '>=18'} @@ -1870,6 +1945,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.27.2': resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} engines: {node: '>=18'} @@ -1882,6 +1963,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.27.2': resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} engines: {node: '>=18'} @@ -1894,6 +1981,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.27.2': resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} engines: {node: '>=18'} @@ -1906,6 +1999,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.27.2': resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} engines: {node: '>=18'} @@ -1918,6 +2017,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.27.2': resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} engines: {node: '>=18'} @@ -1930,12 +2035,24 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.27.2': resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-arm64@0.27.2': resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} engines: {node: '>=18'} @@ -1948,12 +2065,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.27.2': resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-arm64@0.27.2': resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} engines: {node: '>=18'} @@ -1966,6 +2095,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.27.2': resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} engines: {node: '>=18'} @@ -1984,6 +2119,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.27.2': resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} engines: {node: '>=18'} @@ -1996,6 +2137,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.27.2': resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} engines: {node: '>=18'} @@ -2008,6 +2155,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.27.2': resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} engines: {node: '>=18'} @@ -2020,6 +2173,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.27.2': resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} engines: {node: '>=18'} @@ -2236,32 +2395,91 @@ packages: '@modern-js/node-bundle-require@2.65.1': resolution: {integrity: sha512-XpEkciVEfDbkkLUI662ZFlI9tXsUQtLXk4NRJDBGosNnk9uL2XszmC8sKsdCSLK8AYuPW2w6MTVWuJsOR0EU8A==} + '@modern-js/node-bundle-require@2.67.6': + resolution: {integrity: sha512-rRiDQkrm3kgn0E/GNrcvqo4c71PaUs2R8Xmpv6GUKbEr6lz7VNgfZmAhdAQPtNfRfiBe+1sFLzEcwfEdDo/dTA==} + + '@modern-js/node-bundle-require@2.68.2': + resolution: {integrity: sha512-MWk/pYx7KOsp+A/rN0as2ji/Ba8x0m129aqZ3Lj6T6CCTWdz0E/IsamPdTmF9Jnb6whQoBKtWSaLTCQlmCoY0Q==} + '@modern-js/utils@2.65.1': resolution: {integrity: sha512-HrChf19F+6nALo5XPra8ycjhXGQfGi23+S7Y2FLfTKe8vaNnky8duT/XvRWpbS4pp3SQj8ryO8m/qWSsJ1Rogw==} + '@modern-js/utils@2.67.6': + resolution: {integrity: sha512-cxY7HsSH0jIN3rlL6RZ0tgzC1tH0gHW++8X6h7sXCNCylhUdbGZI9yTGbpAS8bU7c97NmPaTKg+/ILt00Kju1Q==} + + '@modern-js/utils@2.68.2': + resolution: {integrity: sha512-revom/i/EhKfI0STNLo/AUbv7gY0JY0Ni2gO6P/Z4cTyZZRgd5j90678YB2DGn+LtmSrEWtUphyDH5Jn1RKjgg==} + '@module-federation/bridge-react-webpack-plugin@0.12.0': resolution: {integrity: sha512-OFIZQU9Qjrs+EI07DtEYhg1TPXvlBhgwPLep8ojL6Yx9qaZeQMV28jnfDurBiEyjAYGJJgJjo0EBn9CLIGCBUA==} + '@module-federation/bridge-react-webpack-plugin@0.15.0': + resolution: {integrity: sha512-bbinV0gC82x0JGrT6kNV1tQHi4UBxqY79mZJKWVbGpSMPM+nifC9y/nQCYhZZajT7D/5zIHNkP0BKrQmPA7ArA==} + + '@module-federation/bridge-react-webpack-plugin@0.21.0': + resolution: {integrity: sha512-k4C55EgRhvnErMztKAGakIFCidAT9f/5ErjDBJtcYCcrycFpEltIbQ5922+dPMuekYQGI8eBYLM34814kGI/6w==} + '@module-federation/bridge-react-webpack-plugin@0.8.9': resolution: {integrity: sha512-gM5fnWvFfTEfh5UjSmNod1H/np/pUUjvJnnN31ucKcZ21mL6wJo0A+Vfj8a5gv34S+1n5lWR1b6eVv9CofwgDQ==} + '@module-federation/bridge-react-webpack-plugin@2.0.1': + resolution: {integrity: sha512-D7LMW5EMAJShOMR1aZDAJ6s+MdsYDHaQyJADLQ3LaY0sne/BkVqkPikUwcO1IwOwKbXjYsDlQVOEvk9wZVRFhA==} + '@module-federation/cli@0.12.0': resolution: {integrity: sha512-OwnaT4vfvhq+XEuoijywn5nwi6xWLGV7eHR4rX785exL0Q2Qcktq5foUmK2PTfQSpov07DwOEyrVoJN/pM3cEQ==} engines: {node: '>=16.0.0'} hasBin: true + '@module-federation/cli@0.15.0': + resolution: {integrity: sha512-ZFQ7TA7vwSro4n21/+9cGxVkeRU9IcXcQGs1GIToz/JFvomTHbGN33iplR3GNMhuMNyXQ/wxe2gWkEmIBCzW2w==} + engines: {node: '>=16.0.0'} + hasBin: true + + '@module-federation/cli@0.21.0': + resolution: {integrity: sha512-nLsYHsD3CsocUwe58MZnFD2XvqS1C9sJW60kH3+Y2hYVFW9EkhPRuJGuoV2DS2EZlP22UfnZphqVZ08nwurLZw==} + engines: {node: '>=16.0.0'} + hasBin: true + + '@module-federation/cli@2.0.1': + resolution: {integrity: sha512-2SL5Y8iODNX10y9T3CBLhHjSXo4afnA1BK82m4sNfZebuVO+o34bxewqwod9xfWq9xhTZmOSFZ+n+lgTKRv+CQ==} + engines: {node: '>=16.0.0'} + hasBin: true + '@module-federation/data-prefetch@0.12.0': resolution: {integrity: sha512-DJNMGa7JP0StkjpwP5Rik34C8qSB/a9JatYJGsIDZreuDvqm/UvFoZboSLAjune/Svj9jOeX9kuIrpQ5kfnNRg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' + '@module-federation/data-prefetch@0.15.0': + resolution: {integrity: sha512-ivAnthD4SbBoT3590qLzCyKELGyfa7nj8BEjWjb6BNrP5Eu8sHX3Q2wHf76QsYfuwErtjaMU87N7dTe2ELZPVg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@module-federation/data-prefetch@0.21.0': + resolution: {integrity: sha512-cwvD55fqTx+XFlYQ/G+rOhWN0Jbd37PaVdyKPLtgYHQ+7DUya2H3xDH1RbSkDKw3esAn91NZq00nXEfL8ccvKA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + '@module-federation/data-prefetch@0.8.9': resolution: {integrity: sha512-doUzJ5uuLPrN5e/NMvKuyUE/lqiZFgGzFITwBF90/KKqOq7R2ZWh43R4RJgkUYfs/F119AYXZ9jxrSphIh+cjg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' + '@module-federation/data-prefetch@2.0.1': + resolution: {integrity: sha512-Kq0P1OABGt6QAvs6TaE/zY9Ut9Y/oJFrzoSF3eWaCYbUAr2KD2SpTyMsPz4ssBzjeKXTgimugh6tHHd6mpCBIQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + '@module-federation/dts-plugin@0.12.0': resolution: {integrity: sha512-QPSiOs/V1Tkch+c1yJHCPOMcCG1cH6wMTxybI9ubinZva6TkENKf8bXvL28gsN72MuY0f7hiR9CkN2dWO37U7g==} peerDependencies: @@ -2271,6 +2489,24 @@ packages: vue-tsc: optional: true + '@module-federation/dts-plugin@0.15.0': + resolution: {integrity: sha512-UztaFAhpCpsy+EUOP1BiqlYpRdD4h2TUITphCmThO1grOCqU7dYYwGjWNy37NtJeykRRznH3FU0+iGBG3Oiw6w==} + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + vue-tsc: + optional: true + + '@module-federation/dts-plugin@0.21.0': + resolution: {integrity: sha512-G191VJqnKijul0nMLAvzF8LpeXVOqeJMLVRAQXoiL1P2/Y1C5OctKGq7QevA93vhLu79Ck2OGr2pOd3yH9NvnQ==} + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + vue-tsc: + optional: true + '@module-federation/dts-plugin@0.8.9': resolution: {integrity: sha512-Q40yqdQvTV8QRoegjUquTejhLl2gZoPv623hc8MWmGuP2vXLBIJJ9iV849LkFLeE8xaUgtwmn2uCQeBh2aJNjg==} peerDependencies: @@ -2280,6 +2516,15 @@ packages: vue-tsc: optional: true + '@module-federation/dts-plugin@2.0.1': + resolution: {integrity: sha512-PLneTsf1fQS5/RTBedtLAAmCPRdMfIlhfJkOa8QH3WDJaQsqm8Wb3r2cTUBf2aNj/bP3aH/y6Hs9JFB/4x0l5g==} + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + vue-tsc: + optional: true + '@module-federation/enhanced@0.12.0': resolution: {integrity: sha512-n7fpcVcA33pR/uYLLLZw365icT2NQLhdZMWmmNUWbuNLO5DcpmbnlP7RNdU6kaNZQuKgazvdu4NwSarEm7rs9A==} hasBin: true @@ -2295,6 +2540,36 @@ packages: webpack: optional: true + '@module-federation/enhanced@0.15.0': + resolution: {integrity: sha512-YzGcjdggtR+VrNdIgT1nvhT+V6I+LnrdsLV3YfOB0iVkOe4+YFbDLZJK16CuYRSm/HTR38LVbziE/6tWcibKYw==} + hasBin: true + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + + '@module-federation/enhanced@0.21.0': + resolution: {integrity: sha512-fpeERj4ymaiY52hyLNLdOqMjOBvvmd3rcbBTyoss06B4XagW+RcDrQ+DImZot259Vbac6AxA1J4V1swFEmYEpA==} + hasBin: true + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + '@module-federation/enhanced@0.8.9': resolution: {integrity: sha512-feZUhznCyFkyivWNSFPN+FHMZmyrxlKBhWW8ldWsp/LlKIzWI75vMLimpiydBWnWTZgnOhQDBZGZVxSlfnfKHQ==} peerDependencies: @@ -2309,40 +2584,97 @@ packages: webpack: optional: true + '@module-federation/enhanced@2.0.1': + resolution: {integrity: sha512-EZIARQ/8ScoTP6PV8+E4SsmMYWK4ErrikZJ0G/FX8wvK8mCtdoKatFtvDN9++P6Nl78kN9zHYgAV4AHKdBVjfQ==} + hasBin: true + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + '@module-federation/error-codes@0.11.2': resolution: {integrity: sha512-ik1Qnn0I+WyEdprTck9WGlH41vGsVdUg8cfO+ZM02qOb2cZm5Vu3SlxGAobj6g7uAj0g8yINnd7h7Dci40BxQA==} '@module-federation/error-codes@0.12.0': resolution: {integrity: sha512-DEXQjopcBuGzp/NA9OVtASO0uZ6grVK5TIe0PjrbDRyZDxVaYQXKrISxBLOE+3nSIELE98tYpfxptm8WC9A8zA==} + '@module-federation/error-codes@0.15.0': + resolution: {integrity: sha512-CFJSF+XKwTcy0PFZ2l/fSUpR4z247+Uwzp1sXVkdIfJ/ATsnqf0Q01f51qqSEA6MYdQi6FKos9FIcu3dCpQNdg==} + + '@module-federation/error-codes@0.21.0': + resolution: {integrity: sha512-jZLvq4bkDUz9Qt5N+vKRGdJ1qSEt0W637xhAGgoaTNXY1aCoS99zeqWZzt1RCA6BAJjwVC+wz60VLMtZ+6ZQYw==} + '@module-federation/error-codes@0.21.2': resolution: {integrity: sha512-mGbPAAApgjmQUl4J7WAt20aV04a26TyS21GDEpOGXFEQG5FqmZnSJ6FqB8K19HgTKioBT1+fF/Ctl5bGGao/EA==} '@module-federation/error-codes@0.8.9': resolution: {integrity: sha512-yUA3GZjOy8Ll6l193faXir2veexDaUiLdmptbzC9tIee/iSQiSwIlibdTafCfqaJ62cLZaytOUdmAFAKLv8QQw==} + '@module-federation/error-codes@2.0.1': + resolution: {integrity: sha512-2bJF/ft+qL9L6Zvq2t/G9/f/0wFL73cM8/NJ04uyYz9BjIgvx28K5qu8/6+IwgEEKATG7vOhBBVj6wH3S+5ASA==} + '@module-federation/inject-external-runtime-core-plugin@0.12.0': resolution: {integrity: sha512-m3F2Xg02X+vAUcdgUzZjRHyIHjsWGPT2++bJ+k/jszHuLuJwFJJpuqlLZcEPow0gcfEIQXwojWex81iweTxYSQ==} peerDependencies: '@module-federation/runtime-tools': 0.12.0 + '@module-federation/inject-external-runtime-core-plugin@0.15.0': + resolution: {integrity: sha512-D6+FO2oj2Gr6QpfWv3i9RI9VJM2IFCMiFQKg5zOpKw1qdrPRWb35fiXAXGjw9RrVgrZz0Z1b9OP4zC9hfbpnQQ==} + peerDependencies: + '@module-federation/runtime-tools': 0.15.0 + + '@module-federation/inject-external-runtime-core-plugin@0.21.0': + resolution: {integrity: sha512-geluIyX4VwYGzmjqLpv9HcpoJ1lOxbvDBpRLQmd+m3UDuJWyY+yXuumg64CC7TUWD3DjZqiOLOCTd5XuLIQ5Nw==} + peerDependencies: + '@module-federation/runtime-tools': 0.21.0 + '@module-federation/inject-external-runtime-core-plugin@0.8.9': resolution: {integrity: sha512-F3s/3Iny20c0Y0CaXgOZdgl7PzgXj6ftCiT5FO6QWmyhzfl2R0o3KFuv54BmwtoimSFky1ShuC/jPluz4EGG1g==} peerDependencies: '@module-federation/runtime-tools': 0.8.9 + '@module-federation/inject-external-runtime-core-plugin@2.0.1': + resolution: {integrity: sha512-oAA7G+4GCHM+WRYfscR/x4GwCyM9CEqfdD9/x2L6y8mtLWK9anRLKTocsI759AvzXsbT1m3EQ5ki1O6wlwDu3g==} + peerDependencies: + '@module-federation/runtime-tools': 2.0.1 + '@module-federation/managers@0.12.0': resolution: {integrity: sha512-B8eYMtrz1wjtNZS54fYHvVWQoWk6x64/mkcGKLx00IZ8MuY8wUtZl/Ph7Q/HSJDIpJ3Rs/EA/gwaczx4WD5ZMw==} + '@module-federation/managers@0.15.0': + resolution: {integrity: sha512-YMIiFRgMHtuMcLBgOYyfkFpwU9vo6l0VjOZE5Wdr33DltQBUgp9Lo8+2AkyZ4TTkelqjvUWSNKKYV3MV4GL7gw==} + + '@module-federation/managers@0.21.0': + resolution: {integrity: sha512-9YJ7dro1sJeAz6wsZrhtM/K/I9s3CWaQpqcFYUYj4ZNMpVeCNpxKRRbewd/wBKel6T/wMNvAGN5iiJn54TGKSQ==} + '@module-federation/managers@0.8.9': resolution: {integrity: sha512-Fb28sa2iAqwSSSgiPBoL5Kp0RB9ZKJvdwLAEwZBV2c2LyZUqJCdTjmYuB5Q2sWB9wsudd/ijV6WWNK/nVoJxdA==} + '@module-federation/managers@2.0.1': + resolution: {integrity: sha512-KR01lSlcYRQ9C6hW2a8CQQtAE0LvfTLgtV/6ZNUTagw8sRfeDln+ggrZsYilKu9zl0i8RPDgpv/kS60o4lcxCQ==} + '@module-federation/manifest@0.12.0': resolution: {integrity: sha512-eutCjfh7hiHVDH2VAC5p46btr3CtT9mxVv6WVRZ34oRw6YSiNeSXqZSkOWuR4YIxaqqg8ufKojXwioXT3TONdQ==} + '@module-federation/manifest@0.15.0': + resolution: {integrity: sha512-x+UVFkdoKiNZhpUO8H/9jlM3nmC5bIApZvbC2TQuNva+ElCPotdhEO8jduiVkBnc2lr8D9qnFm8U5Kx/aFnGlA==} + + '@module-federation/manifest@0.21.0': + resolution: {integrity: sha512-m2evrpyO9OPF4ul/qHD5P76CfBgFpEDsNAorddNgDOZAjI75lqD4DX/R0gyuTXoSOPz0vFbLLWLy2adze5xRTA==} + '@module-federation/manifest@0.8.9': resolution: {integrity: sha512-48jIv50l0tTx+CVzs2JKMlTO0mcUvFRDxqO79nJaL1DLfpRQoCRQjCA8sXUp5PPIyJ8MHQqkHK/dnaal4NlR/A==} + '@module-federation/manifest@2.0.1': + resolution: {integrity: sha512-p8nYGjHWp17MsYdW/Vv0ogBDiTTsI1PHWPQbvVIqLQXDqwiesaRSRR1zziECXQoEL8lV5Bs+uSkcaJGhea9P+A==} + '@module-federation/rspack@0.12.0': resolution: {integrity: sha512-cfhByyhOYKAGn93CQ+G/1GtNQOZMxBP1mSgweQ/295Chj0NWynkwSyxEzLgjWTsvUdL3UgpgC8Atw3/WAy5KVg==} peerDependencies: @@ -2355,6 +2687,30 @@ packages: vue-tsc: optional: true + '@module-federation/rspack@0.15.0': + resolution: {integrity: sha512-nRz0JHcoTz+M5A+wXCG3981lmPeEm91EZe4q5GVfbVhvlAf/Ctd26qSz4lXuyUA1Ar5afBTxKvqWy7xh4wcg2A==} + peerDependencies: + '@rspack/core': '>=0.7' + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + + '@module-federation/rspack@0.21.0': + resolution: {integrity: sha512-XQtYSWZxqgpIJg0qEDG5gyQ3WPFrIWnLvA0feQ51Ll8Ubv6sVo+se+gycLbZxJ/rD7D93y523tiiNWjdER7vCg==} + peerDependencies: + '@rspack/core': '>=0.7' + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + '@module-federation/rspack@0.8.9': resolution: {integrity: sha512-wuHRx+aUYhsrAQzU5yKQksaOJ8pwhuQJDl8I86xmzkEsnxcWsZcn49xIR4t7v1HcYAqjBXLNXSoQwkIMH9zu2w==} peerDependencies: @@ -2367,48 +2723,93 @@ packages: vue-tsc: optional: true + '@module-federation/rspack@2.0.1': + resolution: {integrity: sha512-SAlNE8iclFmzrKtx3/C2GivXYx6nPzx4MgQV01QG/a4LpnLbwlxzdZu3rqQ2swp4NNWT/t/GT7Y+7gfhyVa7mg==} + peerDependencies: + '@rspack/core': ^0.7.0 || ^1.0.0 || ^2.0.0-0 + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + '@module-federation/runtime-core@0.11.2': resolution: {integrity: sha512-dia5kKybi6MFU0s5PgglJwN27k7n9Sf69Cy5xZ4BWaP0qlaXTsxHKO0PECHNt2Pt8jDdyU29sQ4DwAQfxpnXJQ==} '@module-federation/runtime-core@0.12.0': resolution: {integrity: sha512-373zBM54196KHURs/O8lry9trCAM3PPidvsF4YdrtahNc8YaQynml0mE3zdZeBnqP6H0/4OpPqMMjACI80Ht8w==} + '@module-federation/runtime-core@0.15.0': + resolution: {integrity: sha512-RYzI61fRDrhyhaEOXH3AgIGlHiot0wPFXu7F43cr+ZnTi+VlSYWLdlZ4NBuT9uV6JSmH54/c+tEZm5SXgKR2sQ==} + + '@module-federation/runtime-core@0.21.0': + resolution: {integrity: sha512-qIvhfON6TQxbybZFNJzJZ0woi0kXaTWIavPdcUxi41LpxxB5Ax1voqpY5NXE2Zq0Uek88b2OgDgXyvIuKM50XQ==} + '@module-federation/runtime-core@0.21.2': resolution: {integrity: sha512-LtDnccPxjR8Xqa3daRYr1cH/6vUzK3mQSzgvnfsUm1fXte5syX4ftWw3Eu55VdqNY3yREFRn77AXdu9PfPEZRw==} '@module-federation/runtime-core@0.6.17': resolution: {integrity: sha512-PXFN/TT9f64Un6NQYqH1Z0QLhpytW15jkZvTEOV8W7Ed319BECFI0Rv4xAsAGa8zJGFoaM/c7QOQfdFXtKj5Og==} + '@module-federation/runtime-core@2.0.1': + resolution: {integrity: sha512-gOuCPSHoQGUGwlxfSTMInFX+QvLxdEWegGGMiLdU5vqbXuva4E9M+kXBBO7/0MkcBPMmVs0wOJGm0XOLeV2f1Q==} + '@module-federation/runtime-tools@0.11.2': resolution: {integrity: sha512-4MJTGAxVq6vxQRkTtTlH7Mm9AVqgn0X9kdu+7RsL7T/qU+jeYsbrntN2CWG3GVVA8r5JddXyTI1iJ0VXQZLV1w==} '@module-federation/runtime-tools@0.12.0': resolution: {integrity: sha512-hZ0R1gtHOgMDzM0QQ8WjRxo2DHzXzlTWOYMBdSivDYRTktpEtM/DXZrmJZuRYh9cvVmbIz5D/v9s6M44eLfHMA==} + '@module-federation/runtime-tools@0.15.0': + resolution: {integrity: sha512-kzFn3ObUeBp5vaEtN1WMxhTYBuYEErxugu1RzFUERD21X3BZ+b4cWwdFJuBDlsmVjctIg/QSOoZoPXRKAO0foA==} + + '@module-federation/runtime-tools@0.21.0': + resolution: {integrity: sha512-XOjd5yLUTD12ay35rgSEhB9JIqxDZuC1OB6/aNyHf7IWPUNB7s4XZ2JlGn1xW8c0Asq1VRm15DF+BXmyDf+XnQ==} + '@module-federation/runtime-tools@0.21.2': resolution: {integrity: sha512-SgG9NWTYGNYcHSd5MepO3AXf6DNXriIo4sKKM4mu4RqfYhHyP+yNjnF/gvYJl52VD61g0nADmzLWzBqxOqk2tg==} '@module-federation/runtime-tools@0.8.9': resolution: {integrity: sha512-xBUGx1oOZNuxXjPGdTMrLtAIDrbrN6jE2Mgb9w1qr2mQ4AW9b5TOlxbARBoX4q98xt9oFCGU6Q0eW5XJpsl8AQ==} + '@module-federation/runtime-tools@2.0.1': + resolution: {integrity: sha512-AStdwBtsGB3jIfDg9oP+KyVPsimdaeHsP855gqCxDp1hi2+GKjlZWZx9ThkS8NytVSXSUysxqoUL1ivDoKgcCQ==} + '@module-federation/runtime@0.11.2': resolution: {integrity: sha512-Ya9u/L6z2LvhgpqxuKCB7LcigIIRf1BbaxAZIH7mzbq/A7rZtTP7v+73E433jvgiAlbAfPSZkeoYGele6hfRwA==} '@module-federation/runtime@0.12.0': resolution: {integrity: sha512-Cz9/7+gSvrdencwA8LXUMKnZdu0/flyN+yk6t3pkxfhvPJi3W65ZcalAKyOgyk2x8rEYrRSyEXu+/2DIFgrzmA==} + '@module-federation/runtime@0.15.0': + resolution: {integrity: sha512-dTPsCNum9Bhu3yPOcrPYq0YnM9eCMMMNB1wuiqf1+sFbQlNApF0vfZxooqz3ln0/MpgE0jerVvFsLVGfqvC9Ug==} + + '@module-federation/runtime@0.21.0': + resolution: {integrity: sha512-fl31G2x/+g8/KyMFAlxM8825inuAZu4FQiIg9X2wVKRD1Yx8svg12likGBiorVofO2gBTY7KQ+Nbc6Az90JKQQ==} + '@module-federation/runtime@0.21.2': resolution: {integrity: sha512-97jlOx4RAnAHMBTfgU5FBK6+V/pfT6GNX0YjSf8G+uJ3lFy74Y6kg/BevEkChTGw5waCLAkw/pw4LmntYcNN7g==} '@module-federation/runtime@0.8.9': resolution: {integrity: sha512-i+a+/hoT/c+EE52mT+gJrbA6DhL86PY9cd/dIv/oKpLz9i+yYBlG+RA+puc7YsUEO4irbFLvnIMq6AGDUKVzYA==} + '@module-federation/runtime@2.0.1': + resolution: {integrity: sha512-UQ72P5Oo40dS6vdhHetwTtIsbGciEr+bjoYvDgh1WLPfFlTYd8zo9cLfqaf3juuPfV3cMVARAVPmh16lQYpUGA==} + '@module-federation/sdk@0.11.2': resolution: {integrity: sha512-SBFe5xOamluT900J4AGBx+2/kCH/JbfqXoUwPSAC6PRzb8Y7LB0posnOGzmqYsLZXT37vp3d6AmJDsVoajDqxw==} '@module-federation/sdk@0.12.0': resolution: {integrity: sha512-vh3GcG90fxjbkMghK7iSWcMayi/y8U5DxI6mhEFuz11St3y1UgQO2TZYephL8nISFBld7DdiqAkimx+6Hb3hjQ==} + '@module-federation/sdk@0.15.0': + resolution: {integrity: sha512-PWiYbGcJrKUD6JZiEPihrXhV3bgXdll4bV7rU+opV7tHaun+Z0CdcawjZ82Xnpb8MCPGmqHwa1MPFeUs66zksw==} + + '@module-federation/sdk@0.21.0': + resolution: {integrity: sha512-tWQ2j+zH6hLaERcie186gwAULyWI/js4WSyzTF2d52ti8vKf+357S7IL4/96+AaTrvwP50NWeR8Igc176kaGTA==} + '@module-federation/sdk@0.21.2': resolution: {integrity: sha512-t2vHSJ1a9zjg7LLJoEghcytNLzeFCqOat5TbXTav5dgU0xXw82Cf0EfLrxiJL6uUpgbtyvUdqqa2DVAvMPjiiA==} @@ -2418,24 +2819,45 @@ packages: '@module-federation/sdk@0.8.9': resolution: {integrity: sha512-QJ60itWC/SPjqduT7wDiF8UGwVU/yJ/Sz+QbnoxB9b7gNLzvI//swAXTo9eOtKsCy/V2BMwjt0F3eOcfnaqllA==} + '@module-federation/sdk@2.0.1': + resolution: {integrity: sha512-32PwudojGjog51cwpTali7D6ud82oVgsyvOx9JjAzhvXBX96YI4mRsursuWcthDxmigJP9ZvUTXDuRUEDh1OQA==} + '@module-federation/third-party-dts-extractor@0.12.0': resolution: {integrity: sha512-CsK+O9QebjANqM4EClnYhdtFZhwnIx3jYfpL61OAUJL7aSDjHwguQD9egWqRZovfAFY+DnQpMiRuerwey1Sffg==} + '@module-federation/third-party-dts-extractor@0.15.0': + resolution: {integrity: sha512-rML74G1NB9wtHubXP+ZTMI5HZkYypN/E93w8Zkwr6rc/k1eoZZza2lghw2znCNeu3lDlhvI9i4iaVsJQrX4oQA==} + + '@module-federation/third-party-dts-extractor@0.21.0': + resolution: {integrity: sha512-8aWNbWs0IcuAhf/5321SiIFMAMIFQLE7ttlsOw6rb1U7S9u7LzGHR5eNPhKA7BT9OZUg/1aIa8/Ax2hAhj2VNw==} + '@module-federation/third-party-dts-extractor@0.8.9': resolution: {integrity: sha512-53v6B5zfhGlAPpH0SrlJDp9B6kcOcZaUPi6J4L/7ie5F0YVe0vq/mJGOOzAStN9ggJjSrjBZLFT3gFmBYM3Z9A==} + '@module-federation/third-party-dts-extractor@2.0.1': + resolution: {integrity: sha512-neKSr6FNUeGRh+YR57l/QZUzPytJXuJx+babF7j5iGJG3FP+kfizr6QD0hgVis5KEoXMVbQ8yyvG0slERizeyw==} + '@module-federation/webpack-bundler-runtime@0.11.2': resolution: {integrity: sha512-WdwIE6QF+MKs/PdVu0cKPETF743JB9PZ62/qf7Uo3gU4fjsUMc37RnbJZ/qB60EaHHfjwp1v6NnhZw1r4eVsnw==} '@module-federation/webpack-bundler-runtime@0.12.0': resolution: {integrity: sha512-IUAz0BdCGuaKIPcMTSD/dWxGjS0K4j4bBhAupRnDMMMOvJnZivVwj0KvmTeIUfyG+lEDNWLVP2pDVQEvGcCy4Q==} + '@module-federation/webpack-bundler-runtime@0.15.0': + resolution: {integrity: sha512-i+3wu2Ljh2TmuUpsnjwZVupOVqV50jP0ndA8PSP4gwMKlgdGeaZ4VH5KkHAXGr2eiYUxYLMrJXz1+eILJqeGDg==} + + '@module-federation/webpack-bundler-runtime@0.21.0': + resolution: {integrity: sha512-kxXf7TB0CRdtqsXUGhoV/e5+1gZpcjMHt1C6ZZWhLCHZTSpESqPHm2GUk41yzKj/0qn/QyDJ39NGKjALWLws4A==} + '@module-federation/webpack-bundler-runtime@0.21.2': resolution: {integrity: sha512-06R/NDY6Uh5RBIaBOFwYWzJCf1dIiQd/DFHToBVhejUT3ZFG7GzHEPIIsAGqMzne/JSmVsvjlXiJu7UthQ6rFA==} '@module-federation/webpack-bundler-runtime@0.8.9': resolution: {integrity: sha512-DYLvVi4b2MUYu/B4g5wIC5SHxiODboKHkYGHYapOhCcqOchca/N16gtiAI8eSNjJPc+fgUXUGIyGiB18IlFEeQ==} + '@module-federation/webpack-bundler-runtime@2.0.1': + resolution: {integrity: sha512-u1NId3SF4lHDTmD2CHFEszulmXmIq1TGw9JYvnLx5rKJL7xt3aNxcb1GvkaYbRNVBXhSMjJ75E5LsQlZzyBx9A==} + '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} @@ -4634,6 +5056,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + engines: {node: '>=18'} + hasBin: true + esbuild@0.27.2: resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} engines: {node: '>=18'} @@ -5759,6 +6186,14 @@ packages: resolution: {integrity: sha512-umfX9d3iuSxTQP4pnzLOz0HKnPg0FaUUIKcye2lOiz3KPu1Y3M3xlz76dISdFPQs37P9eJz1wUpcTS6KDPn9fA==} engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + koa@3.0.1: + resolution: {integrity: sha512-oDxVkRwPOHhGlxKIDiDB2h+/l05QPtefD7nSqRgDfZt8P+QVYFWjfeK8jANf5O2YXjk8egd7KntvXKYx82wOag==} + engines: {node: '>= 18'} + + koa@3.0.3: + resolution: {integrity: sha512-MeuwbCoN1daWS32/Ni5qkzmrOtQO2qrnfdxDHjrm6s4b59yG4nexAJ0pTEFyzjLp0pBVO80CZp0vW8Ze30Ebow==} + engines: {node: '>= 18'} + launch-editor@2.10.0: resolution: {integrity: sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==} @@ -6041,6 +6476,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + medium-zoom@1.1.0: resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} @@ -6237,10 +6676,18 @@ packages: resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -7719,6 +8166,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -9152,11 +9603,11 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true - '@callstack/rspress-preset@0.6.0(@rsbuild/core@1.3.5)(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@callstack/rspress-preset@0.6.0(@rsbuild/core@1.3.5)(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@callstack/rspress-theme': 0.6.0(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@rspress/core': 2.0.0(@types/react@18.3.3)(core-js@3.41.0) - '@rspress/plugin-sitemap': 2.0.1(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0)) + '@callstack/rspress-theme': 0.6.0(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@rspress/core': 2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0) + '@rspress/plugin-sitemap': 2.0.1(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0)) '@vercel/analytics': 1.5.0(react@19.2.4) rsbuild-plugin-open-graph: 1.0.2(@rsbuild/core@1.3.5) zod: 3.25.76 @@ -9171,9 +9622,9 @@ snapshots: - vue - vue-router - '@callstack/rspress-theme@0.6.0(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@callstack/rspress-theme@0.6.0(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@rspress/core': 2.0.0(@types/react@18.3.3)(core-js@3.41.0) + '@rspress/core': 2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -9362,120 +9813,183 @@ snapshots: dependencies: tslib: 2.8.1 + '@esbuild/aix-ppc64@0.25.5': + optional: true + '@esbuild/aix-ppc64@0.27.2': optional: true '@esbuild/android-arm64@0.17.19': optional: true + '@esbuild/android-arm64@0.25.5': + optional: true + '@esbuild/android-arm64@0.27.2': optional: true '@esbuild/android-arm@0.17.19': optional: true + '@esbuild/android-arm@0.25.5': + optional: true + '@esbuild/android-arm@0.27.2': optional: true '@esbuild/android-x64@0.17.19': optional: true + '@esbuild/android-x64@0.25.5': + optional: true + '@esbuild/android-x64@0.27.2': optional: true '@esbuild/darwin-arm64@0.17.19': optional: true + '@esbuild/darwin-arm64@0.25.5': + optional: true + '@esbuild/darwin-arm64@0.27.2': optional: true '@esbuild/darwin-x64@0.17.19': optional: true + '@esbuild/darwin-x64@0.25.5': + optional: true + '@esbuild/darwin-x64@0.27.2': optional: true '@esbuild/freebsd-arm64@0.17.19': optional: true + '@esbuild/freebsd-arm64@0.25.5': + optional: true + '@esbuild/freebsd-arm64@0.27.2': optional: true '@esbuild/freebsd-x64@0.17.19': optional: true + '@esbuild/freebsd-x64@0.25.5': + optional: true + '@esbuild/freebsd-x64@0.27.2': optional: true '@esbuild/linux-arm64@0.17.19': optional: true + '@esbuild/linux-arm64@0.25.5': + optional: true + '@esbuild/linux-arm64@0.27.2': optional: true '@esbuild/linux-arm@0.17.19': optional: true + '@esbuild/linux-arm@0.25.5': + optional: true + '@esbuild/linux-arm@0.27.2': optional: true '@esbuild/linux-ia32@0.17.19': optional: true + '@esbuild/linux-ia32@0.25.5': + optional: true + '@esbuild/linux-ia32@0.27.2': optional: true '@esbuild/linux-loong64@0.17.19': optional: true + '@esbuild/linux-loong64@0.25.5': + optional: true + '@esbuild/linux-loong64@0.27.2': optional: true '@esbuild/linux-mips64el@0.17.19': optional: true + '@esbuild/linux-mips64el@0.25.5': + optional: true + '@esbuild/linux-mips64el@0.27.2': optional: true '@esbuild/linux-ppc64@0.17.19': optional: true + '@esbuild/linux-ppc64@0.25.5': + optional: true + '@esbuild/linux-ppc64@0.27.2': optional: true '@esbuild/linux-riscv64@0.17.19': optional: true + '@esbuild/linux-riscv64@0.25.5': + optional: true + '@esbuild/linux-riscv64@0.27.2': optional: true '@esbuild/linux-s390x@0.17.19': optional: true + '@esbuild/linux-s390x@0.25.5': + optional: true + '@esbuild/linux-s390x@0.27.2': optional: true '@esbuild/linux-x64@0.17.19': optional: true + '@esbuild/linux-x64@0.25.5': + optional: true + '@esbuild/linux-x64@0.27.2': optional: true + '@esbuild/netbsd-arm64@0.25.5': + optional: true + '@esbuild/netbsd-arm64@0.27.2': optional: true '@esbuild/netbsd-x64@0.17.19': optional: true + '@esbuild/netbsd-x64@0.25.5': + optional: true + '@esbuild/netbsd-x64@0.27.2': optional: true + '@esbuild/openbsd-arm64@0.25.5': + optional: true + '@esbuild/openbsd-arm64@0.27.2': optional: true '@esbuild/openbsd-x64@0.17.19': optional: true + '@esbuild/openbsd-x64@0.25.5': + optional: true + '@esbuild/openbsd-x64@0.27.2': optional: true @@ -9485,24 +9999,36 @@ snapshots: '@esbuild/sunos-x64@0.17.19': optional: true + '@esbuild/sunos-x64@0.25.5': + optional: true + '@esbuild/sunos-x64@0.27.2': optional: true '@esbuild/win32-arm64@0.17.19': optional: true + '@esbuild/win32-arm64@0.25.5': + optional: true + '@esbuild/win32-arm64@0.27.2': optional: true '@esbuild/win32-ia32@0.17.19': optional: true + '@esbuild/win32-ia32@0.25.5': + optional: true + '@esbuild/win32-ia32@0.27.2': optional: true '@esbuild/win32-x64@0.17.19': optional: true + '@esbuild/win32-x64@0.25.5': + optional: true + '@esbuild/win32-x64@0.27.2': optional: true @@ -9868,6 +10394,18 @@ snapshots: '@swc/helpers': 0.5.13 esbuild: 0.17.19 + '@modern-js/node-bundle-require@2.67.6': + dependencies: + '@modern-js/utils': 2.67.6 + '@swc/helpers': 0.5.18 + esbuild: 0.17.19 + + '@modern-js/node-bundle-require@2.68.2': + dependencies: + '@modern-js/utils': 2.68.2 + '@swc/helpers': 0.5.18 + esbuild: 0.25.5 + '@modern-js/utils@2.65.1': dependencies: '@swc/helpers': 0.5.13 @@ -9875,18 +10413,50 @@ snapshots: lodash: 4.17.21 rslog: 1.2.3 + '@modern-js/utils@2.67.6': + dependencies: + '@swc/helpers': 0.5.18 + caniuse-lite: 1.0.30001716 + lodash: 4.17.21 + rslog: 1.2.3 + + '@modern-js/utils@2.68.2': + dependencies: + '@swc/helpers': 0.5.18 + caniuse-lite: 1.0.30001716 + lodash: 4.17.21 + rslog: 1.2.3 + '@module-federation/bridge-react-webpack-plugin@0.12.0': dependencies: '@module-federation/sdk': 0.12.0 '@types/semver': 7.5.8 semver: 7.6.3 + '@module-federation/bridge-react-webpack-plugin@0.15.0': + dependencies: + '@module-federation/sdk': 0.15.0 + '@types/semver': 7.5.8 + semver: 7.6.3 + + '@module-federation/bridge-react-webpack-plugin@0.21.0': + dependencies: + '@module-federation/sdk': 0.21.0 + '@types/semver': 7.5.8 + semver: 7.6.3 + '@module-federation/bridge-react-webpack-plugin@0.8.9': dependencies: '@module-federation/sdk': 0.8.9 '@types/semver': 7.5.8 semver: 7.6.3 + '@module-federation/bridge-react-webpack-plugin@2.0.1': + dependencies: + '@module-federation/sdk': 2.0.1 + '@types/semver': 7.5.8 + semver: 7.6.3 + '@module-federation/cli@0.12.0(typescript@5.8.3)': dependencies: '@modern-js/node-bundle-require': 2.65.1 @@ -9902,6 +10472,51 @@ snapshots: - utf-8-validate - vue-tsc + '@module-federation/cli@0.15.0(typescript@5.8.3)': + dependencies: + '@modern-js/node-bundle-require': 2.67.6 + '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3) + '@module-federation/sdk': 0.15.0 + chalk: 3.0.0 + commander: 11.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + + '@module-federation/cli@0.21.0(typescript@5.8.3)': + dependencies: + '@modern-js/node-bundle-require': 2.68.2 + '@module-federation/dts-plugin': 0.21.0(typescript@5.8.3) + '@module-federation/sdk': 0.21.0 + chalk: 3.0.0 + commander: 11.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + + '@module-federation/cli@2.0.1(typescript@5.8.3)': + dependencies: + '@module-federation/dts-plugin': 2.0.1(typescript@5.8.3) + '@module-federation/sdk': 2.0.1 + chalk: 3.0.0 + commander: 11.1.0 + jiti: 2.4.2 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + '@module-federation/data-prefetch@0.12.0(react-dom@19.2.4(react@19.1.0))(react@19.1.0)': dependencies: '@module-federation/runtime': 0.12.0 @@ -9910,6 +10525,22 @@ snapshots: react: 19.1.0 react-dom: 19.2.4(react@19.1.0) + '@module-federation/data-prefetch@0.15.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@module-federation/runtime': 0.15.0 + '@module-federation/sdk': 0.15.0 + fs-extra: 9.1.0 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@module-federation/data-prefetch@0.21.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@module-federation/runtime': 0.21.0 + '@module-federation/sdk': 0.21.0 + fs-extra: 9.1.0 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + '@module-federation/data-prefetch@0.8.9(react-dom@19.2.4(react@19.1.0))(react@19.1.0)': dependencies: '@module-federation/runtime': 0.8.9 @@ -9918,19 +10549,78 @@ snapshots: react: 19.1.0 react-dom: 19.2.4(react@19.1.0) - '@module-federation/dts-plugin@0.12.0(typescript@5.8.3)': + '@module-federation/data-prefetch@2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@module-federation/runtime': 2.0.1 + '@module-federation/sdk': 2.0.1 + fs-extra: 9.1.0 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@module-federation/dts-plugin@0.12.0(typescript@5.8.3)': + dependencies: + '@module-federation/error-codes': 0.12.0 + '@module-federation/managers': 0.12.0 + '@module-federation/sdk': 0.12.0 + '@module-federation/third-party-dts-extractor': 0.12.0 + adm-zip: 0.5.16 + ansi-colors: 4.1.3 + axios: 1.8.4 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + koa: 2.16.1 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: 9.3.0 + typescript: 5.8.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/dts-plugin@0.15.0(typescript@5.8.3)': + dependencies: + '@module-federation/error-codes': 0.15.0 + '@module-federation/managers': 0.15.0 + '@module-federation/sdk': 0.15.0 + '@module-federation/third-party-dts-extractor': 0.15.0 + adm-zip: 0.5.16 + ansi-colors: 4.1.3 + axios: 1.13.2 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + koa: 2.16.1 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: 9.3.0 + typescript: 5.8.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/dts-plugin@0.21.0(typescript@5.8.3)': dependencies: - '@module-federation/error-codes': 0.12.0 - '@module-federation/managers': 0.12.0 - '@module-federation/sdk': 0.12.0 - '@module-federation/third-party-dts-extractor': 0.12.0 + '@module-federation/error-codes': 0.21.0 + '@module-federation/managers': 0.21.0 + '@module-federation/sdk': 0.21.0 + '@module-federation/third-party-dts-extractor': 0.21.0 adm-zip: 0.5.16 ansi-colors: 4.1.3 - axios: 1.8.4 + axios: 1.13.2 chalk: 3.0.0 fs-extra: 9.1.0 isomorphic-ws: 5.0.0(ws@8.18.0) - koa: 2.16.1 + koa: 3.0.1 lodash.clonedeepwith: 4.5.0 log4js: 6.9.1 node-schedule: 2.1.1 @@ -9951,7 +10641,7 @@ snapshots: '@module-federation/third-party-dts-extractor': 0.8.9 adm-zip: 0.5.16 ansi-colors: 4.1.3 - axios: 1.8.4 + axios: 1.13.2 chalk: 3.0.0 fs-extra: 9.1.0 isomorphic-ws: 5.0.0(ws@8.18.0) @@ -9968,6 +10658,31 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/dts-plugin@2.0.1(typescript@5.8.3)': + dependencies: + '@module-federation/error-codes': 2.0.1 + '@module-federation/managers': 2.0.1 + '@module-federation/sdk': 2.0.1 + '@module-federation/third-party-dts-extractor': 2.0.1 + adm-zip: 0.5.16 + ansi-colors: 4.1.3 + axios: 1.13.2 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + koa: 3.0.3 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: 9.3.0 + typescript: 5.8.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + '@module-federation/enhanced@0.12.0(@rspack/core@1.6.0(@swc/helpers@0.5.17))(react-dom@19.2.4(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.12.0 @@ -9996,6 +10711,62 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/enhanced@0.15.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.15.0 + '@module-federation/cli': 0.15.0(typescript@5.8.3) + '@module-federation/data-prefetch': 0.15.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3) + '@module-federation/error-codes': 0.15.0 + '@module-federation/inject-external-runtime-core-plugin': 0.15.0(@module-federation/runtime-tools@0.15.0) + '@module-federation/managers': 0.15.0 + '@module-federation/manifest': 0.15.0(typescript@5.8.3) + '@module-federation/rspack': 0.15.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3) + '@module-federation/runtime-tools': 0.15.0 + '@module-federation/sdk': 0.15.0 + btoa: 1.2.1 + schema-utils: 4.3.2 + upath: 2.0.1 + optionalDependencies: + typescript: 5.8.3 + webpack: 5.100.2(@swc/core@1.13.3) + transitivePeerDependencies: + - '@rspack/core' + - bufferutil + - debug + - react + - react-dom + - supports-color + - utf-8-validate + + '@module-federation/enhanced@0.21.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.21.0 + '@module-federation/cli': 0.21.0(typescript@5.8.3) + '@module-federation/data-prefetch': 0.21.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@module-federation/dts-plugin': 0.21.0(typescript@5.8.3) + '@module-federation/error-codes': 0.21.0 + '@module-federation/inject-external-runtime-core-plugin': 0.21.0(@module-federation/runtime-tools@0.21.0) + '@module-federation/managers': 0.21.0 + '@module-federation/manifest': 0.21.0(typescript@5.8.3) + '@module-federation/rspack': 0.21.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3) + '@module-federation/runtime-tools': 0.21.0 + '@module-federation/sdk': 0.21.0 + btoa: 1.2.1 + schema-utils: 4.3.2 + upath: 2.0.1 + optionalDependencies: + typescript: 5.8.3 + webpack: 5.100.2(@swc/core@1.13.3) + transitivePeerDependencies: + - '@rspack/core' + - bufferutil + - debug + - react + - react-dom + - supports-color + - utf-8-validate + '@module-federation/enhanced@0.8.9(@rspack/core@1.6.0(@swc/helpers@0.5.17))(react-dom@19.2.4(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.8.9 @@ -10022,34 +10793,98 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/enhanced@2.0.1(@rspack/core@1.6.0(@swc/helpers@0.5.18))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.8.3)(webpack@5.100.2(@swc/core@1.13.3))': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 2.0.1 + '@module-federation/cli': 2.0.1(typescript@5.8.3) + '@module-federation/data-prefetch': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@module-federation/dts-plugin': 2.0.1(typescript@5.8.3) + '@module-federation/error-codes': 2.0.1 + '@module-federation/inject-external-runtime-core-plugin': 2.0.1(@module-federation/runtime-tools@2.0.1) + '@module-federation/managers': 2.0.1 + '@module-federation/manifest': 2.0.1(typescript@5.8.3) + '@module-federation/rspack': 2.0.1(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3) + '@module-federation/runtime-tools': 2.0.1 + '@module-federation/sdk': 2.0.1 + btoa: 1.2.1 + schema-utils: 4.3.2 + upath: 2.0.1 + optionalDependencies: + typescript: 5.8.3 + webpack: 5.100.2(@swc/core@1.13.3) + transitivePeerDependencies: + - '@rspack/core' + - bufferutil + - debug + - react + - react-dom + - supports-color + - utf-8-validate + '@module-federation/error-codes@0.11.2': {} '@module-federation/error-codes@0.12.0': {} + '@module-federation/error-codes@0.15.0': {} + + '@module-federation/error-codes@0.21.0': {} + '@module-federation/error-codes@0.21.2': {} '@module-federation/error-codes@0.8.9': {} + '@module-federation/error-codes@2.0.1': {} + '@module-federation/inject-external-runtime-core-plugin@0.12.0(@module-federation/runtime-tools@0.12.0)': dependencies: '@module-federation/runtime-tools': 0.12.0 + '@module-federation/inject-external-runtime-core-plugin@0.15.0(@module-federation/runtime-tools@0.15.0)': + dependencies: + '@module-federation/runtime-tools': 0.15.0 + + '@module-federation/inject-external-runtime-core-plugin@0.21.0(@module-federation/runtime-tools@0.21.0)': + dependencies: + '@module-federation/runtime-tools': 0.21.0 + '@module-federation/inject-external-runtime-core-plugin@0.8.9(@module-federation/runtime-tools@0.8.9)': dependencies: '@module-federation/runtime-tools': 0.8.9 + '@module-federation/inject-external-runtime-core-plugin@2.0.1(@module-federation/runtime-tools@2.0.1)': + dependencies: + '@module-federation/runtime-tools': 2.0.1 + '@module-federation/managers@0.12.0': dependencies: '@module-federation/sdk': 0.12.0 find-pkg: 2.0.0 fs-extra: 9.1.0 + '@module-federation/managers@0.15.0': + dependencies: + '@module-federation/sdk': 0.15.0 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + + '@module-federation/managers@0.21.0': + dependencies: + '@module-federation/sdk': 0.21.0 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + '@module-federation/managers@0.8.9': dependencies: '@module-federation/sdk': 0.8.9 find-pkg: 2.0.0 fs-extra: 9.1.0 + '@module-federation/managers@2.0.1': + dependencies: + '@module-federation/sdk': 2.0.1 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + '@module-federation/manifest@0.12.0(typescript@5.8.3)': dependencies: '@module-federation/dts-plugin': 0.12.0(typescript@5.8.3) @@ -10065,6 +10900,36 @@ snapshots: - utf-8-validate - vue-tsc + '@module-federation/manifest@0.15.0(typescript@5.8.3)': + dependencies: + '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3) + '@module-federation/managers': 0.15.0 + '@module-federation/sdk': 0.15.0 + chalk: 3.0.0 + find-pkg: 2.0.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + + '@module-federation/manifest@0.21.0(typescript@5.8.3)': + dependencies: + '@module-federation/dts-plugin': 0.21.0(typescript@5.8.3) + '@module-federation/managers': 0.21.0 + '@module-federation/sdk': 0.21.0 + chalk: 3.0.0 + find-pkg: 2.0.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + '@module-federation/manifest@0.8.9(typescript@5.8.3)': dependencies: '@module-federation/dts-plugin': 0.8.9(typescript@5.8.3) @@ -10080,6 +10945,21 @@ snapshots: - utf-8-validate - vue-tsc + '@module-federation/manifest@2.0.1(typescript@5.8.3)': + dependencies: + '@module-federation/dts-plugin': 2.0.1(typescript@5.8.3) + '@module-federation/managers': 2.0.1 + '@module-federation/sdk': 2.0.1 + chalk: 3.0.0 + find-pkg: 2.0.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + '@module-federation/rspack@0.12.0(@rspack/core@1.6.0(@swc/helpers@0.5.17))(typescript@5.8.3)': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.12.0 @@ -10099,6 +10979,44 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/rspack@0.15.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3)': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.15.0 + '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3) + '@module-federation/inject-external-runtime-core-plugin': 0.15.0(@module-federation/runtime-tools@0.15.0) + '@module-federation/managers': 0.15.0 + '@module-federation/manifest': 0.15.0(typescript@5.8.3) + '@module-federation/runtime-tools': 0.15.0 + '@module-federation/sdk': 0.15.0 + '@rspack/core': 1.6.0(@swc/helpers@0.5.18) + btoa: 1.2.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/rspack@0.21.0(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3)': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.21.0 + '@module-federation/dts-plugin': 0.21.0(typescript@5.8.3) + '@module-federation/inject-external-runtime-core-plugin': 0.21.0(@module-federation/runtime-tools@0.21.0) + '@module-federation/managers': 0.21.0 + '@module-federation/manifest': 0.21.0(typescript@5.8.3) + '@module-federation/runtime-tools': 0.21.0 + '@module-federation/sdk': 0.21.0 + '@rspack/core': 1.6.0(@swc/helpers@0.5.18) + btoa: 1.2.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + '@module-federation/rspack@0.8.9(@rspack/core@1.6.0(@swc/helpers@0.5.17))(typescript@5.8.3)': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.8.9 @@ -10117,6 +11035,25 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/rspack@2.0.1(@rspack/core@1.6.0(@swc/helpers@0.5.18))(typescript@5.8.3)': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 2.0.1 + '@module-federation/dts-plugin': 2.0.1(typescript@5.8.3) + '@module-federation/inject-external-runtime-core-plugin': 2.0.1(@module-federation/runtime-tools@2.0.1) + '@module-federation/managers': 2.0.1 + '@module-federation/manifest': 2.0.1(typescript@5.8.3) + '@module-federation/runtime-tools': 2.0.1 + '@module-federation/sdk': 2.0.1 + '@rspack/core': 1.6.0(@swc/helpers@0.5.18) + btoa: 1.2.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + '@module-federation/runtime-core@0.11.2': dependencies: '@module-federation/error-codes': 0.11.2 @@ -10127,6 +11064,16 @@ snapshots: '@module-federation/error-codes': 0.12.0 '@module-federation/sdk': 0.12.0 + '@module-federation/runtime-core@0.15.0': + dependencies: + '@module-federation/error-codes': 0.15.0 + '@module-federation/sdk': 0.15.0 + + '@module-federation/runtime-core@0.21.0': + dependencies: + '@module-federation/error-codes': 0.21.0 + '@module-federation/sdk': 0.21.0 + '@module-federation/runtime-core@0.21.2': dependencies: '@module-federation/error-codes': 0.21.2 @@ -10137,6 +11084,11 @@ snapshots: '@module-federation/error-codes': 0.8.9 '@module-federation/sdk': 0.8.9 + '@module-federation/runtime-core@2.0.1': + dependencies: + '@module-federation/error-codes': 2.0.1 + '@module-federation/sdk': 2.0.1 + '@module-federation/runtime-tools@0.11.2': dependencies: '@module-federation/runtime': 0.11.2 @@ -10147,6 +11099,16 @@ snapshots: '@module-federation/runtime': 0.12.0 '@module-federation/webpack-bundler-runtime': 0.12.0 + '@module-federation/runtime-tools@0.15.0': + dependencies: + '@module-federation/runtime': 0.15.0 + '@module-federation/webpack-bundler-runtime': 0.15.0 + + '@module-federation/runtime-tools@0.21.0': + dependencies: + '@module-federation/runtime': 0.21.0 + '@module-federation/webpack-bundler-runtime': 0.21.0 + '@module-federation/runtime-tools@0.21.2': dependencies: '@module-federation/runtime': 0.21.2 @@ -10157,6 +11119,11 @@ snapshots: '@module-federation/runtime': 0.8.9 '@module-federation/webpack-bundler-runtime': 0.8.9 + '@module-federation/runtime-tools@2.0.1': + dependencies: + '@module-federation/runtime': 2.0.1 + '@module-federation/webpack-bundler-runtime': 2.0.1 + '@module-federation/runtime@0.11.2': dependencies: '@module-federation/error-codes': 0.11.2 @@ -10169,6 +11136,18 @@ snapshots: '@module-federation/runtime-core': 0.12.0 '@module-federation/sdk': 0.12.0 + '@module-federation/runtime@0.15.0': + dependencies: + '@module-federation/error-codes': 0.15.0 + '@module-federation/runtime-core': 0.15.0 + '@module-federation/sdk': 0.15.0 + + '@module-federation/runtime@0.21.0': + dependencies: + '@module-federation/error-codes': 0.21.0 + '@module-federation/runtime-core': 0.21.0 + '@module-federation/sdk': 0.21.0 + '@module-federation/runtime@0.21.2': dependencies: '@module-federation/error-codes': 0.21.2 @@ -10181,10 +11160,20 @@ snapshots: '@module-federation/runtime-core': 0.6.17 '@module-federation/sdk': 0.8.9 + '@module-federation/runtime@2.0.1': + dependencies: + '@module-federation/error-codes': 2.0.1 + '@module-federation/runtime-core': 2.0.1 + '@module-federation/sdk': 2.0.1 + '@module-federation/sdk@0.11.2': {} '@module-federation/sdk@0.12.0': {} + '@module-federation/sdk@0.15.0': {} + + '@module-federation/sdk@0.21.0': {} + '@module-federation/sdk@0.21.2': {} '@module-federation/sdk@0.6.10': {} @@ -10193,18 +11182,38 @@ snapshots: dependencies: isomorphic-rslog: 0.0.7 + '@module-federation/sdk@2.0.1': {} + '@module-federation/third-party-dts-extractor@0.12.0': dependencies: find-pkg: 2.0.0 fs-extra: 9.1.0 resolve: 1.22.8 + '@module-federation/third-party-dts-extractor@0.15.0': + dependencies: + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + + '@module-federation/third-party-dts-extractor@0.21.0': + dependencies: + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + '@module-federation/third-party-dts-extractor@0.8.9': dependencies: find-pkg: 2.0.0 fs-extra: 9.1.0 resolve: 1.22.8 + '@module-federation/third-party-dts-extractor@2.0.1': + dependencies: + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + '@module-federation/webpack-bundler-runtime@0.11.2': dependencies: '@module-federation/runtime': 0.11.2 @@ -10215,6 +11224,16 @@ snapshots: '@module-federation/runtime': 0.12.0 '@module-federation/sdk': 0.12.0 + '@module-federation/webpack-bundler-runtime@0.15.0': + dependencies: + '@module-federation/runtime': 0.15.0 + '@module-federation/sdk': 0.15.0 + + '@module-federation/webpack-bundler-runtime@0.21.0': + dependencies: + '@module-federation/runtime': 0.21.0 + '@module-federation/sdk': 0.21.0 + '@module-federation/webpack-bundler-runtime@0.21.2': dependencies: '@module-federation/runtime': 0.21.2 @@ -10225,6 +11244,11 @@ snapshots: '@module-federation/runtime': 0.8.9 '@module-federation/sdk': 0.8.9 + '@module-federation/webpack-bundler-runtime@2.0.1': + dependencies: + '@module-federation/runtime': 2.0.1 + '@module-federation/sdk': 2.0.1 + '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.7.0 @@ -10700,9 +11724,9 @@ snapshots: transitivePeerDependencies: - '@rspack/tracing' - '@rsbuild/core@2.0.0-alpha.4(core-js@3.41.0)': + '@rsbuild/core@2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0)': dependencies: - '@rspack/core': 2.0.0-alpha.1(@swc/helpers@0.5.18) + '@rspack/core': 2.0.0-alpha.1(@module-federation/runtime-tools@2.0.1)(@swc/helpers@0.5.18) '@rspack/lite-tapable': 1.1.0 '@swc/helpers': 0.5.18 jiti: 2.6.1 @@ -10711,9 +11735,9 @@ snapshots: transitivePeerDependencies: - '@module-federation/runtime-tools' - '@rsbuild/plugin-react@1.4.5(@rsbuild/core@2.0.0-alpha.4(core-js@3.41.0))': + '@rsbuild/plugin-react@1.4.5(@rsbuild/core@2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0))': dependencies: - '@rsbuild/core': 2.0.0-alpha.4(core-js@3.41.0) + '@rsbuild/core': 2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0) '@rspack/plugin-react-refresh': 1.6.0(react-refresh@0.18.0) react-refresh: 0.18.0 transitivePeerDependencies: @@ -11111,11 +12135,12 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.18 - '@rspack/core@2.0.0-alpha.1(@swc/helpers@0.5.18)': + '@rspack/core@2.0.0-alpha.1(@module-federation/runtime-tools@2.0.1)(@swc/helpers@0.5.18)': dependencies: '@rspack/binding': 2.0.0-alpha.1 '@rspack/lite-tapable': 1.1.0 optionalDependencies: + '@module-federation/runtime-tools': 2.0.1 '@swc/helpers': 0.5.18 '@rspack/lite-tapable@1.0.1': {} @@ -11135,13 +12160,13 @@ snapshots: html-entities: 2.6.0 react-refresh: 0.18.0 - '@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0)': + '@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0)': dependencies: '@mdx-js/mdx': 3.1.1 '@mdx-js/react': 3.1.1(@types/react@18.3.3)(react@19.2.4) - '@rsbuild/core': 2.0.0-alpha.4(core-js@3.41.0) - '@rsbuild/plugin-react': 1.4.5(@rsbuild/core@2.0.0-alpha.4(core-js@3.41.0)) - '@rspress/shared': 2.0.0(core-js@3.41.0) + '@rsbuild/core': 2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0) + '@rsbuild/plugin-react': 1.4.5(@rsbuild/core@2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0)) + '@rspress/shared': 2.0.0(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0) '@shikijs/rehype': 3.22.0 '@types/unist': 3.0.3 '@unhead/react': 2.1.2(react@19.2.4) @@ -11186,13 +12211,13 @@ snapshots: - supports-color - webpack-hot-middleware - '@rspress/plugin-sitemap@2.0.1(@rspress/core@2.0.0(@types/react@18.3.3)(core-js@3.41.0))': + '@rspress/plugin-sitemap@2.0.1(@rspress/core@2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0))': dependencies: - '@rspress/core': 2.0.0(@types/react@18.3.3)(core-js@3.41.0) + '@rspress/core': 2.0.0(@module-federation/runtime-tools@2.0.1)(@types/react@18.3.3)(core-js@3.41.0) - '@rspress/shared@2.0.0(core-js@3.41.0)': + '@rspress/shared@2.0.0(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0)': dependencies: - '@rsbuild/core': 2.0.0-alpha.4(core-js@3.41.0) + '@rsbuild/core': 2.0.0-alpha.4(@module-federation/runtime-tools@2.0.1)(core-js@3.41.0) '@shikijs/rehype': 3.22.0 gray-matter: 4.0.3 lodash-es: 4.17.23 @@ -12785,6 +13810,34 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 + esbuild@0.25.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 + esbuild@0.27.2: optionalDependencies: '@esbuild/aix-ppc64': 0.27.2 @@ -14266,6 +15319,48 @@ snapshots: transitivePeerDependencies: - supports-color + koa@3.0.1: + dependencies: + accepts: 1.3.8 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + delegates: 1.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 2.0.0 + koa-compose: 4.1.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + + koa@3.0.3: + dependencies: + accepts: 1.3.8 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + delegates: 1.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 2.0.0 + koa-compose: 4.1.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + launch-editor@2.10.0: dependencies: picocolors: 1.1.1 @@ -14632,6 +15727,8 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.0: {} + medium-zoom@1.1.0: {} memfs@4.17.0: @@ -15099,10 +16196,16 @@ snapshots: mime-db@1.53.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -16818,6 +17921,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + typescript@5.8.3: {} undici-types@5.26.5: {} diff --git a/tests/integration/package.json b/tests/integration/package.json index 1821ba903..76b27843a 100644 --- a/tests/integration/package.json +++ b/tests/integration/package.json @@ -13,6 +13,9 @@ }, "devDependencies": { "@callstack/repack": "workspace:*", + "@module-federation/enhanced": "2.0.1", + "@module-federation/enhanced-v15": "npm:@module-federation/enhanced@0.15.0", + "@module-federation/enhanced-v21": "npm:@module-federation/enhanced@0.21.0", "@rspack/core": "catalog:", "@types/node": "catalog:", "memfs": "^4.11.1", diff --git a/tests/integration/src/plugins/NativeEntryPlugin.test.ts b/tests/integration/src/plugins/NativeEntryPlugin.test.ts new file mode 100644 index 000000000..b02df6c88 --- /dev/null +++ b/tests/integration/src/plugins/NativeEntryPlugin.test.ts @@ -0,0 +1,255 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { plugins } from '@callstack/repack'; +import type { Configuration } from '@rspack/core'; +import { Volume, createFsFromVolume } from 'memfs'; +import { describe, expect, inject, it } from 'vitest'; +import { createCompiler, createVirtualModulePlugin } from '../helpers.js'; + +// Webpack throws when multiple versions of @module-federation/enhanced register +// serializers with the same key. Patch ObjectMiddleware.register to allow +// re-registration since we externalize all MF modules and never use serialization. +// @ts-expect-error no types for internal webpack module +import ObjectMiddleware from 'webpack/lib/serialization/ObjectMiddleware'; +const _register = ObjectMiddleware.register.bind(ObjectMiddleware); +ObjectMiddleware.register = (...args: unknown[]) => { + try { + _register(...args); + } catch (e: any) { + if (!e.message?.includes('is already registered')) throw e; + } +}; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const REACT_NATIVE_PATH = path.join(__dirname, '__fixtures__', 'react-native'); +const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..'); + +/** + * Normalizes bundle code for deterministic snapshots by replacing + * machine-specific absolute paths and non-deterministic hashes. + */ +function normalizeBundle(code: string): string { + // Webpack mangles absolute paths into variable names with underscores + const mangledRoot = REPO_ROOT.replaceAll('/', '_').replaceAll('-', '_'); + return code + .replaceAll(REPO_ROOT, '') + .replaceAll(mangledRoot, '_rootDir_') + .replace( + /\.federation\/entry\.[a-f0-9]+\.js/g, + '.federation/entry.HASH.js' + ); +} + +/** + * NativeEntryPlugin adds native entries (InitializeScriptManager, IncludeModules) + * that cannot fully resolve in test environments. We intentionally ignore compilation + * errors and focus on verifying the bundle structure and polyfill positioning. + */ +async function compileBundle( + virtualModules: Record, + extraPlugins: Array<{ apply(compiler: any): void }> = [], + externals?: Configuration['externals'] +) { + const virtualPlugin = await createVirtualModulePlugin(virtualModules); + + const compiler = await createCompiler({ + context: __dirname, + mode: 'development', + devtool: false, + entry: './index.js', + output: { + path: '/out', + }, + resolve: { + alias: { + 'react-native': REACT_NATIVE_PATH, + }, + }, + externals, + plugins: [ + new plugins.NativeEntryPlugin({}), + virtualPlugin, + ...extraPlugins, + ], + }); + + const volume = new Volume(); + const fileSystem = createFsFromVolume(volume); + // @ts-expect-error memfs is compatible enough with the output filesystem + compiler.outputFileSystem = fileSystem; + + return new Promise<{ code: string; volume: InstanceType }>( + (resolve, reject) => { + compiler.run((error) => { + if (error) { + reject(error); + return; + } + const code = fileSystem.readFileSync('/out/main.js', 'utf-8') as string; + resolve({ code, volume }); + }); + } + ); +} + +/** + * Asserts that the given markers appear sequentially in the bundle code. + * Each marker is searched starting after the previous match, so repeated + * strings (e.g. in function definitions vs call sites) are handled correctly. + */ +function expectBundleOrder(code: string, markers: string[]) { + let searchFrom = 0; + for (const marker of markers) { + const pos = code.indexOf(marker, searchFrom); + expect( + pos, + `Expected "${marker}" in bundle after position ${searchFrom}` + ).toBeGreaterThan(-1); + searchFrom = pos + marker.length; + } +} + +describe('NativeEntryPlugin', () => { + describe('without Module Federation', () => { + it('should execute polyfills runtime module before entry startup', async () => { + const { code } = await compileBundle({ + './index.js': 'globalThis.__APP_ENTRY__ = true;', + }); + + // Polyfill modules were processed through the loader pipeline + expect(code).toContain('__POLYFILL_1__'); + expect(code).toContain('__POLYFILL_2__'); + expect(code).toContain('__INITIALIZE_CORE__'); + + // Without MF there is no deferred startup wrapper + expect(code).not.toContain('__webpack_require__.x'); + + // Polyfills runtime module IIFE executes before inline startup entries + expectBundleOrder(code, [ + 'webpack/runtime/repack/polyfills', + 'Load entry module and return exports', + ]); + + expect(normalizeBundle(code)).toMatchSnapshot(); + }); + }); + + describe('with Module Federation v1', () => { + it('should execute polyfills runtime module before MF v1 startup', async () => { + const { code } = await compileBundle( + { + './index.js': 'globalThis.__APP_ENTRY__ = true;', + './App.js': 'export default globalThis.__FEDERATED_EXPORT__ = true;', + }, + [ + new plugins.ModuleFederationPluginV1({ + name: 'testContainer', + exposes: { + './App': './App.js', + }, + shared: { + react: { singleton: true, eager: true }, + 'react-native': { singleton: true, eager: true }, + }, + reactNativeDeepImports: false, + }), + ] + ); + + // Polyfill modules were processed through the loader pipeline + expect(code).toContain('__POLYFILL_1__'); + expect(code).toContain('__POLYFILL_2__'); + expect(code).toContain('__INITIALIZE_CORE__'); + + // With all-eager shared modules, MF v1 uses inline startup (no deferred wrapper) + // Polyfills runtime module IIFE executes before inline startup entries + expectBundleOrder(code, [ + 'webpack/runtime/repack/polyfills', + 'Load entry module and return exports', + ]); + + expect(normalizeBundle(code)).toMatchSnapshot(); + }); + }); + + const MF_V2_VERSIONS = [ + { version: '0.15.0', pkg: '@module-federation/enhanced-v15' }, + { version: '0.21.0', pkg: '@module-federation/enhanced-v21' }, + { version: '2.0.1', pkg: '@module-federation/enhanced' }, + ]; + + const mfExternals = (( + { request, context }: { request?: string; context?: string }, + callback: (err: Error | null, result?: string) => void + ) => { + if ( + request?.includes('@module-federation') || + context?.includes('@module-federation') || + request?.includes('isomorphic-rslog') + ) { + return callback(null, 'globalThis.__MF_EXTERNAL__'); + } + callback(null); + }) as Configuration['externals']; + + describe.each(MF_V2_VERSIONS)( + 'with Module Federation v2 ($version)', + ({ pkg }) => { + it('should execute polyfills runtime module before MF v2 federation runtime', async () => { + const bundlerType = inject('bundlerType'); + const subpath = bundlerType === 'rspack' ? 'rspack' : 'webpack'; + const { ModuleFederationPlugin } = await import(`${pkg}/${subpath}`); + + const { code } = await compileBundle( + { + './index.js': 'globalThis.__APP_ENTRY__ = true;', + './App.js': + 'export default globalThis.__FEDERATED_EXPORT__ = true;', + }, + [ + new ModuleFederationPlugin({ + name: 'testContainer', + manifest: false, + exposes: { + './App': './App.js', + }, + shared: { + react: { singleton: true, eager: true }, + 'react-native': { singleton: true, eager: true }, + }, + }), + ], + mfExternals + ); + + // Polyfill modules were processed through the loader pipeline + expect(code).toContain('__POLYFILL_1__'); + expect(code).toContain('__POLYFILL_2__'); + + if (bundlerType === 'rspack') { + // Rspack MF v2 wraps startup via embed_federation_runtime: + // 1. embed_federation_runtime saves original __webpack_require__.x and wraps it + // 2. repack/polyfills IIFE executes (polyfills loaded immediately) + // 3. __webpack_require__.x() called → MF init → original startup (polyfills are cache hits) + expect(code).toContain('embed_federation_runtime'); + expectBundleOrder(code, [ + 'embed_federation_runtime', + 'webpack/runtime/repack/polyfills', + '__webpack_require__.x()', + ]); + } else { + // Webpack MF v2 uses inline startup with a .federation/entry module: + // 1. repack/polyfills IIFE executes (polyfills loaded immediately) + // 2. Inline startup begins: federation entry, then polyfills (cache hits), then app + expect(code).toContain('.federation/entry'); + expectBundleOrder(code, [ + 'webpack/runtime/repack/polyfills', + '.federation/entry', + ]); + } + + expect(normalizeBundle(code)).toMatchSnapshot(); + }); + } + ); +}); diff --git a/tests/integration/src/plugins/__fixtures__/react-native/Libraries/Core/InitializeCore.js b/tests/integration/src/plugins/__fixtures__/react-native/Libraries/Core/InitializeCore.js new file mode 100644 index 000000000..bef2b86e8 --- /dev/null +++ b/tests/integration/src/plugins/__fixtures__/react-native/Libraries/Core/InitializeCore.js @@ -0,0 +1 @@ +globalThis.__INITIALIZE_CORE__ = true; diff --git a/tests/integration/src/plugins/__fixtures__/react-native/package.json b/tests/integration/src/plugins/__fixtures__/react-native/package.json new file mode 100644 index 000000000..a3c15a7a6 --- /dev/null +++ b/tests/integration/src/plugins/__fixtures__/react-native/package.json @@ -0,0 +1 @@ +{ "type": "commonjs" } diff --git a/tests/integration/src/plugins/__fixtures__/react-native/polyfill1.js b/tests/integration/src/plugins/__fixtures__/react-native/polyfill1.js new file mode 100644 index 000000000..d7bc5c956 --- /dev/null +++ b/tests/integration/src/plugins/__fixtures__/react-native/polyfill1.js @@ -0,0 +1 @@ +globalThis.__POLYFILL_1__ = true; diff --git a/tests/integration/src/plugins/__fixtures__/react-native/polyfill2.js b/tests/integration/src/plugins/__fixtures__/react-native/polyfill2.js new file mode 100644 index 000000000..6da8082bc --- /dev/null +++ b/tests/integration/src/plugins/__fixtures__/react-native/polyfill2.js @@ -0,0 +1 @@ +globalThis.__POLYFILL_2__ = true; diff --git a/tests/integration/src/plugins/__fixtures__/react-native/rn-get-polyfills.js b/tests/integration/src/plugins/__fixtures__/react-native/rn-get-polyfills.js new file mode 100644 index 000000000..62c3a6a78 --- /dev/null +++ b/tests/integration/src/plugins/__fixtures__/react-native/rn-get-polyfills.js @@ -0,0 +1,8 @@ +const path = require('node:path'); + +module.exports = function getPolyfills() { + return [ + path.join(__dirname, 'polyfill1.js'), + path.join(__dirname, 'polyfill2.js'), + ]; +}; diff --git a/tests/integration/src/plugins/__snapshots__/rspack/NativeEntryPlugin.test.ts.snap b/tests/integration/src/plugins/__snapshots__/rspack/NativeEntryPlugin.test.ts.snap new file mode 100644 index 000000000..1eb36e80e --- /dev/null +++ b/tests/integration/src/plugins/__snapshots__/rspack/NativeEntryPlugin.test.ts.snap @@ -0,0 +1,1474 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`NativeEntryPlugin > with Module Federation v1 > should execute polyfills runtime module before MF v1 startup 1`] = ` +"(() => { // webpackBootstrap +var __webpack_modules__ = ({ +"../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +(function () { +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +}), +"../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +(function () { +throw new Error(" × Module parse failed:\\n ╰─▶ × JavaScript parse error: 'import', and 'export' cannot be used outside of module code\\n ╭─[1:0]\\n 1 │ import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n · ──────\\n 2 │ ScriptManager.init();\\n ╰────\\n \\n help: \\n You may need an appropriate loader to handle this file type.\\n"); + + +}), +"./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +(function () { +globalThis.__INITIALIZE_CORE__ = true; + + +}), +"./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_1__ = true; + + +}), +"./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_2__ = true; + + +}), +"./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +(function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +}), + +}); +/************************************************************************/ +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId](module, module.exports, __webpack_require__); + +// Return the exports of the module +return module.exports; + +} + +// expose the modules object (__webpack_modules__) +__webpack_require__.m = __webpack_modules__; + +// expose the module cache +__webpack_require__.c = __webpack_module_cache__; + +/************************************************************************/ +// webpack/runtime/has_own_property +(() => { +__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +})(); +// webpack/runtime/make_namespace_object +(() => { +// define __esModule on exports +__webpack_require__.r = (exports) => { + if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + } + Object.defineProperty(exports, '__esModule', { value: true }); +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.0") +})(); +// webpack/runtime/sharing +(() => { + +__webpack_require__.S = {}; +__webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { }, uniqueName: "" }; +var initPromises = {}; +var initTokens = {}; +__webpack_require__.I = function(name, initScope) { + if (!initScope) initScope = []; + // handling circular init calls + var initToken = initTokens[name]; + if (!initToken) initToken = initTokens[name] = {}; + if (initScope.indexOf(initToken) >= 0) return; + initScope.push(initToken); + // only runs once + if (initPromises[name]) return initPromises[name]; + // creates a new share scope if needed + if (!__webpack_require__.o(__webpack_require__.S, name)) + __webpack_require__.S[name] = {}; + // runs all init snippets from all modules reachable + var scope = __webpack_require__.S[name]; + var warn = function (msg) { + if (typeof console !== "undefined" && console.warn) console.warn(msg); + }; + var uniqueName = __webpack_require__.initializeSharingData.uniqueName; + var register = function (name, version, factory, eager) { + var versions = (scope[name] = scope[name] || {}); + var activeVersion = versions[version]; + if ( + !activeVersion || + (!activeVersion.loaded && + (!eager != !activeVersion.eager + ? eager + : uniqueName > activeVersion.from)) + ) + versions[version] = { get: factory, from: uniqueName, eager: !!eager }; + }; + var initExternal = function (id) { + var handleError = function (err) { + warn("Initialization of sharing external failed: " + err); + }; + try { + var module = __webpack_require__(id); + if (!module) return; + var initFn = function (module) { + return ( + module && + module.init && + module.init(__webpack_require__.S[name], initScope) + ); + }; + if (module.then) return promises.push(module.then(initFn, handleError)); + var initResult = initFn(module); + if (initResult && initResult.then) + return promises.push(initResult["catch"](handleError)); + } catch (err) { + handleError(err); + } + }; + var promises = []; + var scopeToSharingDataMapping = __webpack_require__.initializeSharingData.scopeToSharingDataMapping; + if (scopeToSharingDataMapping[name]) { + scopeToSharingDataMapping[name].forEach(function (stage) { + if (typeof stage === "object") register(stage.name, stage.version, stage.factory, stage.eager); + else initExternal(stage) + }); + } + if (!promises.length) return (initPromises[name] = 1); + return (initPromises[name] = Promise.all(promises).then(function () { + return (initPromises[name] = 1); + })); +}; + + +})(); +// webpack/runtime/repack/polyfills +(() => { +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +})(); +// webpack/runtime/consumes_loading +(() => { + +__webpack_require__.consumesLoadingData = { chunkMapping: {}, moduleIdToConsumeDataMapping: {}, initialConsumes: [] }; +var splitAndConvert = function(str) { + return str.split(".").map(function(item) { + return +item == item ? +item : item; + }); +}; +var parseRange = function(str) { + // see https://docs.npmjs.com/misc/semver#range-grammar for grammar + var parsePartial = function(str) { + var match = /^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str); + var ver = match[1] ? [0].concat(splitAndConvert(match[1])) : [0]; + if (match[2]) { + ver.length++; + ver.push.apply(ver, splitAndConvert(match[2])); + } + + // remove trailing any matchers + let last = ver[ver.length - 1]; + while ( + ver.length && + (last === undefined || /^[*xX]$/.test(/** @type {string} */ (last))) + ) { + ver.pop(); + last = ver[ver.length - 1]; + } + + return ver; + }; + var toFixed = function(range) { + if (range.length === 1) { + // Special case for "*" is "x.x.x" instead of "=" + return [0]; + } else if (range.length === 2) { + // Special case for "1" is "1.x.x" instead of "=1" + return [1].concat(range.slice(1)); + } else if (range.length === 3) { + // Special case for "1.2" is "1.2.x" instead of "=1.2" + return [2].concat(range.slice(1)); + } else { + return [range.length].concat(range.slice(1)); + } + }; + var negate = function(range) { + return [-range[0] - 1].concat(range.slice(1)); + }; + var parseSimple = function(str) { + // simple ::= primitive | partial | tilde | caret + // primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | '!' ) ( ' ' ) * partial + // tilde ::= '~' ( ' ' ) * partial + // caret ::= '^' ( ' ' ) * partial + const match = /^(\\^|~|<=|<|>=|>|=|v|!)/.exec(str); + const start = match ? match[0] : ""; + const remainder = parsePartial( + start.length ? str.slice(start.length).trim() : str.trim() + ); + switch (start) { + case "^": + if (remainder.length > 1 && remainder[1] === 0) { + if (remainder.length > 2 && remainder[2] === 0) { + return [3].concat(remainder.slice(1)); + } + return [2].concat(remainder.slice(1)); + } + return [1].concat(remainder.slice(1)); + case "~": + return [2].concat(remainder.slice(1)); + case ">=": + return remainder; + case "=": + case "v": + case "": + return toFixed(remainder); + case "<": + return negate(remainder); + case ">": { + // and( >=, not( = ) ) => >=, =, not, and + const fixed = toFixed(remainder); + return [, fixed, 0, remainder, 2]; + } + case "<=": + // or( <, = ) => <, =, or + return [, toFixed(remainder), negate(remainder), 1]; + case "!": { + // not = + const fixed = toFixed(remainder); + return [, fixed, 0]; + } + default: + throw new Error("Unexpected start value"); + } + }; + var combine = function(items, fn) { + if (items.length === 1) return items[0]; + const arr = []; + for (const item of items.slice().reverse()) { + if (0 in item) { + arr.push(item); + } else { + arr.push.apply(arr, item.slice(1)); + } + } + return [,].concat(arr, items.slice(1).map(() => fn)); + }; + var parseRange = function(str) { + // range ::= hyphen | simple ( ' ' ( ' ' ) * simple ) * | '' + // hyphen ::= partial ( ' ' ) * ' - ' ( ' ' ) * partial + const items = str.split(/\\s+-\\s+/); + if (items.length === 1) { + str = str.trim(); + const items = []; + const r = /[-0-9A-Za-z]\\s+/g; + var start = 0; + var match; + while ((match = r.exec(str))) { + const end = match.index + 1; + items.push(parseSimple(str.slice(start, end).trim())); + start = end; + } + items.push(parseSimple(str.slice(start).trim())); + return combine(items, 2); + } + const a = parsePartial(items[0]); + const b = parsePartial(items[1]); + // >=a <=b => and( >=a, or( >=a, = a.length) return i < b.length && (typeof b[i])[0] != "u"; + + var aValue = a[i]; + var aType = (typeof aValue)[0]; + + // Handles first column in table + if (i >= b.length) return aType == "u"; + + var bValue = b[i]; + var bType = (typeof bValue)[0]; + + if (aType == bType) { + if (aType != "o" && aType != "u" && aValue != bValue) { + return aValue < bValue; + } + i++; + } else { + // Handles remaining cases + if (aType == "o" && bType == "n") return true; + return bType == "s" || aType == "u"; + } + } +} +var rangeToString = function(range) { + var fixCount = range[0]; + var str = ""; + if (range.length === 1) { + return "*"; + } else if (fixCount + 0.5) { + str += + fixCount == 0 + ? ">=" + : fixCount == -1 + ? "<" + : fixCount == 1 + ? "^" + : fixCount == 2 + ? "~" + : fixCount > 0 + ? "=" + : "!="; + var needDot = 1; + for (var i = 1; i < range.length; i++) { + var item = range[i]; + var t = (typeof item)[0]; + needDot--; + str += + t == "u" + ? // undefined: prerelease marker, add an "-" + "-" + : // number or string: add the item, set flag to add an "." between two of them + (needDot > 0 ? "." : "") + ((needDot = 2), item); + } + return str; + } else { + var stack = []; + for (var i = 1; i < range.length; i++) { + var item = range[i]; + stack.push( + item === 0 + ? "not(" + pop() + ")" + : item === 1 + ? "(" + pop() + " || " + pop() + ")" + : item === 2 + ? stack.pop() + " " + stack.pop() + : rangeToString(item) + ); + } + return pop(); + } + function pop() { + return stack.pop().replace(/^\\((.+)\\)$/, "$1"); + } +} +var satisfy = function(range, version) { + if (0 in range) { + version = parseVersion(version); + var fixCount = /** @type {number} */ (range[0]); + // when negated is set it swill set for < instead of >= + var negated = fixCount < 0; + if (negated) fixCount = -fixCount - 1; + for (var i = 0, j = 1, isEqual = true; ; j++, i++) { + // cspell:word nequal nequ + + // when isEqual = true: + // range version: EOA/object undefined number string + // EOA equal block big-ver big-ver + // undefined bigger next big-ver big-ver + // number smaller block cmp big-cmp + // fixed number smaller block cmp-fix differ + // string smaller block differ cmp + // fixed string smaller block small-cmp cmp-fix + + // when isEqual = false: + // range version: EOA/object undefined number string + // EOA nequal block next-ver next-ver + // undefined nequal block next-ver next-ver + // number nequal block next next + // fixed number nequal block next next (this never happens) + // string nequal block next next + // fixed string nequal block next next (this never happens) + + // EOA end of array + // equal (version is equal range): + // when !negated: return true, + // when negated: return false + // bigger (version is bigger as range): + // when fixed: return false, + // when !negated: return true, + // when negated: return false, + // smaller (version is smaller as range): + // when !negated: return false, + // when negated: return true + // nequal (version is not equal range (> resp <)): return true + // block (version is in different prerelease area): return false + // differ (version is different from fixed range (string vs. number)): return false + // next: continues to the next items + // next-ver: when fixed: return false, continues to the next item only for the version, sets isEqual=false + // big-ver: when fixed || negated: return false, continues to the next item only for the version, sets isEqual=false + // next-nequ: continues to the next items, sets isEqual=false + // cmp (negated === false): version < range => return false, version > range => next-nequ, else => next + // cmp (negated === true): version > range => return false, version < range => next-nequ, else => next + // cmp-fix: version == range => next, else => return false + // big-cmp: when negated => return false, else => next-nequ + // small-cmp: when negated => next-nequ, else => return false + + var rangeType = j < range.length ? (typeof range[j])[0] : ""; + + var versionValue; + var versionType; + + // Handles first column in both tables (end of version or object) + if ( + i >= version.length || + ((versionValue = version[i]), + (versionType = (typeof versionValue)[0]) == "o") + ) { + // Handles nequal + if (!isEqual) return true; + // Handles bigger + if (rangeType == "u") return j > fixCount && !negated; + // Handles equal and smaller: (range === EOA) XOR negated + return (rangeType == "") != negated; // equal + smaller + } + + // Handles second column in both tables (version = undefined) + if (versionType == "u") { + if (!isEqual || rangeType != "u") { + return false; + } + } + + // switch between first and second table + else if (isEqual) { + // Handle diagonal + if (rangeType == versionType) { + if (j <= fixCount) { + // Handles "cmp-fix" cases + if (versionValue != range[j]) { + return false; + } + } else { + // Handles "cmp" cases + if (negated ? versionValue > range[j] : versionValue < range[j]) { + return false; + } + if (versionValue != range[j]) isEqual = false; + } + } + + // Handle big-ver + else if (rangeType != "s" && rangeType != "n") { + if (negated || j <= fixCount) return false; + isEqual = false; + j--; + } + + // Handle differ, big-cmp and small-cmp + else if (j <= fixCount || versionType < rangeType != negated) { + return false; + } else { + isEqual = false; + } + } else { + // Handles all "next-ver" cases in the second table + if (rangeType != "s" && rangeType != "n") { + isEqual = false; + j--; + } + + // next is applied by default + } + } + } + /** @type {(boolean | number)[]} */ + var stack = []; + var p = stack.pop.bind(stack); + for (var i = 1; i < range.length; i++) { + var item = /** @type {SemVerRange | 0 | 1 | 2} */ (range[i]); + stack.push( + item == 1 + ? p() | p() + : item == 2 + ? p() & p() + : item + ? satisfy(item, version) + : !p() + ); + } + return !!p(); +} +var ensureExistence = function(scopeName, key) { + var scope = __webpack_require__.S[scopeName]; + if(!scope || !__webpack_require__.o(scope, key)) throw new Error("Shared module " + key + " doesn't exist in shared scope " + scopeName); + return scope; +}; +var findVersion = function(scope, key) { + var versions = scope[key]; + var key = Object.keys(versions).reduce(function(a, b) { + return !a || versionLt(a, b) ? b : a; + }, 0); + return key && versions[key] +}; +var findSingletonVersionKey = function(scope, key) { + var versions = scope[key]; + return Object.keys(versions).reduce(function(a, b) { + return !a || (!versions[a].loaded && versionLt(a, b)) ? b : a; + }, 0); +}; +var getInvalidSingletonVersionMessage = function(scope, key, version, requiredVersion) { + return "Unsatisfied version " + version + " from " + (version && scope[key][version].from) + " of shared singleton module " + key + " (required " + rangeToString(requiredVersion) + ")" +}; +var getSingleton = function(scope, scopeName, key, requiredVersion) { + var version = findSingletonVersionKey(scope, key); + return get(scope[key][version]); +}; +var getSingletonVersion = function(scope, scopeName, key, requiredVersion) { + var version = findSingletonVersionKey(scope, key); + if (!satisfy(requiredVersion, version)) warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion)); + return get(scope[key][version]); +}; +var getStrictSingletonVersion = function(scope, scopeName, key, requiredVersion) { + var version = findSingletonVersionKey(scope, key); + if (!satisfy(requiredVersion, version)) throw new Error(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion)); + return get(scope[key][version]); +}; +var findValidVersion = function(scope, key, requiredVersion) { + var versions = scope[key]; + var key = Object.keys(versions).reduce(function(a, b) { + if (!satisfy(requiredVersion, b)) return a; + return !a || versionLt(a, b) ? b : a; + }, 0); + return key && versions[key] +}; +var getInvalidVersionMessage = function(scope, scopeName, key, requiredVersion) { + var versions = scope[key]; + return "No satisfying version (" + rangeToString(requiredVersion) + ") of shared module " + key + " found in shared scope " + scopeName + ".\\n" + + "Available versions: " + Object.keys(versions).map(function(key) { + return key + " from " + versions[key].from; + }).join(", "); +}; +var getValidVersion = function(scope, scopeName, key, requiredVersion) { + var entry = findValidVersion(scope, key, requiredVersion); + if(entry) return get(entry); + throw new Error(getInvalidVersionMessage(scope, scopeName, key, requiredVersion)); +}; +var warn = function(msg) { + if (typeof console !== "undefined" && console.warn) console.warn(msg); +}; +var warnInvalidVersion = function(scope, scopeName, key, requiredVersion) { + warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion)); +}; +var get = function(entry) { + entry.loaded = 1; + return entry.get() +}; +var init = function(fn) { return function(scopeName, a, b, c) { + var promise = __webpack_require__.I(scopeName); + if (promise && promise.then) return promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], a, b, c)); + return fn(scopeName, __webpack_require__.S[scopeName], a, b, c); +}; }; + +var load = /*#__PURE__*/ init(function(scopeName, scope, key) { + ensureExistence(scopeName, key); + return get(findVersion(scope, key)); +}); +var loadFallback = /*#__PURE__*/ init(function(scopeName, scope, key, fallback) { + return scope && __webpack_require__.o(scope, key) ? get(findVersion(scope, key)) : fallback(); +}); +var loadVersionCheck = /*#__PURE__*/ init(function(scopeName, scope, key, version) { + ensureExistence(scopeName, key); + return get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key)); +}); +var loadSingleton = /*#__PURE__*/ init(function(scopeName, scope, key) { + ensureExistence(scopeName, key); + return getSingleton(scope, scopeName, key); +}); +var loadSingletonVersionCheck = /*#__PURE__*/ init(function(scopeName, scope, key, version) { + ensureExistence(scopeName, key); + return getSingletonVersion(scope, scopeName, key, version); +}); +var loadStrictVersionCheck = /*#__PURE__*/ init(function(scopeName, scope, key, version) { + ensureExistence(scopeName, key); + return getValidVersion(scope, scopeName, key, version); +}); +var loadStrictSingletonVersionCheck = /*#__PURE__*/ init(function(scopeName, scope, key, version) { + ensureExistence(scopeName, key); + return getStrictSingletonVersion(scope, scopeName, key, version); +}); +var loadVersionCheckFallback = /*#__PURE__*/ init(function(scopeName, scope, key, version, fallback) { + if(!scope || !__webpack_require__.o(scope, key)) return fallback(); + return get(findValidVersion(scope, key, version) || warnInvalidVersion(scope, scopeName, key, version) || findVersion(scope, key)); +}); +var loadSingletonFallback = /*#__PURE__*/ init(function(scopeName, scope, key, fallback) { + if(!scope || !__webpack_require__.o(scope, key)) return fallback(); + return getSingleton(scope, scopeName, key); +}); +var loadSingletonVersionCheckFallback = /*#__PURE__*/ init(function(scopeName, scope, key, version, fallback) { + if(!scope || !__webpack_require__.o(scope, key)) return fallback(); + return getSingletonVersion(scope, scopeName, key, version); +}); +var loadStrictVersionCheckFallback = /*#__PURE__*/ init(function(scopeName, scope, key, version, fallback) { + var entry = scope && __webpack_require__.o(scope, key) && findValidVersion(scope, key, version); + return entry ? get(entry) : fallback(); +}); +var loadStrictSingletonVersionCheckFallback = /*#__PURE__*/ init(function(scopeName, scope, key, version, fallback) { + if(!scope || !__webpack_require__.o(scope, key)) return fallback(); + return getStrictSingletonVersion(scope, scopeName, key, version); +}); +var resolveHandler = function(data) { + var strict = false + var singleton = false + var versionCheck = false + var fallback = false + var args = [data.shareScope, data.shareKey]; + if (data.requiredVersion) { + if (data.strictVersion) strict = true; + if (data.singleton) singleton = true; + args.push(parseRange(data.requiredVersion)); + versionCheck = true + } else if (data.singleton) singleton = true; + if (data.fallback) { + fallback = true; + args.push(data.fallback); + } + if (strict && singleton && versionCheck && fallback) return function() { return loadStrictSingletonVersionCheckFallback.apply(null, args); } + if (strict && versionCheck && fallback) return function() { return loadStrictVersionCheckFallback.apply(null, args); } + if (singleton && versionCheck && fallback) return function() { return loadSingletonVersionCheckFallback.apply(null, args); } + if (strict && singleton && versionCheck) return function() { return loadStrictSingletonVersionCheck.apply(null, args); } + if (singleton && fallback) return function() { return loadSingletonFallback.apply(null, args); } + if (versionCheck && fallback) return function() { return loadVersionCheckFallback.apply(null, args); } + if (strict && versionCheck) return function() { return loadStrictVersionCheck.apply(null, args); } + if (singleton && versionCheck) return function() { return loadSingletonVersionCheck.apply(null, args); } + if (singleton) return function() { return loadSingleton.apply(null, args); } + if (versionCheck) return function() { return loadVersionCheck.apply(null, args); } + if (fallback) return function() { return loadFallback.apply(null, args); } + return function() { return load.apply(null, args); } +}; +var installedModules = {}; + +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.0"; + +})(); +/************************************************************************/ +// module cache are used so entry inlining is disabled +// startup +// Load entry module and return exports +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +__webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +__webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +__webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +var __webpack_exports__ = __webpack_require__("./index.js"); +})() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('0.15.0') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"(() => { // webpackBootstrap +var __webpack_modules__ = ({ +"@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.15.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +(function (module) { +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +}), +"../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +(function () { +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +}), +"../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +(function () { +throw new Error(" × Module parse failed:\\n ╰─▶ × JavaScript parse error: 'import', and 'export' cannot be used outside of module code\\n ╭─[1:0]\\n 1 │ import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n · ──────\\n 2 │ ScriptManager.init();\\n ╰────\\n \\n help: \\n You may need an appropriate loader to handle this file type.\\n"); + + +}), +"./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +(function () { +globalThis.__INITIALIZE_CORE__ = true; + + +}), +"./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_1__ = true; + + +}), +"./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_2__ = true; + + +}), +"./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +(function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +}), + +}); +/************************************************************************/ +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId](module, module.exports, __webpack_require__); + +// Return the exports of the module +return module.exports; + +} + +// expose the modules object (__webpack_modules__) +__webpack_require__.m = __webpack_modules__; + +// expose the module cache +__webpack_require__.c = __webpack_module_cache__; + +// the startup function +__webpack_require__.x = () => { +// Load entry module and return exports +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +__webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +__webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +__webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +var __webpack_exports__ = __webpack_require__("./index.js"); +return __webpack_exports__ +}; + +/************************************************************************/ +// module_federation/runtime +(() => { + +if(!__webpack_require__.federation){ + __webpack_require__.federation = { + +chunkMatcher: function(chunkId) { + return true; +}, +rootOutputDir: "", + + }; +} + +})(); +// webpack/runtime/embed_federation_runtime +(() => { +var prevStartup = __webpack_require__.x; +var hasRun = false; +__webpack_require__.x = function() { + if (!hasRun) { + hasRun = true; + __webpack_require__("@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.15.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}") + } + if (typeof prevStartup === 'function') { + return prevStartup(); + } else { + console.warn('[MF] Invalid prevStartup'); + } +}; +})(); +// webpack/runtime/has_own_property +(() => { +__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +})(); +// webpack/runtime/make_namespace_object +(() => { +// define __esModule on exports +__webpack_require__.r = (exports) => { + if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + } + Object.defineProperty(exports, '__esModule', { value: true }); +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.0") +})(); +// webpack/runtime/sharing +(() => { + +__webpack_require__.S = {}; +__webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { }, uniqueName: "" }; +__webpack_require__.I = __webpack_require__.I || function() { throw new Error("should have __webpack_require__.I") } + +})(); +// webpack/runtime/repack/polyfills +(() => { +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +})(); +// webpack/runtime/consumes_loading +(() => { + +__webpack_require__.consumesLoadingData = { chunkMapping: {}, moduleIdToConsumeDataMapping: {}, initialConsumes: [] }; + +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.0"; + +})(); +/************************************************************************/ +// module cache are used so entry inlining is disabled +// run startup +var __webpack_exports__ = __webpack_require__.x(); +})() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('0.21.0') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"(() => { // webpackBootstrap +var __webpack_modules__ = ({ +"@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.21.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +(function (module) { +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +}), +"../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +(function () { +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +}), +"../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +(function () { +throw new Error(" × Module parse failed:\\n ╰─▶ × JavaScript parse error: 'import', and 'export' cannot be used outside of module code\\n ╭─[1:0]\\n 1 │ import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n · ──────\\n 2 │ ScriptManager.init();\\n ╰────\\n \\n help: \\n You may need an appropriate loader to handle this file type.\\n"); + + +}), +"./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +(function () { +globalThis.__INITIALIZE_CORE__ = true; + + +}), +"./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_1__ = true; + + +}), +"./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_2__ = true; + + +}), +"./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +(function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +}), + +}); +/************************************************************************/ +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId](module, module.exports, __webpack_require__); + +// Return the exports of the module +return module.exports; + +} + +// expose the modules object (__webpack_modules__) +__webpack_require__.m = __webpack_modules__; + +// expose the module cache +__webpack_require__.c = __webpack_module_cache__; + +// the startup function +__webpack_require__.x = () => { +// Load entry module and return exports +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +__webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +__webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +__webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +var __webpack_exports__ = __webpack_require__("./index.js"); +return __webpack_exports__ +}; + +/************************************************************************/ +// module_federation/runtime +(() => { + +if(!__webpack_require__.federation){ + __webpack_require__.federation = { + +chunkMatcher: function(chunkId) { + return true; +}, +rootOutputDir: "", + + }; +} + +})(); +// webpack/runtime/embed_federation_runtime +(() => { +var prevStartup = __webpack_require__.x; +var hasRun = false; +__webpack_require__.x = function() { + if (!hasRun) { + hasRun = true; + __webpack_require__("@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.21.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}") + } + if (typeof prevStartup === 'function') { + return prevStartup(); + } else { + console.warn('[MF] Invalid prevStartup'); + } +}; +})(); +// webpack/runtime/has_own_property +(() => { +__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +})(); +// webpack/runtime/make_namespace_object +(() => { +// define __esModule on exports +__webpack_require__.r = (exports) => { + if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + } + Object.defineProperty(exports, '__esModule', { value: true }); +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.0") +})(); +// webpack/runtime/sharing +(() => { + +__webpack_require__.S = {}; +__webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { }, uniqueName: "" }; +__webpack_require__.I = __webpack_require__.I || function() { throw new Error("should have __webpack_require__.I") } + +})(); +// webpack/runtime/repack/polyfills +(() => { +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +})(); +// webpack/runtime/consumes_loading +(() => { + +__webpack_require__.consumesLoadingData = { chunkMapping: {}, moduleIdToConsumeDataMapping: {}, initialConsumes: [] }; + +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.0"; + +})(); +/************************************************************************/ +// module cache are used so entry inlining is disabled +// run startup +var __webpack_exports__ = __webpack_require__.x(); +})() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('2.0.1') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"(() => { // webpackBootstrap +var __webpack_modules__ = ({ +"@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@2.0.1/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +(function (module) { +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +}), +"../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +(function () { +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +}), +"../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +(function () { +throw new Error(" × Module parse failed:\\n ╰─▶ × JavaScript parse error: 'import', and 'export' cannot be used outside of module code\\n ╭─[1:0]\\n 1 │ import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n · ──────\\n 2 │ ScriptManager.init();\\n ╰────\\n \\n help: \\n You may need an appropriate loader to handle this file type.\\n"); + + +}), +"./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +(function () { +globalThis.__INITIALIZE_CORE__ = true; + + +}), +"./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_1__ = true; + + +}), +"./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_2__ = true; + + +}), +"./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +(function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +}), + +}); +/************************************************************************/ +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId](module, module.exports, __webpack_require__); + +// Return the exports of the module +return module.exports; + +} + +// expose the modules object (__webpack_modules__) +__webpack_require__.m = __webpack_modules__; + +// expose the module cache +__webpack_require__.c = __webpack_module_cache__; + +// the startup function +__webpack_require__.x = () => { +// Load entry module and return exports +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +__webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +__webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +__webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +var __webpack_exports__ = __webpack_require__("./index.js"); +return __webpack_exports__ +}; + +/************************************************************************/ +// module_federation/runtime +(() => { + +if(!__webpack_require__.federation){ + __webpack_require__.federation = { + +chunkMatcher: function(chunkId) { + return true; +}, +rootOutputDir: "", + + }; +} + +})(); +// webpack/runtime/embed_federation_runtime +(() => { +var prevStartup = __webpack_require__.x; +var hasRun = false; +__webpack_require__.x = function() { + if (!hasRun) { + hasRun = true; + __webpack_require__("@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \\"/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@2.0.1/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs\\";const __module_federation_runtime_plugins__ = [];const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \\"testContainer\\";const __module_federation_share_strategy__ = \\"version-first\\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\\"object\\"&&value!==null){var _obj1,_key1;var _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;var _;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};var __webpack_require___remotesLoadingData_chunkMapping;const remotesLoadingChunkMapping=(__webpack_require___remotesLoadingData_chunkMapping=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&__webpack_require___remotesLoadingData_chunkMapping!==void 0?__webpack_require___remotesLoadingData_chunkMapping:{};var __webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping;const remotesLoadingModuleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping!==void 0?__webpack_require___remotesLoadingData_moduleIdToRemoteDataMapping:{};var __webpack_require___initializeSharingData_scopeToSharingDataMapping;const initializeSharingScopeToInitDataMapping=(__webpack_require___initializeSharingData_scopeToSharingDataMapping=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&__webpack_require___initializeSharingData_scopeToSharingDataMapping!==void 0?__webpack_require___initializeSharingData_scopeToSharingDataMapping:{};var __webpack_require___consumesLoadingData_chunkMapping;const consumesLoadingChunkMapping=(__webpack_require___consumesLoadingData_chunkMapping=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&__webpack_require___consumesLoadingData_chunkMapping!==void 0?__webpack_require___consumesLoadingData_chunkMapping:{};var __webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping;const consumesLoadingModuleToConsumeDataMapping=(__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping!==void 0?__webpack_require___consumesLoadingData_moduleIdToConsumeDataMapping:{};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\\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \\"'+module1+'\\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);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})}}") + } + if (typeof prevStartup === 'function') { + return prevStartup(); + } else { + console.warn('[MF] Invalid prevStartup'); + } +}; +})(); +// webpack/runtime/has_own_property +(() => { +__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +})(); +// webpack/runtime/make_namespace_object +(() => { +// define __esModule on exports +__webpack_require__.r = (exports) => { + if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + } + Object.defineProperty(exports, '__esModule', { value: true }); +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.0") +})(); +// webpack/runtime/sharing +(() => { + +__webpack_require__.S = {}; +__webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { }, uniqueName: "" }; +__webpack_require__.I = __webpack_require__.I || function() { throw new Error("should have __webpack_require__.I") } + +})(); +// webpack/runtime/repack/polyfills +(() => { +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +})(); +// webpack/runtime/consumes_loading +(() => { + +__webpack_require__.consumesLoadingData = { chunkMapping: {}, moduleIdToConsumeDataMapping: {}, initialConsumes: [] }; + +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.0"; + +})(); +/************************************************************************/ +// module cache are used so entry inlining is disabled +// run startup +var __webpack_exports__ = __webpack_require__.x(); +})() +;" +`; + +exports[`NativeEntryPlugin > without Module Federation > should execute polyfills runtime module before entry startup 1`] = ` +"(() => { // webpackBootstrap +var __webpack_modules__ = ({ +"../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +(function () { +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +}), +"../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +(function () { +throw new Error(" × Module parse failed:\\n ╰─▶ × JavaScript parse error: 'import', and 'export' cannot be used outside of module code\\n ╭─[1:0]\\n 1 │ import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n · ──────\\n 2 │ ScriptManager.init();\\n ╰────\\n \\n help: \\n You may need an appropriate loader to handle this file type.\\n"); + + +}), +"./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +(function () { +globalThis.__INITIALIZE_CORE__ = true; + + +}), +"./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_1__ = true; + + +}), +"./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +(function () { +globalThis.__POLYFILL_2__ = true; + + +}), +"./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +(function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +}), + +}); +/************************************************************************/ +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId](module, module.exports, __webpack_require__); + +// Return the exports of the module +return module.exports; + +} + +/************************************************************************/ +// webpack/runtime/make_namespace_object +(() => { +// define __esModule on exports +__webpack_require__.r = (exports) => { + if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + } + Object.defineProperty(exports, '__esModule', { value: true }); +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.0") +})(); +// webpack/runtime/repack/polyfills +(() => { +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.0"; + +})(); +/************************************************************************/ +// startup +// Load entry module and return exports +__webpack_require__("./__fixtures__/react-native/polyfill1.js"); +__webpack_require__("./__fixtures__/react-native/polyfill2.js"); +__webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +// This entry module doesn't tell about it's top-level declarations so it can't be inlined +__webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +__webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +var __webpack_exports__ = __webpack_require__("./index.js"); +})() +;" +`; diff --git a/tests/integration/src/plugins/__snapshots__/webpack/NativeEntryPlugin.test.ts.snap b/tests/integration/src/plugins/__snapshots__/webpack/NativeEntryPlugin.test.ts.snap new file mode 100644 index 000000000..32e999543 --- /dev/null +++ b/tests/integration/src/plugins/__snapshots__/webpack/NativeEntryPlugin.test.ts.snap @@ -0,0 +1,1276 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`NativeEntryPlugin > with Module Federation v1 > should execute polyfills runtime module before MF v1 startup 1`] = ` +"/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +/***/ (() => { + +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +/***/ }), + +/***/ "../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +/***/ (() => { + +throw new Error("Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)\\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\\n> import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n| ScriptManager.init();"); + +/***/ }), + +/***/ "./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +/***/ (() => { + +globalThis.__INITIALIZE_CORE__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_1__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_2__ = true; + + +/***/ }), + +/***/ "./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ if(!initScope) initScope = []; +/******/ // handling circular init calls +/******/ var initToken = initTokens[name]; +/******/ if(!initToken) initToken = initTokens[name] = {}; +/******/ if(initScope.indexOf(initToken) >= 0) return; +/******/ initScope.push(initToken); +/******/ // only runs once +/******/ if(initPromises[name]) return initPromises[name]; +/******/ // creates a new share scope if needed +/******/ if(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {}; +/******/ // runs all init snippets from all modules reachable +/******/ var scope = __webpack_require__.S[name]; +/******/ var warn = (msg) => { +/******/ if (typeof console !== "undefined" && console.warn) console.warn(msg); +/******/ }; +/******/ var uniqueName = undefined; +/******/ var register = (name, version, factory, eager) => { +/******/ var versions = scope[name] = scope[name] || {}; +/******/ var activeVersion = versions[version]; +/******/ if(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager }; +/******/ }; +/******/ var initExternal = (id) => { +/******/ var handleError = (err) => (warn("Initialization of sharing external failed: " + err)); +/******/ try { +/******/ var module = __webpack_require__(id); +/******/ if(!module) return; +/******/ var initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope)) +/******/ if(module.then) return promises.push(module.then(initFn, handleError)); +/******/ var initResult = initFn(module); +/******/ if(initResult && initResult.then) return promises.push(initResult['catch'](handleError)); +/******/ } catch(err) { handleError(err); } +/******/ } +/******/ var promises = []; +/******/ switch(name) { +/******/ } +/******/ if(!promises.length) return initPromises[name] = 1; +/******/ return initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1)); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/repack/polyfills */ +/******/ (() => { +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ __webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +/******/ var __webpack_exports__ = __webpack_require__("./index.js"); +/******/ +/******/ })() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('0.15.0') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +/***/ (() => { + +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +/***/ }), + +/***/ "../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +/***/ (() => { + +throw new Error("Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)\\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\\n> import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n| ScriptManager.init();"); + +/***/ }), + +/***/ "../../node_modules/.federation/entry.HASH.js": +/*!********************************************************************************!*\\ + !*** ../../node_modules/.federation/entry.HASH.js ***! + \\********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_15_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.15.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js */ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.15.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js"); + + +if(!__webpack_require__.federation.runtime){ + var prevFederation = __webpack_require__.federation; + __webpack_require__.federation = {} + for(var key in _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_15_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__){ + __webpack_require__.federation[key] = _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_15_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__[key]; + } + for(var key in prevFederation){ + __webpack_require__.federation[key] = prevFederation[key]; + } +} +if(!__webpack_require__.federation.instance){ + + __webpack_require__.federation.instance = __webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions); + if(__webpack_require__.federation.attachShareScopeMap){ + __webpack_require__.federation.attachShareScopeMap(__webpack_require__) + } + if(__webpack_require__.federation.installInitialConsumes){ + __webpack_require__.federation.installInitialConsumes() + } + + if(!__webpack_require__.federation.isMFRemote && __webpack_require__.federation.prefetch){ + __webpack_require__.federation.prefetch() + } +} + +/***/ }), + +/***/ "./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +/***/ (() => { + +globalThis.__INITIALIZE_CORE__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_1__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_2__ = true; + + +/***/ }), + +/***/ "./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +/***/ }), + +/***/ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.15.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/******/ // the startup function +/******/ __webpack_require__.x = x => {}; +/************************************************************************/ +/******/ /* webpack/runtime/federation runtime */ +/******/ (() => { +/******/ if(!__webpack_require__.federation){ +/******/ __webpack_require__.federation = { +/******/ initOptions: {"name":"testContainer","remotes":[],"shareStrategy":"version-first"}, +/******/ chunkMatcher: function(chunkId) {return false}, +/******/ rootOutputDir: "", +/******/ initialConsumes: undefined, +/******/ bundlerRuntimeOptions: {} +/******/ }; +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ if(!initScope) initScope = []; +/******/ // handling circular init calls +/******/ var initToken = initTokens[name]; +/******/ if(!initToken) initToken = initTokens[name] = {}; +/******/ if(initScope.indexOf(initToken) >= 0) return; +/******/ initScope.push(initToken); +/******/ // only runs once +/******/ if(initPromises[name]) return initPromises[name]; +/******/ // creates a new share scope if needed +/******/ if(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {}; +/******/ // runs all init snippets from all modules reachable +/******/ var scope = __webpack_require__.S[name]; +/******/ var warn = (msg) => { +/******/ if (typeof console !== "undefined" && console.warn) console.warn(msg); +/******/ }; +/******/ var uniqueName = undefined; +/******/ var register = (name, version, factory, eager) => { +/******/ var versions = scope[name] = scope[name] || {}; +/******/ var activeVersion = versions[version]; +/******/ if(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager }; +/******/ }; +/******/ var initExternal = (id) => { +/******/ var handleError = (err) => (warn("Initialization of sharing external failed: " + err)); +/******/ try { +/******/ var module = __webpack_require__(id); +/******/ if(!module) return; +/******/ var initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope)) +/******/ if(module.then) return promises.push(module.then(initFn, handleError)); +/******/ var initResult = initFn(module); +/******/ if(initResult && initResult.then) return promises.push(initResult['catch'](handleError)); +/******/ } catch(err) { handleError(err); } +/******/ } +/******/ var promises = []; +/******/ switch(name) { +/******/ } +/******/ if(!promises.length) return initPromises[name] = 1; +/******/ return initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1)); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.federation.initOptions.shared = {} +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ return __webpack_require__.federation.bundlerRuntime.I({ shareScopeName: name, +/******/ webpackRequire: __webpack_require__, +/******/ initPromises: initPromises, +/******/ initTokens: initTokens, +/******/ initScope: initScope, +/******/ }) +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/repack/polyfills */ +/******/ (() => { +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ })(); +/******/ +/******/ /* webpack/runtime/embed/federation */ +/******/ (() => { +/******/ var oldStartup = __webpack_require__.x; +/******/ var hasRun = false; +/******/ __webpack_require__.x = () => { +/******/ if (!hasRun) { +/******/ hasRun = true; +/******/ __webpack_require__(/*! ../../node_modules/.federation/entry.HASH.js */ "../../node_modules/.federation/entry.HASH.js"); +/******/ } +/******/ return oldStartup(); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ // run runtime startup +/******/ __webpack_require__.x(); +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ __webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +/******/ var __webpack_exports__ = __webpack_require__("./index.js"); +/******/ +/******/ })() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('0.21.0') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +/***/ (() => { + +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +/***/ }), + +/***/ "../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +/***/ (() => { + +throw new Error("Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)\\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\\n> import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n| ScriptManager.init();"); + +/***/ }), + +/***/ "../../node_modules/.federation/entry.HASH.js": +/*!********************************************************************************!*\\ + !*** ../../node_modules/.federation/entry.HASH.js ***! + \\********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_21_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.21.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js */ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.21.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js"); + + +if(!__webpack_require__.federation.runtime){ + var prevFederation = __webpack_require__.federation; + __webpack_require__.federation = {} + for(var key in _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_21_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__){ + __webpack_require__.federation[key] = _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_0_21_0_node_modules_module_federation_webpack_bundler_runtime_dist_index_esm_js__WEBPACK_IMPORTED_MODULE_0__[key]; + } + for(var key in prevFederation){ + __webpack_require__.federation[key] = prevFederation[key]; + } +} +if(!__webpack_require__.federation.instance){ + + __webpack_require__.federation.instance = __webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions); + if(__webpack_require__.federation.attachShareScopeMap){ + __webpack_require__.federation.attachShareScopeMap(__webpack_require__) + } + if(__webpack_require__.federation.installInitialConsumes){ + __webpack_require__.federation.installInitialConsumes() + } + + if(!__webpack_require__.federation.isMFRemote && __webpack_require__.federation.prefetch){ + __webpack_require__.federation.prefetch() + } +} + +/***/ }), + +/***/ "./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +/***/ (() => { + +globalThis.__INITIALIZE_CORE__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_1__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_2__ = true; + + +/***/ }), + +/***/ "./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +/***/ }), + +/***/ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@0.21.0/node_modules/@module-federation/webpack-bundler-runtime/dist/index.esm.js": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/******/ // the startup function +/******/ __webpack_require__.x = x => {}; +/************************************************************************/ +/******/ /* webpack/runtime/federation runtime */ +/******/ (() => { +/******/ if(!__webpack_require__.federation){ +/******/ __webpack_require__.federation = { +/******/ initOptions: {"name":"testContainer","remotes":[],"shareStrategy":"version-first"}, +/******/ chunkMatcher: function(chunkId) {return false}, +/******/ rootOutputDir: "", +/******/ bundlerRuntimeOptions: { remotes: { remoteInfos: {}, webpackRequire: __webpack_require__,idToRemoteMap: {}, chunkMapping: {},idToExternalAndNameMapping: {} } } +/******/ }; +/******/ __webpack_require__.consumesLoadingData = {} +/******/ __webpack_require__.remotesLoadingData = {} +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ if(!initScope) initScope = []; +/******/ // handling circular init calls +/******/ var initToken = initTokens[name]; +/******/ if(!initToken) initToken = initTokens[name] = {}; +/******/ if(initScope.indexOf(initToken) >= 0) return; +/******/ initScope.push(initToken); +/******/ // only runs once +/******/ if(initPromises[name]) return initPromises[name]; +/******/ // creates a new share scope if needed +/******/ if(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {}; +/******/ // runs all init snippets from all modules reachable +/******/ var scope = __webpack_require__.S[name]; +/******/ var warn = (msg) => { +/******/ if (typeof console !== "undefined" && console.warn) console.warn(msg); +/******/ }; +/******/ var uniqueName = undefined; +/******/ var register = (name, version, factory, eager) => { +/******/ var versions = scope[name] = scope[name] || {}; +/******/ var activeVersion = versions[version]; +/******/ if(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager }; +/******/ }; +/******/ var initExternal = (id) => { +/******/ var handleError = (err) => (warn("Initialization of sharing external failed: " + err)); +/******/ try { +/******/ var module = __webpack_require__(id); +/******/ if(!module) return; +/******/ var initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope)) +/******/ if(module.then) return promises.push(module.then(initFn, handleError)); +/******/ var initResult = initFn(module); +/******/ if(initResult && initResult.then) return promises.push(initResult['catch'](handleError)); +/******/ } catch(err) { handleError(err); } +/******/ } +/******/ var promises = []; +/******/ switch(name) { +/******/ } +/******/ if(!promises.length) return initPromises[name] = 1; +/******/ return initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1)); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.federation.initOptions.shared = {} +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ return __webpack_require__.federation.bundlerRuntime.I({ shareScopeName: name, +/******/ webpackRequire: __webpack_require__, +/******/ initPromises: initPromises, +/******/ initTokens: initTokens, +/******/ initScope: initScope, +/******/ }) +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/repack/polyfills */ +/******/ (() => { +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ })(); +/******/ +/******/ /* webpack/runtime/embed/federation */ +/******/ (() => { +/******/ var prevStartup = __webpack_require__.x; +/******/ var hasRun = false; +/******/ __webpack_require__.x = () => { +/******/ if (!hasRun) { +/******/ hasRun = true; +/******/ __webpack_require__(/*! ../../node_modules/.federation/entry.HASH.js */ "../../node_modules/.federation/entry.HASH.js"); +/******/ } +/******/ if (typeof prevStartup === 'function') { +/******/ return prevStartup(); +/******/ } else { +/******/ console.warn('[Module Federation] prevStartup is not a function, skipping startup execution'); +/******/ } +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ // run runtime startup +/******/ __webpack_require__.x(); +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ __webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +/******/ var __webpack_exports__ = __webpack_require__("./index.js"); +/******/ +/******/ })() +;" +`; + +exports[`NativeEntryPlugin > with Module Federation v2 ('2.0.1') > should execute polyfills runtime module before MF v2 federation runtime 1`] = ` +"/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +/***/ (() => { + +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +/***/ }), + +/***/ "../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +/***/ (() => { + +throw new Error("Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)\\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\\n> import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n| ScriptManager.init();"); + +/***/ }), + +/***/ "../../node_modules/.federation/entry.HASH.js": +/*!********************************************************************************!*\\ + !*** ../../node_modules/.federation/entry.HASH.js ***! + \\********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_2_0_1_node_modules_module_federation_webpack_bundler_runtime_dist_index_cjs_cjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/.pnpm/@module-federation+webpack-bundler-runtime@2.0.1/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs */ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@2.0.1/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs"); + + +if(!__webpack_require__.federation.runtime){ + var prevFederation = __webpack_require__.federation; + __webpack_require__.federation = {} + for(var key in _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_2_0_1_node_modules_module_federation_webpack_bundler_runtime_dist_index_cjs_cjs__WEBPACK_IMPORTED_MODULE_0__){ + __webpack_require__.federation[key] = _rootDir__node_modules_pnpm_module_federation_webpack_bundler_runtime_2_0_1_node_modules_module_federation_webpack_bundler_runtime_dist_index_cjs_cjs__WEBPACK_IMPORTED_MODULE_0__[key]; + } + for(var key in prevFederation){ + __webpack_require__.federation[key] = prevFederation[key]; + } +} +if(!__webpack_require__.federation.instance){ + + __webpack_require__.federation.instance = __webpack_require__.federation.bundlerRuntime.init({webpackRequire:__webpack_require__}); + if(__webpack_require__.federation.attachShareScopeMap){ + __webpack_require__.federation.attachShareScopeMap(__webpack_require__) + } + if(__webpack_require__.federation.installInitialConsumes){ + __webpack_require__.federation.installInitialConsumes() + } + + if(!__webpack_require__.federation.isMFRemote && __webpack_require__.federation.prefetch){ + __webpack_require__.federation.prefetch() + } +} + +/***/ }), + +/***/ "./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +/***/ (() => { + +globalThis.__INITIALIZE_CORE__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_1__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_2__ = true; + + +/***/ }), + +/***/ "./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +/***/ }), + +/***/ "/node_modules/.pnpm/@module-federation+webpack-bundler-runtime@2.0.1/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs.cjs": +/*!*********************************************!*\\ + !*** external "globalThis.__MF_EXTERNAL__" ***! + \\*********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = globalThis.__MF_EXTERNAL__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/******/ // the startup function +/******/ __webpack_require__.x = x => {}; +/************************************************************************/ +/******/ /* webpack/runtime/federation runtime */ +/******/ (() => { +/******/ if(!__webpack_require__.federation){ +/******/ __webpack_require__.federation = { +/******/ initOptions: {"name":"testContainer","remotes":[],"shareStrategy":"version-first"}, +/******/ chunkMatcher: function(chunkId) {return false}, +/******/ rootOutputDir: "", +/******/ bundlerRuntimeOptions: { remotes: { remoteInfos: {}, webpackRequire: __webpack_require__,idToRemoteMap: {}, chunkMapping: {},idToExternalAndNameMapping: {} } } +/******/ }; +/******/ __webpack_require__.consumesLoadingData = {} +/******/ __webpack_require__.remotesLoadingData = {} +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ if(!initScope) initScope = []; +/******/ // handling circular init calls +/******/ var initToken = initTokens[name]; +/******/ if(!initToken) initToken = initTokens[name] = {}; +/******/ if(initScope.indexOf(initToken) >= 0) return; +/******/ initScope.push(initToken); +/******/ // only runs once +/******/ if(initPromises[name]) return initPromises[name]; +/******/ // creates a new share scope if needed +/******/ if(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {}; +/******/ // runs all init snippets from all modules reachable +/******/ var scope = __webpack_require__.S[name]; +/******/ var warn = (msg) => { +/******/ if (typeof console !== "undefined" && console.warn) console.warn(msg); +/******/ }; +/******/ var uniqueName = undefined; +/******/ var register = (name, version, factory, eager) => { +/******/ var versions = scope[name] = scope[name] || {}; +/******/ var activeVersion = versions[version]; +/******/ if(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager }; +/******/ }; +/******/ var initExternal = (id) => { +/******/ var handleError = (err) => (warn("Initialization of sharing external failed: " + err)); +/******/ try { +/******/ var module = __webpack_require__(id); +/******/ if(!module) return; +/******/ var initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope)) +/******/ if(module.then) return promises.push(module.then(initFn, handleError)); +/******/ var initResult = initFn(module); +/******/ if(initResult && initResult.then) return promises.push(initResult['catch'](handleError)); +/******/ } catch(err) { handleError(err); } +/******/ } +/******/ var promises = []; +/******/ switch(name) { +/******/ } +/******/ if(!promises.length) return initPromises[name] = 1; +/******/ return initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1)); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/sharing */ +/******/ (() => { +/******/ __webpack_require__.federation.initOptions.shared = {} +/******/ __webpack_require__.S = {}; +/******/ var initPromises = {}; +/******/ var initTokens = {}; +/******/ __webpack_require__.I = (name, initScope) => { +/******/ return __webpack_require__.federation.bundlerRuntime.I({ shareScopeName: name, +/******/ webpackRequire: __webpack_require__, +/******/ initPromises: initPromises, +/******/ initTokens: initTokens, +/******/ initScope: initScope, +/******/ }) +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/repack/polyfills */ +/******/ (() => { +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ })(); +/******/ +/******/ /* webpack/runtime/embed/federation */ +/******/ (() => { +/******/ var prevStartup = __webpack_require__.x; +/******/ var hasRun = false; +/******/ __webpack_require__.x = () => { +/******/ if (!hasRun) { +/******/ hasRun = true; +/******/ __webpack_require__(/*! ../../node_modules/.federation/entry.HASH.js */ "../../node_modules/.federation/entry.HASH.js"); +/******/ } +/******/ if (typeof prevStartup === 'function') { +/******/ return prevStartup(); +/******/ } else { +/******/ console.warn('[Module Federation] prevStartup is not a function, skipping startup execution'); +/******/ } +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ // run runtime startup +/******/ __webpack_require__.x(); +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ __webpack_require__("./__fixtures__/react-native/Libraries/Core/InitializeCore.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/InitializeScriptManager.js"); +/******/ __webpack_require__("../../../../packages/repack/dist/modules/IncludeModules.js"); +/******/ var __webpack_exports__ = __webpack_require__("./index.js"); +/******/ +/******/ })() +;" +`; + +exports[`NativeEntryPlugin > without Module Federation > should execute polyfills runtime module before entry startup 1`] = ` +"/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "../../../../packages/repack/dist/modules/IncludeModules.js": +/*!******************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/IncludeModules.js ***! + \\******************************************************************/ +/***/ (() => { + +/* + * This module is added as an entry module to prevent stripping of these React Native deep imports from the bundle. + * We use require.resolve from Rspack/Webpack to ensure these modules are included even if not directly used. + * This allows us to include the modules into the bundle without evaluating them. + * These modules are required by assetsLoader and should be shared as deep imports when using ModuleFederation. + */ + +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetRegistry'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); +/*require.resolve*/(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native/Libraries/Image/AssetSourceResolver'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); + +/***/ }), + +/***/ "../../../../packages/repack/dist/modules/InitializeScriptManager.js": +/*!***************************************************************************!*\\ + !*** ../../../../packages/repack/dist/modules/InitializeScriptManager.js ***! + \\***************************************************************************/ +/***/ (() => { + +throw new Error("Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)\\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\\n> import { ScriptManager } from './ScriptManager/ScriptManager.js';\\n| ScriptManager.init();"); + +/***/ }), + +/***/ "./__fixtures__/react-native/Libraries/Core/InitializeCore.js": +/*!********************************************************************!*\\ + !*** ./__fixtures__/react-native/Libraries/Core/InitializeCore.js ***! + \\********************************************************************/ +/***/ (() => { + +globalThis.__INITIALIZE_CORE__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill1.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill1.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_1__ = true; + + +/***/ }), + +/***/ "./__fixtures__/react-native/polyfill2.js": +/*!************************************************!*\\ + !*** ./__fixtures__/react-native/polyfill2.js ***! + \\************************************************/ +/***/ (() => { + +globalThis.__POLYFILL_2__ = true; + + +/***/ }), + +/***/ "./index.js": +/*!******************!*\\ + !*** ./index.js ***! + \\******************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +globalThis.__APP_ENTRY__ = true; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/repack/polyfills */ +/******/ (() => { +/******/ __webpack_require__("./__fixtures__/react-native/polyfill1.js"); +/******/ __webpack_require__("./__fixtures__/react-native/polyfill2.js"); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ __webpack_modules__["./__fixtures__/react-native/polyfill1.js"](0, {}, __webpack_require__); +/******/ __webpack_modules__["./__fixtures__/react-native/polyfill2.js"](0, {}, __webpack_require__); +/******/ __webpack_modules__["./__fixtures__/react-native/Libraries/Core/InitializeCore.js"](0, {}, __webpack_require__); +/******/ // This entry module doesn't tell about it's top-level declarations so it can't be inlined +/******/ __webpack_modules__["../../../../packages/repack/dist/modules/InitializeScriptManager.js"](0, {}, __webpack_require__); +/******/ __webpack_modules__["../../../../packages/repack/dist/modules/IncludeModules.js"](0, {}, __webpack_require__); +/******/ var __webpack_exports__ = {}; +/******/ __webpack_modules__["./index.js"](0, __webpack_exports__, __webpack_require__); +/******/ +/******/ })() +;" +`; diff --git a/website/src/latest/api/plugins/internal.md b/website/src/latest/api/plugins/internal.md index 03c047846..a03439a9d 100644 --- a/website/src/latest/api/plugins/internal.md +++ b/website/src/latest/api/plugins/internal.md @@ -6,6 +6,8 @@ ## NativeEntryPlugin +Plugin that sets up the React Native entry point for each compilation entry. It adds React Native polyfills, `InitializeCore`, `InitializeScriptManager`, and `IncludeModules` as entry modules processed through the standard loader pipeline. A companion runtime module (`PolyfillsRuntimeModule`) ensures polyfills execute before Module Federation's startup wrapper, regardless of the federation version or bundler used. + ## DevelopmentPlugin ## RepackTargetPlugin