@module-federation/bridge-react 0.0.0-next-20241113115843 → 0.0.0-next-20241114065146

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.
package/CHANGELOG.md CHANGED
@@ -1,22 +1,12 @@
1
1
  # @module-federation/bridge-react
2
2
 
3
- ## 0.0.0-next-20241113115843
4
-
5
- ### Patch Changes
6
-
7
- - 3082116: feat: feat: support lifecycyle hooks in module-deferation bridge
8
- - Updated dependencies [3082116]
9
- - @module-federation/runtime@0.0.0-next-20241113115843
10
- - @module-federation/sdk@0.0.0-next-20241113115843
11
- - @module-federation/bridge-shared@0.0.0-next-20241113115843
12
-
13
- ## 0.7.3
3
+ ## 0.0.0-next-20241114065146
14
4
 
15
5
  ### Patch Changes
16
6
 
17
7
  - Updated dependencies [4ab9295]
18
- - @module-federation/sdk@0.7.3
19
- - @module-federation/bridge-shared@0.7.3
8
+ - @module-federation/sdk@0.0.0-next-20241114065146
9
+ - @module-federation/bridge-shared@0.0.0-next-20241114065146
20
10
 
21
11
  ## 0.7.2
22
12
 
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ const React = require("react");
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var browser_exports = {};
21
+ __export(browser_exports, {
22
+ createLogger: () => createLogger2,
23
+ logger: () => logger
24
+ });
25
+ var browser = __toCommonJS(browser_exports);
26
+ var supportsSubstitutions = void 0;
27
+ var supportColor = () => {
28
+ if (typeof supportsSubstitutions !== "undefined") {
29
+ return supportsSubstitutions;
30
+ }
31
+ try {
32
+ const testString = "color test";
33
+ const css = "color: red;";
34
+ const originalConsoleLog = console.log;
35
+ console.log = (...args) => {
36
+ if (args[0] === `%c${testString}` && args[1] === css) {
37
+ supportsSubstitutions = true;
38
+ }
39
+ };
40
+ console.log(`%c${testString}`, css);
41
+ console.log = originalConsoleLog;
42
+ } catch (e) {
43
+ supportsSubstitutions = false;
44
+ }
45
+ return supportsSubstitutions;
46
+ };
47
+ var ansiToCss = {
48
+ "bold": "font-weight: bold;",
49
+ "red": "color: red;",
50
+ "green": "color: green;",
51
+ "orange": "color: orange;",
52
+ "dodgerblue": "color: dodgerblue;",
53
+ "magenta": "color: magenta;",
54
+ "gray": "color: gray;"
55
+ };
56
+ var formatter = (key) => supportColor() ? (input) => {
57
+ if (Array.isArray(input)) {
58
+ const [label, style] = input;
59
+ return [`%c${label.replace("%c", "")}`, style ? `${ansiToCss[key]}${style}` : `${ansiToCss[key] || ""}`];
60
+ }
61
+ return [`%c${String(input).replace("%c", "")}`, ansiToCss[key] || ""];
62
+ } : (input) => [String(input)];
63
+ var bold = formatter("bold");
64
+ var red = formatter("red");
65
+ var green = formatter("green");
66
+ var orange = formatter("orange");
67
+ var dodgerblue = formatter("dodgerblue");
68
+ var magenta = formatter("magenta");
69
+ formatter("gray");
70
+ function getLabel(type, logType, labels) {
71
+ let label = [""];
72
+ if ("label" in logType) {
73
+ label = [labels[type] || logType.label || ""];
74
+ label = bold(logType.color ? logType.color(label) : label[0]);
75
+ }
76
+ label = label.filter(Boolean);
77
+ return label;
78
+ }
79
+ function finalLog(label, text, args, message) {
80
+ if (label.length) {
81
+ if (Array.isArray(message)) {
82
+ console.log(...label, ...message);
83
+ } else {
84
+ console.log(...label, text);
85
+ }
86
+ } else {
87
+ Array.isArray(message) ? console.log(...message) : console.log(text, ...args);
88
+ }
89
+ }
90
+ var LOG_LEVEL = {
91
+ error: 0,
92
+ warn: 1,
93
+ info: 2,
94
+ log: 3,
95
+ verbose: 4
96
+ };
97
+ var errorStackRegExp = /at\s.*:\d+:\d+[\s\)]*$/;
98
+ var anonymousErrorStackRegExp = /at\s.*\(<anonymous>\)$/;
99
+ var isErrorStackMessage = (message) => errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message);
100
+ var createLogger$1 = (options = {}, { getLabel: getLabel2, handleError, finalLog: finalLog2, greet, LOG_TYPES: LOG_TYPES2 }) => {
101
+ let maxLevel = options.level || "log";
102
+ let customLabels = options.labels || {};
103
+ let log = (type, message, ...args) => {
104
+ if (LOG_LEVEL[LOG_TYPES2[type].level] > LOG_LEVEL[maxLevel]) {
105
+ return;
106
+ }
107
+ if (message === void 0 || message === null) {
108
+ return console.log();
109
+ }
110
+ let logType = LOG_TYPES2[type];
111
+ let text = "";
112
+ const label = getLabel2(type, logType, customLabels);
113
+ if (message instanceof Error) {
114
+ if (message.stack) {
115
+ let [name, ...rest] = message.stack.split("\n");
116
+ if (name.startsWith("Error: ")) {
117
+ name = name.slice(7);
118
+ }
119
+ text = `${name}
120
+ ${handleError(rest.join("\n"))}`;
121
+ } else {
122
+ text = message.message;
123
+ }
124
+ } else if (logType.level === "error" && typeof message === "string") {
125
+ let lines = message.split("\n");
126
+ text = lines.map((line) => isErrorStackMessage(line) ? handleError(line) : line).join("\n");
127
+ } else {
128
+ text = `${message}`;
129
+ }
130
+ finalLog2(label, text, args, message);
131
+ };
132
+ let logger2 = {
133
+ // greet
134
+ greet: (message) => log("log", greet(message))
135
+ };
136
+ Object.keys(LOG_TYPES2).forEach((key) => {
137
+ logger2[key] = (...args) => log(key, ...args);
138
+ });
139
+ Object.defineProperty(logger2, "level", {
140
+ get: () => maxLevel,
141
+ set(val) {
142
+ maxLevel = val;
143
+ }
144
+ });
145
+ Object.defineProperty(logger2, "labels", {
146
+ get: () => customLabels,
147
+ set(val) {
148
+ customLabels = val;
149
+ }
150
+ });
151
+ logger2.override = (customLogger) => {
152
+ Object.assign(logger2, customLogger);
153
+ };
154
+ return logger2;
155
+ };
156
+ var startColor = [189, 255, 243];
157
+ var endColor = [74, 194, 154];
158
+ var isWord = (char) => !/[\s\n]/.test(char);
159
+ function gradient(message) {
160
+ if (!supportColor()) {
161
+ return [message];
162
+ }
163
+ const chars = [...message];
164
+ const words = chars.filter(isWord);
165
+ const steps = words.length - 1;
166
+ if (steps === 0) {
167
+ console.log(`%c${message}`, `color: rgb(${startColor.join(",")}); font-weight: bold;`);
168
+ return [message];
169
+ }
170
+ let output = "";
171
+ let styles = [];
172
+ chars.forEach((char) => {
173
+ if (isWord(char)) {
174
+ const progress = words.indexOf(char) / steps;
175
+ const r = Math.round(startColor[0] + (endColor[0] - startColor[0]) * progress);
176
+ const g = Math.round(startColor[1] + (endColor[1] - startColor[1]) * progress);
177
+ const b = Math.round(startColor[2] + (endColor[2] - startColor[2]) * progress);
178
+ output += `%c${char}`;
179
+ styles.push(`color: rgb(${r},${g},${b}); font-weight: bold;`);
180
+ } else {
181
+ output += char;
182
+ }
183
+ });
184
+ return [output, ...styles];
185
+ }
186
+ var LOG_TYPES = {
187
+ // Level error
188
+ error: {
189
+ label: "error",
190
+ level: "error",
191
+ color: red
192
+ },
193
+ // Level warn
194
+ warn: {
195
+ label: "warn",
196
+ level: "warn",
197
+ color: orange
198
+ },
199
+ // Level info
200
+ info: {
201
+ label: "info",
202
+ level: "info",
203
+ color: dodgerblue
204
+ },
205
+ start: {
206
+ label: "start",
207
+ level: "info",
208
+ color: dodgerblue
209
+ },
210
+ ready: {
211
+ label: "ready",
212
+ level: "info",
213
+ color: green
214
+ },
215
+ success: {
216
+ label: "success",
217
+ level: "info",
218
+ color: green
219
+ },
220
+ // Level log
221
+ log: {
222
+ level: "log"
223
+ },
224
+ // Level debug
225
+ debug: {
226
+ label: "debug",
227
+ level: "verbose",
228
+ color: magenta
229
+ }
230
+ };
231
+ function createLogger2(options = {}) {
232
+ return createLogger$1(options, {
233
+ handleError: (msg) => msg,
234
+ getLabel,
235
+ gradient,
236
+ finalLog,
237
+ LOG_TYPES,
238
+ greet: (msg) => {
239
+ return gradient(msg);
240
+ }
241
+ });
242
+ }
243
+ var logger = createLogger2();
244
+ const BROWSER_LOG_KEY = "FEDERATION_DEBUG";
245
+ const BROWSER_LOG_VALUE = "1";
246
+ function isBrowserEnv() {
247
+ return typeof window !== "undefined";
248
+ }
249
+ function isBrowserDebug() {
250
+ try {
251
+ if (isBrowserEnv() && window.localStorage) {
252
+ return localStorage.getItem(BROWSER_LOG_KEY) === BROWSER_LOG_VALUE;
253
+ }
254
+ } catch (error) {
255
+ return false;
256
+ }
257
+ return false;
258
+ }
259
+ function isDebugMode() {
260
+ if (typeof process !== "undefined" && process.env && process.env["FEDERATION_DEBUG"]) {
261
+ return Boolean(process.env["FEDERATION_DEBUG"]);
262
+ }
263
+ if (typeof FEDERATION_DEBUG !== "undefined" && Boolean(FEDERATION_DEBUG)) {
264
+ return true;
265
+ }
266
+ return isBrowserDebug();
267
+ }
268
+ const PREFIX = "[ Module Federation ]";
269
+ function setDebug(loggerInstance) {
270
+ if (isDebugMode()) {
271
+ loggerInstance.level = "verbose";
272
+ }
273
+ }
274
+ function setPrefix(loggerInstance, prefix) {
275
+ loggerInstance.labels = {
276
+ warn: `${prefix} Warn`,
277
+ error: `${prefix} Error`,
278
+ success: `${prefix} Success`,
279
+ info: `${prefix} Info`,
280
+ ready: `${prefix} Ready`,
281
+ debug: `${prefix} Debug`
282
+ };
283
+ }
284
+ function createLogger(prefix) {
285
+ const loggerInstance = browser.createLogger({
286
+ labels: {
287
+ warn: `${PREFIX} Warn`,
288
+ error: `${PREFIX} Error`,
289
+ success: `${PREFIX} Success`,
290
+ info: `${PREFIX} Info`,
291
+ ready: `${PREFIX} Ready`,
292
+ debug: `${PREFIX} Debug`
293
+ }
294
+ });
295
+ setDebug(loggerInstance);
296
+ setPrefix(loggerInstance, prefix);
297
+ return loggerInstance;
298
+ }
299
+ createLogger(PREFIX);
300
+ const LoggerInstance = createLogger(
301
+ "[ Module Federation Bridge React ]"
302
+ );
303
+ function atLeastReact18(React2) {
304
+ if (React2 && typeof React2.version === "string" && React2.version.indexOf(".") >= 0) {
305
+ const majorVersionString = React2.version.split(".")[0];
306
+ try {
307
+ return Number(majorVersionString) >= 18;
308
+ } catch (err) {
309
+ return false;
310
+ }
311
+ } else {
312
+ return false;
313
+ }
314
+ }
315
+ function pathJoin(...args) {
316
+ const res = args.reduce((res2, path) => {
317
+ let nPath = path;
318
+ if (!nPath || typeof nPath !== "string") {
319
+ return res2;
320
+ }
321
+ if (nPath[0] !== "/") {
322
+ nPath = `/${nPath}`;
323
+ }
324
+ const lastIndex = nPath.length - 1;
325
+ if (nPath[lastIndex] === "/") {
326
+ nPath = nPath.substring(0, lastIndex);
327
+ }
328
+ return res2 + nPath;
329
+ }, "");
330
+ return res || "/";
331
+ }
332
+ const RouterContext = React.createContext(null);
333
+ exports.LoggerInstance = LoggerInstance;
334
+ exports.RouterContext = RouterContext;
335
+ exports.atLeastReact18 = atLeastReact18;
336
+ exports.pathJoin = pathJoin;
@@ -0,0 +1,337 @@
1
+ import React__default from "react";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var browser_exports = {};
20
+ __export(browser_exports, {
21
+ createLogger: () => createLogger2,
22
+ logger: () => logger
23
+ });
24
+ var browser = __toCommonJS(browser_exports);
25
+ var supportsSubstitutions = void 0;
26
+ var supportColor = () => {
27
+ if (typeof supportsSubstitutions !== "undefined") {
28
+ return supportsSubstitutions;
29
+ }
30
+ try {
31
+ const testString = "color test";
32
+ const css = "color: red;";
33
+ const originalConsoleLog = console.log;
34
+ console.log = (...args) => {
35
+ if (args[0] === `%c${testString}` && args[1] === css) {
36
+ supportsSubstitutions = true;
37
+ }
38
+ };
39
+ console.log(`%c${testString}`, css);
40
+ console.log = originalConsoleLog;
41
+ } catch (e) {
42
+ supportsSubstitutions = false;
43
+ }
44
+ return supportsSubstitutions;
45
+ };
46
+ var ansiToCss = {
47
+ "bold": "font-weight: bold;",
48
+ "red": "color: red;",
49
+ "green": "color: green;",
50
+ "orange": "color: orange;",
51
+ "dodgerblue": "color: dodgerblue;",
52
+ "magenta": "color: magenta;",
53
+ "gray": "color: gray;"
54
+ };
55
+ var formatter = (key) => supportColor() ? (input) => {
56
+ if (Array.isArray(input)) {
57
+ const [label, style] = input;
58
+ return [`%c${label.replace("%c", "")}`, style ? `${ansiToCss[key]}${style}` : `${ansiToCss[key] || ""}`];
59
+ }
60
+ return [`%c${String(input).replace("%c", "")}`, ansiToCss[key] || ""];
61
+ } : (input) => [String(input)];
62
+ var bold = formatter("bold");
63
+ var red = formatter("red");
64
+ var green = formatter("green");
65
+ var orange = formatter("orange");
66
+ var dodgerblue = formatter("dodgerblue");
67
+ var magenta = formatter("magenta");
68
+ formatter("gray");
69
+ function getLabel(type, logType, labels) {
70
+ let label = [""];
71
+ if ("label" in logType) {
72
+ label = [labels[type] || logType.label || ""];
73
+ label = bold(logType.color ? logType.color(label) : label[0]);
74
+ }
75
+ label = label.filter(Boolean);
76
+ return label;
77
+ }
78
+ function finalLog(label, text, args, message) {
79
+ if (label.length) {
80
+ if (Array.isArray(message)) {
81
+ console.log(...label, ...message);
82
+ } else {
83
+ console.log(...label, text);
84
+ }
85
+ } else {
86
+ Array.isArray(message) ? console.log(...message) : console.log(text, ...args);
87
+ }
88
+ }
89
+ var LOG_LEVEL = {
90
+ error: 0,
91
+ warn: 1,
92
+ info: 2,
93
+ log: 3,
94
+ verbose: 4
95
+ };
96
+ var errorStackRegExp = /at\s.*:\d+:\d+[\s\)]*$/;
97
+ var anonymousErrorStackRegExp = /at\s.*\(<anonymous>\)$/;
98
+ var isErrorStackMessage = (message) => errorStackRegExp.test(message) || anonymousErrorStackRegExp.test(message);
99
+ var createLogger$1 = (options = {}, { getLabel: getLabel2, handleError, finalLog: finalLog2, greet, LOG_TYPES: LOG_TYPES2 }) => {
100
+ let maxLevel = options.level || "log";
101
+ let customLabels = options.labels || {};
102
+ let log = (type, message, ...args) => {
103
+ if (LOG_LEVEL[LOG_TYPES2[type].level] > LOG_LEVEL[maxLevel]) {
104
+ return;
105
+ }
106
+ if (message === void 0 || message === null) {
107
+ return console.log();
108
+ }
109
+ let logType = LOG_TYPES2[type];
110
+ let text = "";
111
+ const label = getLabel2(type, logType, customLabels);
112
+ if (message instanceof Error) {
113
+ if (message.stack) {
114
+ let [name, ...rest] = message.stack.split("\n");
115
+ if (name.startsWith("Error: ")) {
116
+ name = name.slice(7);
117
+ }
118
+ text = `${name}
119
+ ${handleError(rest.join("\n"))}`;
120
+ } else {
121
+ text = message.message;
122
+ }
123
+ } else if (logType.level === "error" && typeof message === "string") {
124
+ let lines = message.split("\n");
125
+ text = lines.map((line) => isErrorStackMessage(line) ? handleError(line) : line).join("\n");
126
+ } else {
127
+ text = `${message}`;
128
+ }
129
+ finalLog2(label, text, args, message);
130
+ };
131
+ let logger2 = {
132
+ // greet
133
+ greet: (message) => log("log", greet(message))
134
+ };
135
+ Object.keys(LOG_TYPES2).forEach((key) => {
136
+ logger2[key] = (...args) => log(key, ...args);
137
+ });
138
+ Object.defineProperty(logger2, "level", {
139
+ get: () => maxLevel,
140
+ set(val) {
141
+ maxLevel = val;
142
+ }
143
+ });
144
+ Object.defineProperty(logger2, "labels", {
145
+ get: () => customLabels,
146
+ set(val) {
147
+ customLabels = val;
148
+ }
149
+ });
150
+ logger2.override = (customLogger) => {
151
+ Object.assign(logger2, customLogger);
152
+ };
153
+ return logger2;
154
+ };
155
+ var startColor = [189, 255, 243];
156
+ var endColor = [74, 194, 154];
157
+ var isWord = (char) => !/[\s\n]/.test(char);
158
+ function gradient(message) {
159
+ if (!supportColor()) {
160
+ return [message];
161
+ }
162
+ const chars = [...message];
163
+ const words = chars.filter(isWord);
164
+ const steps = words.length - 1;
165
+ if (steps === 0) {
166
+ console.log(`%c${message}`, `color: rgb(${startColor.join(",")}); font-weight: bold;`);
167
+ return [message];
168
+ }
169
+ let output = "";
170
+ let styles = [];
171
+ chars.forEach((char) => {
172
+ if (isWord(char)) {
173
+ const progress = words.indexOf(char) / steps;
174
+ const r = Math.round(startColor[0] + (endColor[0] - startColor[0]) * progress);
175
+ const g = Math.round(startColor[1] + (endColor[1] - startColor[1]) * progress);
176
+ const b = Math.round(startColor[2] + (endColor[2] - startColor[2]) * progress);
177
+ output += `%c${char}`;
178
+ styles.push(`color: rgb(${r},${g},${b}); font-weight: bold;`);
179
+ } else {
180
+ output += char;
181
+ }
182
+ });
183
+ return [output, ...styles];
184
+ }
185
+ var LOG_TYPES = {
186
+ // Level error
187
+ error: {
188
+ label: "error",
189
+ level: "error",
190
+ color: red
191
+ },
192
+ // Level warn
193
+ warn: {
194
+ label: "warn",
195
+ level: "warn",
196
+ color: orange
197
+ },
198
+ // Level info
199
+ info: {
200
+ label: "info",
201
+ level: "info",
202
+ color: dodgerblue
203
+ },
204
+ start: {
205
+ label: "start",
206
+ level: "info",
207
+ color: dodgerblue
208
+ },
209
+ ready: {
210
+ label: "ready",
211
+ level: "info",
212
+ color: green
213
+ },
214
+ success: {
215
+ label: "success",
216
+ level: "info",
217
+ color: green
218
+ },
219
+ // Level log
220
+ log: {
221
+ level: "log"
222
+ },
223
+ // Level debug
224
+ debug: {
225
+ label: "debug",
226
+ level: "verbose",
227
+ color: magenta
228
+ }
229
+ };
230
+ function createLogger2(options = {}) {
231
+ return createLogger$1(options, {
232
+ handleError: (msg) => msg,
233
+ getLabel,
234
+ gradient,
235
+ finalLog,
236
+ LOG_TYPES,
237
+ greet: (msg) => {
238
+ return gradient(msg);
239
+ }
240
+ });
241
+ }
242
+ var logger = createLogger2();
243
+ const BROWSER_LOG_KEY = "FEDERATION_DEBUG";
244
+ const BROWSER_LOG_VALUE = "1";
245
+ function isBrowserEnv() {
246
+ return typeof window !== "undefined";
247
+ }
248
+ function isBrowserDebug() {
249
+ try {
250
+ if (isBrowserEnv() && window.localStorage) {
251
+ return localStorage.getItem(BROWSER_LOG_KEY) === BROWSER_LOG_VALUE;
252
+ }
253
+ } catch (error) {
254
+ return false;
255
+ }
256
+ return false;
257
+ }
258
+ function isDebugMode() {
259
+ if (typeof process !== "undefined" && process.env && process.env["FEDERATION_DEBUG"]) {
260
+ return Boolean(process.env["FEDERATION_DEBUG"]);
261
+ }
262
+ if (typeof FEDERATION_DEBUG !== "undefined" && Boolean(FEDERATION_DEBUG)) {
263
+ return true;
264
+ }
265
+ return isBrowserDebug();
266
+ }
267
+ const PREFIX = "[ Module Federation ]";
268
+ function setDebug(loggerInstance) {
269
+ if (isDebugMode()) {
270
+ loggerInstance.level = "verbose";
271
+ }
272
+ }
273
+ function setPrefix(loggerInstance, prefix) {
274
+ loggerInstance.labels = {
275
+ warn: `${prefix} Warn`,
276
+ error: `${prefix} Error`,
277
+ success: `${prefix} Success`,
278
+ info: `${prefix} Info`,
279
+ ready: `${prefix} Ready`,
280
+ debug: `${prefix} Debug`
281
+ };
282
+ }
283
+ function createLogger(prefix) {
284
+ const loggerInstance = browser.createLogger({
285
+ labels: {
286
+ warn: `${PREFIX} Warn`,
287
+ error: `${PREFIX} Error`,
288
+ success: `${PREFIX} Success`,
289
+ info: `${PREFIX} Info`,
290
+ ready: `${PREFIX} Ready`,
291
+ debug: `${PREFIX} Debug`
292
+ }
293
+ });
294
+ setDebug(loggerInstance);
295
+ setPrefix(loggerInstance, prefix);
296
+ return loggerInstance;
297
+ }
298
+ createLogger(PREFIX);
299
+ const LoggerInstance = createLogger(
300
+ "[ Module Federation Bridge React ]"
301
+ );
302
+ function atLeastReact18(React2) {
303
+ if (React2 && typeof React2.version === "string" && React2.version.indexOf(".") >= 0) {
304
+ const majorVersionString = React2.version.split(".")[0];
305
+ try {
306
+ return Number(majorVersionString) >= 18;
307
+ } catch (err) {
308
+ return false;
309
+ }
310
+ } else {
311
+ return false;
312
+ }
313
+ }
314
+ function pathJoin(...args) {
315
+ const res = args.reduce((res2, path) => {
316
+ let nPath = path;
317
+ if (!nPath || typeof nPath !== "string") {
318
+ return res2;
319
+ }
320
+ if (nPath[0] !== "/") {
321
+ nPath = `/${nPath}`;
322
+ }
323
+ const lastIndex = nPath.length - 1;
324
+ if (nPath[lastIndex] === "/") {
325
+ nPath = nPath.substring(0, lastIndex);
326
+ }
327
+ return res2 + nPath;
328
+ }, "");
329
+ return res || "/";
330
+ }
331
+ const RouterContext = React__default.createContext(null);
332
+ export {
333
+ LoggerInstance as L,
334
+ RouterContext as R,
335
+ atLeastReact18 as a,
336
+ pathJoin as p
337
+ };