@module-federation/bridge-react 0.0.0-chore-bump-node-22-20260710161714

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +131 -0
  3. package/dist/base.cjs.js +29 -0
  4. package/dist/base.d.ts +311 -0
  5. package/dist/base.es.js +30 -0
  6. package/dist/bridge-base-CIOXqUYV.mjs +214 -0
  7. package/dist/bridge-base-HLp3d7aF.js +229 -0
  8. package/dist/createHelpers-BY5Uj9_Z.mjs +192 -0
  9. package/dist/createHelpers-DNBacpxb.js +191 -0
  10. package/dist/data-fetch-server-middleware.cjs.js +163 -0
  11. package/dist/data-fetch-server-middleware.d.ts +15 -0
  12. package/dist/data-fetch-server-middleware.es.js +164 -0
  13. package/dist/data-fetch-utils.cjs.js +24 -0
  14. package/dist/data-fetch-utils.d.ts +81 -0
  15. package/dist/data-fetch-utils.es.js +26 -0
  16. package/dist/data-fetch.cjs.js +22 -0
  17. package/dist/data-fetch.d.ts +140 -0
  18. package/dist/data-fetch.es.js +22 -0
  19. package/dist/index-Bs2NxD2z.mjs +46 -0
  20. package/dist/index-DbjGCKOr.js +45 -0
  21. package/dist/index.cjs.js +125 -0
  22. package/dist/index.d.ts +299 -0
  23. package/dist/index.es.js +109 -0
  24. package/dist/lazy-load-component-plugin-BjMVNoep.js +521 -0
  25. package/dist/lazy-load-component-plugin-aj97Vt-4.mjs +522 -0
  26. package/dist/lazy-load-component-plugin.cjs.js +6 -0
  27. package/dist/lazy-load-component-plugin.d.ts +16 -0
  28. package/dist/lazy-load-component-plugin.es.js +6 -0
  29. package/dist/lazy-utils.cjs.js +24 -0
  30. package/dist/lazy-utils.d.ts +149 -0
  31. package/dist/lazy-utils.es.js +24 -0
  32. package/dist/logger-DwWkXsWl.mjs +139 -0
  33. package/dist/logger-Dxblx6P-.js +138 -0
  34. package/dist/plugin.cjs.js +14 -0
  35. package/dist/plugin.d.ts +22 -0
  36. package/dist/plugin.es.js +14 -0
  37. package/dist/prefetch-BwRDb4SJ.mjs +1082 -0
  38. package/dist/prefetch-DLhPTofn.js +1081 -0
  39. package/dist/router-v5.cjs.js +57 -0
  40. package/dist/router-v5.d.ts +17 -0
  41. package/dist/router-v5.es.js +34 -0
  42. package/dist/router-v6.cjs.js +84 -0
  43. package/dist/router-v6.d.ts +20 -0
  44. package/dist/router-v6.es.js +61 -0
  45. package/dist/router-v7.cjs.js +85 -0
  46. package/dist/router-v7.d.ts +19 -0
  47. package/dist/router-v7.es.js +63 -0
  48. package/dist/router.cjs.js +82 -0
  49. package/dist/router.d.ts +20 -0
  50. package/dist/router.es.js +60 -0
  51. package/dist/utils-CFTy4LVE.js +2029 -0
  52. package/dist/utils-DGS4pYp8.mjs +2030 -0
  53. package/dist/v18.cjs.js +15 -0
  54. package/dist/v18.d.ts +114 -0
  55. package/dist/v18.es.js +15 -0
  56. package/dist/v19.cjs.js +15 -0
  57. package/dist/v19.d.ts +115 -0
  58. package/dist/v19.es.js +15 -0
  59. package/package.json +189 -0
@@ -0,0 +1,214 @@
1
+ import * as React from "react";
2
+ import { Component, createElement, createContext } from "react";
3
+ import { L as LoggerInstance, R as RouterContext } from "./index-Bs2NxD2z.mjs";
4
+ import { federationRuntime } from "./plugin.es.js";
5
+ const ErrorBoundaryContext = createContext(null);
6
+ const initialState = {
7
+ didCatch: false,
8
+ error: null
9
+ };
10
+ class ErrorBoundary extends Component {
11
+ constructor(props) {
12
+ super(props);
13
+ this.resetErrorBoundary = this.resetErrorBoundary.bind(this);
14
+ this.state = initialState;
15
+ }
16
+ static getDerivedStateFromError(error) {
17
+ return {
18
+ didCatch: true,
19
+ error
20
+ };
21
+ }
22
+ resetErrorBoundary() {
23
+ const {
24
+ error
25
+ } = this.state;
26
+ if (error !== null) {
27
+ var _this$props$onReset, _this$props;
28
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
+ args[_key] = arguments[_key];
30
+ }
31
+ (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {
32
+ args,
33
+ reason: "imperative-api"
34
+ });
35
+ this.setState(initialState);
36
+ }
37
+ }
38
+ componentDidCatch(error, info) {
39
+ var _this$props$onError, _this$props2;
40
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
41
+ }
42
+ componentDidUpdate(prevProps, prevState) {
43
+ const {
44
+ didCatch
45
+ } = this.state;
46
+ const {
47
+ resetKeys
48
+ } = this.props;
49
+ if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {
50
+ var _this$props$onReset2, _this$props3;
51
+ (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {
52
+ next: resetKeys,
53
+ prev: prevProps.resetKeys,
54
+ reason: "keys"
55
+ });
56
+ this.setState(initialState);
57
+ }
58
+ }
59
+ render() {
60
+ const {
61
+ children,
62
+ fallbackRender,
63
+ FallbackComponent,
64
+ fallback
65
+ } = this.props;
66
+ const {
67
+ didCatch,
68
+ error
69
+ } = this.state;
70
+ let childToRender = children;
71
+ if (didCatch) {
72
+ const props = {
73
+ error,
74
+ resetErrorBoundary: this.resetErrorBoundary
75
+ };
76
+ if (typeof fallbackRender === "function") {
77
+ childToRender = fallbackRender(props);
78
+ } else if (FallbackComponent) {
79
+ childToRender = createElement(FallbackComponent, props);
80
+ } else if (fallback !== void 0) {
81
+ childToRender = fallback;
82
+ } else {
83
+ throw error;
84
+ }
85
+ }
86
+ return createElement(ErrorBoundaryContext.Provider, {
87
+ value: {
88
+ didCatch,
89
+ error,
90
+ resetErrorBoundary: this.resetErrorBoundary
91
+ }
92
+ }, childToRender);
93
+ }
94
+ }
95
+ function hasArrayChanged() {
96
+ let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
97
+ let b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
98
+ return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));
99
+ }
100
+ function createBaseBridgeComponent({
101
+ createRoot,
102
+ defaultRootOptions,
103
+ ...bridgeInfo
104
+ }) {
105
+ return () => {
106
+ const rootMap = /* @__PURE__ */ new Map();
107
+ const instance = federationRuntime.instance;
108
+ LoggerInstance.debug(
109
+ `createBridgeComponent instance from props >>>`,
110
+ instance
111
+ );
112
+ const RawComponent = (info) => {
113
+ const { appInfo, propsInfo, ...restProps } = info;
114
+ const { moduleName, memoryRoute, basename = "/" } = appInfo;
115
+ return /* @__PURE__ */ React.createElement(RouterContext.Provider, { value: { moduleName, basename, memoryRoute } }, /* @__PURE__ */ React.createElement(
116
+ bridgeInfo.rootComponent,
117
+ {
118
+ ...propsInfo,
119
+ basename,
120
+ ...restProps
121
+ }
122
+ ));
123
+ };
124
+ const DefaultFallback = ({ error }) => /* @__PURE__ */ React.createElement("div", { role: "alert" }, /* @__PURE__ */ React.createElement("p", null, "Something went wrong:"), /* @__PURE__ */ React.createElement("pre", { style: { color: "red" } }, error.message));
125
+ const ErrorBoundaryComponent = ErrorBoundary;
126
+ const omitHostFallback = (props) => {
127
+ const nextProps = { ...props };
128
+ delete nextProps.fallback;
129
+ return nextProps;
130
+ };
131
+ const BridgeWrapper = ({
132
+ basename,
133
+ moduleName,
134
+ memoryRoute,
135
+ propsInfo
136
+ }) => /* @__PURE__ */ React.createElement(ErrorBoundaryComponent, { FallbackComponent: DefaultFallback }, /* @__PURE__ */ React.createElement(
137
+ RawComponent,
138
+ {
139
+ appInfo: {
140
+ moduleName,
141
+ basename,
142
+ memoryRoute
143
+ },
144
+ propsInfo
145
+ }
146
+ ));
147
+ return {
148
+ async render(info) {
149
+ var _a, _b, _c, _d, _e, _f;
150
+ LoggerInstance.debug(`createBridgeComponent render Info`, info);
151
+ const {
152
+ moduleName,
153
+ dom,
154
+ basename,
155
+ memoryRoute,
156
+ rootOptions,
157
+ ...propsInfo
158
+ } = info;
159
+ const mergedRootOptions = {
160
+ ...defaultRootOptions,
161
+ ...rootOptions
162
+ };
163
+ const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(info)) || {};
164
+ const rootComponentWithErrorBoundary = /* @__PURE__ */ React.createElement(
165
+ BridgeWrapper,
166
+ {
167
+ basename,
168
+ moduleName,
169
+ memoryRoute,
170
+ propsInfo: {
171
+ ...omitHostFallback(propsInfo),
172
+ basename,
173
+ ...beforeBridgeRenderRes == null ? void 0 : beforeBridgeRenderRes.extraProps
174
+ }
175
+ }
176
+ );
177
+ if (bridgeInfo.render) {
178
+ await Promise.resolve(
179
+ bridgeInfo.render(rootComponentWithErrorBoundary, dom)
180
+ ).then((root) => rootMap.set(dom, root));
181
+ } else {
182
+ let root = rootMap.get(dom);
183
+ if (!root && createRoot) {
184
+ root = createRoot(dom, mergedRootOptions);
185
+ rootMap.set(dom, root);
186
+ }
187
+ if (root && "render" in root) {
188
+ root.render(rootComponentWithErrorBoundary);
189
+ }
190
+ }
191
+ ((_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(info)) || {};
192
+ },
193
+ destroy(info) {
194
+ var _a, _b, _c;
195
+ const { dom } = info;
196
+ LoggerInstance.debug(`createBridgeComponent destroy Info`, info);
197
+ const root = rootMap.get(dom);
198
+ if (root) {
199
+ if ("unmount" in root) {
200
+ root.unmount();
201
+ } else {
202
+ LoggerInstance.warn("Root does not have unmount method");
203
+ }
204
+ rootMap.delete(dom);
205
+ }
206
+ (_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.afterBridgeDestroy) == null ? void 0 : _c.emit(info);
207
+ }
208
+ };
209
+ };
210
+ }
211
+ export {
212
+ ErrorBoundary as E,
213
+ createBaseBridgeComponent as c
214
+ };
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ const React = require("react");
3
+ const index = require("./index-DbjGCKOr.js");
4
+ const plugin = require("./plugin.cjs.js");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
22
+ const ErrorBoundaryContext = React.createContext(null);
23
+ const initialState = {
24
+ didCatch: false,
25
+ error: null
26
+ };
27
+ class ErrorBoundary extends React.Component {
28
+ constructor(props) {
29
+ super(props);
30
+ this.resetErrorBoundary = this.resetErrorBoundary.bind(this);
31
+ this.state = initialState;
32
+ }
33
+ static getDerivedStateFromError(error) {
34
+ return {
35
+ didCatch: true,
36
+ error
37
+ };
38
+ }
39
+ resetErrorBoundary() {
40
+ const {
41
+ error
42
+ } = this.state;
43
+ if (error !== null) {
44
+ var _this$props$onReset, _this$props;
45
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
46
+ args[_key] = arguments[_key];
47
+ }
48
+ (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {
49
+ args,
50
+ reason: "imperative-api"
51
+ });
52
+ this.setState(initialState);
53
+ }
54
+ }
55
+ componentDidCatch(error, info) {
56
+ var _this$props$onError, _this$props2;
57
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
58
+ }
59
+ componentDidUpdate(prevProps, prevState) {
60
+ const {
61
+ didCatch
62
+ } = this.state;
63
+ const {
64
+ resetKeys
65
+ } = this.props;
66
+ if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {
67
+ var _this$props$onReset2, _this$props3;
68
+ (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {
69
+ next: resetKeys,
70
+ prev: prevProps.resetKeys,
71
+ reason: "keys"
72
+ });
73
+ this.setState(initialState);
74
+ }
75
+ }
76
+ render() {
77
+ const {
78
+ children,
79
+ fallbackRender,
80
+ FallbackComponent,
81
+ fallback
82
+ } = this.props;
83
+ const {
84
+ didCatch,
85
+ error
86
+ } = this.state;
87
+ let childToRender = children;
88
+ if (didCatch) {
89
+ const props = {
90
+ error,
91
+ resetErrorBoundary: this.resetErrorBoundary
92
+ };
93
+ if (typeof fallbackRender === "function") {
94
+ childToRender = fallbackRender(props);
95
+ } else if (FallbackComponent) {
96
+ childToRender = React.createElement(FallbackComponent, props);
97
+ } else if (fallback !== void 0) {
98
+ childToRender = fallback;
99
+ } else {
100
+ throw error;
101
+ }
102
+ }
103
+ return React.createElement(ErrorBoundaryContext.Provider, {
104
+ value: {
105
+ didCatch,
106
+ error,
107
+ resetErrorBoundary: this.resetErrorBoundary
108
+ }
109
+ }, childToRender);
110
+ }
111
+ }
112
+ function hasArrayChanged() {
113
+ let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
114
+ let b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
115
+ return a.length !== b.length || a.some((item, index2) => !Object.is(item, b[index2]));
116
+ }
117
+ function createBaseBridgeComponent({
118
+ createRoot,
119
+ defaultRootOptions,
120
+ ...bridgeInfo
121
+ }) {
122
+ return () => {
123
+ const rootMap = /* @__PURE__ */ new Map();
124
+ const instance = plugin.federationRuntime.instance;
125
+ index.LoggerInstance.debug(
126
+ `createBridgeComponent instance from props >>>`,
127
+ instance
128
+ );
129
+ const RawComponent = (info) => {
130
+ const { appInfo, propsInfo, ...restProps } = info;
131
+ const { moduleName, memoryRoute, basename = "/" } = appInfo;
132
+ return /* @__PURE__ */ React__namespace.createElement(index.RouterContext.Provider, { value: { moduleName, basename, memoryRoute } }, /* @__PURE__ */ React__namespace.createElement(
133
+ bridgeInfo.rootComponent,
134
+ {
135
+ ...propsInfo,
136
+ basename,
137
+ ...restProps
138
+ }
139
+ ));
140
+ };
141
+ const DefaultFallback = ({ error }) => /* @__PURE__ */ React__namespace.createElement("div", { role: "alert" }, /* @__PURE__ */ React__namespace.createElement("p", null, "Something went wrong:"), /* @__PURE__ */ React__namespace.createElement("pre", { style: { color: "red" } }, error.message));
142
+ const ErrorBoundaryComponent = ErrorBoundary;
143
+ const omitHostFallback = (props) => {
144
+ const nextProps = { ...props };
145
+ delete nextProps.fallback;
146
+ return nextProps;
147
+ };
148
+ const BridgeWrapper = ({
149
+ basename,
150
+ moduleName,
151
+ memoryRoute,
152
+ propsInfo
153
+ }) => /* @__PURE__ */ React__namespace.createElement(ErrorBoundaryComponent, { FallbackComponent: DefaultFallback }, /* @__PURE__ */ React__namespace.createElement(
154
+ RawComponent,
155
+ {
156
+ appInfo: {
157
+ moduleName,
158
+ basename,
159
+ memoryRoute
160
+ },
161
+ propsInfo
162
+ }
163
+ ));
164
+ return {
165
+ async render(info) {
166
+ var _a, _b, _c, _d, _e, _f;
167
+ index.LoggerInstance.debug(`createBridgeComponent render Info`, info);
168
+ const {
169
+ moduleName,
170
+ dom,
171
+ basename,
172
+ memoryRoute,
173
+ rootOptions,
174
+ ...propsInfo
175
+ } = info;
176
+ const mergedRootOptions = {
177
+ ...defaultRootOptions,
178
+ ...rootOptions
179
+ };
180
+ const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(info)) || {};
181
+ const rootComponentWithErrorBoundary = /* @__PURE__ */ React__namespace.createElement(
182
+ BridgeWrapper,
183
+ {
184
+ basename,
185
+ moduleName,
186
+ memoryRoute,
187
+ propsInfo: {
188
+ ...omitHostFallback(propsInfo),
189
+ basename,
190
+ ...beforeBridgeRenderRes == null ? void 0 : beforeBridgeRenderRes.extraProps
191
+ }
192
+ }
193
+ );
194
+ if (bridgeInfo.render) {
195
+ await Promise.resolve(
196
+ bridgeInfo.render(rootComponentWithErrorBoundary, dom)
197
+ ).then((root) => rootMap.set(dom, root));
198
+ } else {
199
+ let root = rootMap.get(dom);
200
+ if (!root && createRoot) {
201
+ root = createRoot(dom, mergedRootOptions);
202
+ rootMap.set(dom, root);
203
+ }
204
+ if (root && "render" in root) {
205
+ root.render(rootComponentWithErrorBoundary);
206
+ }
207
+ }
208
+ ((_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(info)) || {};
209
+ },
210
+ destroy(info) {
211
+ var _a, _b, _c;
212
+ const { dom } = info;
213
+ index.LoggerInstance.debug(`createBridgeComponent destroy Info`, info);
214
+ const root = rootMap.get(dom);
215
+ if (root) {
216
+ if ("unmount" in root) {
217
+ root.unmount();
218
+ } else {
219
+ index.LoggerInstance.warn("Root does not have unmount method");
220
+ }
221
+ rootMap.delete(dom);
222
+ }
223
+ (_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.afterBridgeDestroy) == null ? void 0 : _c.emit(info);
224
+ }
225
+ };
226
+ };
227
+ }
228
+ exports.ErrorBoundary = ErrorBoundary;
229
+ exports.createBaseBridgeComponent = createBaseBridgeComponent;
@@ -0,0 +1,192 @@
1
+ import { c as createBaseBridgeComponent, E as ErrorBoundary } from "./bridge-base-CIOXqUYV.mjs";
2
+ import ReactDOM from "react-dom";
3
+ import { L as LoggerInstance, g as getRootDomDefaultClassName } from "./index-Bs2NxD2z.mjs";
4
+ import React__default, { forwardRef, useRef, useState, useEffect } from "react";
5
+ import { federationRuntime } from "./plugin.es.js";
6
+ function createReact16Or17Root(container) {
7
+ return {
8
+ render(children) {
9
+ const reactVersion = ReactDOM.version || "";
10
+ const isReact18 = reactVersion.startsWith("18");
11
+ const isReact19 = reactVersion.startsWith("19");
12
+ if (isReact19) {
13
+ throw new Error(
14
+ `React 19 detected in legacy mode. This is not supported. Please use the version-specific import: import { createBridgeComponent } from '@module-federation/bridge-react/v19'`
15
+ );
16
+ }
17
+ if (isReact18) {
18
+ LoggerInstance.warn(
19
+ `[Bridge-React] React 18 detected in legacy mode. For better compatibility, please use the version-specific import: import { createBridgeComponent } from '@module-federation/bridge-react/v18'`
20
+ );
21
+ }
22
+ ReactDOM.render(children, container);
23
+ },
24
+ unmount() {
25
+ ReactDOM.unmountComponentAtNode(container);
26
+ }
27
+ };
28
+ }
29
+ function createBridgeComponent(bridgeInfo) {
30
+ const fullBridgeInfo = {
31
+ createRoot: createReact16Or17Root,
32
+ ...bridgeInfo
33
+ };
34
+ return createBaseBridgeComponent(fullBridgeInfo);
35
+ }
36
+ const RemoteAppWrapper = forwardRef(function(props, ref) {
37
+ const {
38
+ moduleName,
39
+ memoryRoute,
40
+ basename,
41
+ providerInfo,
42
+ className,
43
+ style,
44
+ fallback,
45
+ loading,
46
+ ...resProps
47
+ } = props;
48
+ const instance = federationRuntime.instance;
49
+ const rootRef = ref && "current" in ref ? ref : useRef(null);
50
+ const renderDom = useRef(null);
51
+ const providerInfoRef = useRef(null);
52
+ const [initialized, setInitialized] = useState(false);
53
+ LoggerInstance.debug(`RemoteAppWrapper instance from props >>>`, instance);
54
+ useEffect(() => {
55
+ if (initialized) return;
56
+ const providerReturn = providerInfo();
57
+ providerInfoRef.current = providerReturn;
58
+ setInitialized(true);
59
+ return () => {
60
+ var _a, _b, _c, _d, _e, _f, _g, _h;
61
+ if ((_a = providerInfoRef.current) == null ? void 0 : _a.destroy) {
62
+ LoggerInstance.debug(
63
+ `createRemoteAppComponent LazyComponent destroy >>>`,
64
+ { moduleName, basename, dom: renderDom.current }
65
+ );
66
+ (_d = (_c = (_b = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _b.lifecycle) == null ? void 0 : _c.beforeBridgeDestroy) == null ? void 0 : _d.emit({
67
+ moduleName,
68
+ dom: renderDom.current,
69
+ basename,
70
+ memoryRoute,
71
+ fallback,
72
+ ...resProps
73
+ });
74
+ (_e = providerInfoRef.current) == null ? void 0 : _e.destroy({
75
+ moduleName,
76
+ dom: renderDom.current
77
+ });
78
+ (_h = (_g = (_f = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _f.lifecycle) == null ? void 0 : _g.afterBridgeDestroy) == null ? void 0 : _h.emit({
79
+ moduleName,
80
+ dom: renderDom.current,
81
+ basename,
82
+ memoryRoute,
83
+ fallback,
84
+ ...resProps
85
+ });
86
+ }
87
+ };
88
+ }, [moduleName]);
89
+ useEffect(() => {
90
+ var _a, _b, _c, _d, _e, _f;
91
+ if (!initialized || !providerInfoRef.current) return;
92
+ let renderProps = {
93
+ moduleName,
94
+ dom: rootRef.current,
95
+ basename,
96
+ memoryRoute,
97
+ fallback,
98
+ ...resProps
99
+ };
100
+ renderDom.current = rootRef.current;
101
+ const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(renderProps)) || {};
102
+ renderProps = { ...renderProps, ...beforeBridgeRenderRes.extraProps };
103
+ providerInfoRef.current.render(renderProps);
104
+ (_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(renderProps);
105
+ }, [initialized, ...Object.values(props)]);
106
+ const rootComponentClassName = `${getRootDomDefaultClassName(moduleName)} ${className || ""}`;
107
+ return /* @__PURE__ */ React__default.createElement("div", { className: rootComponentClassName, style, ref: rootRef }, loading);
108
+ });
109
+ function createLazyRemoteComponentFactory(RemoteApp) {
110
+ return function createLazyRemoteComponent(info) {
111
+ const exportName = (info == null ? void 0 : info.export) || "default";
112
+ return React__default.lazy(async () => {
113
+ LoggerInstance.debug(
114
+ `createRemoteAppComponent LazyComponent create >>>`,
115
+ {
116
+ lazyComponent: info.loader,
117
+ exportName
118
+ }
119
+ );
120
+ try {
121
+ const m = await info.loader();
122
+ const moduleName = m && m[Symbol.for("mf_module_id")];
123
+ LoggerInstance.debug(
124
+ `createRemoteAppComponent LazyComponent loadRemote info >>>`,
125
+ { name: moduleName, module: m, exportName }
126
+ );
127
+ const exportFn = m[exportName];
128
+ if (exportName in m && typeof exportFn === "function") {
129
+ const RemoteAppComponent = forwardRef((props, ref) => {
130
+ return /* @__PURE__ */ React__default.createElement(
131
+ RemoteApp,
132
+ {
133
+ moduleName,
134
+ providerInfo: exportFn,
135
+ exportName: info.export || "default",
136
+ fallback: info.fallback,
137
+ loading: info.loading,
138
+ ref,
139
+ ...props
140
+ }
141
+ );
142
+ });
143
+ return {
144
+ default: RemoteAppComponent
145
+ };
146
+ } else {
147
+ LoggerInstance.debug(
148
+ `createRemoteAppComponent LazyComponent module not found >>>`,
149
+ { name: moduleName, module: m, exportName }
150
+ );
151
+ throw Error(
152
+ `Make sure that ${moduleName} has the correct export when export is ${String(
153
+ exportName
154
+ )}`
155
+ );
156
+ }
157
+ } catch (error) {
158
+ throw error;
159
+ }
160
+ });
161
+ };
162
+ }
163
+ function createRemoteAppComponentFactory(RemoteApp) {
164
+ const ErrorBoundaryComponent = ErrorBoundary;
165
+ const createLazyRemoteComponent = createLazyRemoteComponentFactory(RemoteApp);
166
+ return function createRemoteAppComponent(info) {
167
+ const LazyComponent = createLazyRemoteComponent(info);
168
+ return forwardRef((props, ref) => {
169
+ return /* @__PURE__ */ React__default.createElement(
170
+ ErrorBoundaryComponent,
171
+ {
172
+ FallbackComponent: info.fallback
173
+ },
174
+ /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props, ref }))
175
+ );
176
+ });
177
+ };
178
+ }
179
+ function createDeprecatedRemoteComponentFactory(createFn) {
180
+ return function createRemoteComponent(info) {
181
+ LoggerInstance.warn(
182
+ `createRemoteComponent is deprecated, please use createRemoteAppComponent instead!`
183
+ );
184
+ return createFn(info);
185
+ };
186
+ }
187
+ export {
188
+ RemoteAppWrapper as R,
189
+ createDeprecatedRemoteComponentFactory as a,
190
+ createBridgeComponent as b,
191
+ createRemoteAppComponentFactory as c
192
+ };