@rimori/playwright-testing 0.3.21 → 0.3.22-next.1
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/dist/core/RimoriTestEnvironment.d.ts +36 -4
- package/dist/core/RimoriTestEnvironment.js +160 -11
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare___mf_0_rimori_mf_1_client__loadShare__.js.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare___mf_0_rimori_mf_1_react_mf_2_client__loadShare__.js.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react__loadShare__.js.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react__loadShare__.js_commonjs-proxy.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react_mf_2_dom__loadShare__.js.js +1 -0
- package/dist/harness/__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react_mf_2_dom__loadShare__.js_commonjs-proxy.js +1 -0
- package/dist/harness/hostInit.js +1 -0
- package/dist/harness/html2canvas.esm.js +22 -0
- package/dist/harness/index.html +24 -0
- package/dist/harness/index.js +25 -0
- package/dist/harness/index2.js +8 -0
- package/dist/harness/index3.js +148 -0
- package/dist/harness/index4.js +1 -0
- package/dist/harness/index5.js +9 -0
- package/dist/harness/index6.js +9 -0
- package/dist/harness/index7.js +1 -0
- package/dist/harness/jsx-dev-runtime.js +9 -0
- package/dist/harness/jsx-runtime.js +9 -0
- package/dist/harness/localSharedImportMap.js +1 -0
- package/dist/harness/preload-helper.js +1 -0
- package/dist/harness/remoteEntry.js +1 -0
- package/dist/harness/virtualExposes.js +1 -0
- package/dist/harness/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__rimori-scenario-host__remoteEntry-_hash_.js +8 -0
- package/package.json +17 -5
|
@@ -41,12 +41,24 @@ interface MockOptions {
|
|
|
41
41
|
export declare class RimoriTestEnvironment {
|
|
42
42
|
private readonly page;
|
|
43
43
|
private readonly pluginId;
|
|
44
|
+
private readonly pluginUrl;
|
|
44
45
|
private rimoriInfo;
|
|
45
46
|
private backendRoutes;
|
|
46
47
|
private supabaseRoutes;
|
|
47
48
|
private messageChannelSimulator;
|
|
48
49
|
private settingsManager;
|
|
49
50
|
constructor(options: RimoriTestEnvironmentOptions);
|
|
51
|
+
/**
|
|
52
|
+
* Fetches the plugin's standalone `dist/index.html` over HTTP (served by the plugin
|
|
53
|
+
* dev server's middleware at `/__rimori_dist_index__.html`) and extracts its
|
|
54
|
+
* `<link rel="stylesheet">` tags. The hrefs already point at `/assets/*` which the
|
|
55
|
+
* same dev server serves from `dist/`, so the harness page picks up the plugin's
|
|
56
|
+
* Tailwind base + theme without any filesystem path resolution.
|
|
57
|
+
*
|
|
58
|
+
* Returns empty string if the plugin hasn't been built (`yarn build:scenario`)
|
|
59
|
+
* or the dev server doesn't expose `/__rimori_dist_index__.html`.
|
|
60
|
+
*/
|
|
61
|
+
private collectPluginStylesheets;
|
|
50
62
|
private interceptRoutes;
|
|
51
63
|
setup(): Promise<void>;
|
|
52
64
|
private getRimoriInfo;
|
|
@@ -220,10 +232,13 @@ export declare class RimoriTestEnvironment {
|
|
|
220
232
|
triggerOnSidePanelAction: (payload: SidebarAction) => Promise<void>;
|
|
221
233
|
/**
|
|
222
234
|
* Triggers a main panel action event as the parent application would.
|
|
223
|
-
* This simulates how rimori-main
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
235
|
+
* This simulates how rimori-main sends the MainPanelAction back to the plugin after
|
|
236
|
+
* the plugin calls onMainPanelAction() and emits '{pluginId}.action.requestMain'.
|
|
237
|
+
*
|
|
238
|
+
* We listen for that outbound emit and respond by injecting a fresh event with
|
|
239
|
+
* sender='rimori-main'. This avoids the EventBus per-listener blacklist that would
|
|
240
|
+
* block a {type:'response'} message carrying the same eventId as the original emit.
|
|
241
|
+
*
|
|
227
242
|
* @param payload - The main panel action payload containing plugin_id, action_key, and action parameters
|
|
228
243
|
*/
|
|
229
244
|
triggerOnMainPanelAction: (payload: MainPanelAction) => Promise<void>;
|
|
@@ -463,6 +478,23 @@ export declare class RimoriTestEnvironment {
|
|
|
463
478
|
};
|
|
464
479
|
readonly navigation: {
|
|
465
480
|
mockToDashboard: () => void;
|
|
481
|
+
/**
|
|
482
|
+
* Navigates to a path inside the federated plugin via the scenario harness.
|
|
483
|
+
* The harness URL (`<pluginUrl>/__rimori_harness__.html`) is the base; whatever
|
|
484
|
+
* is passed in `route` is appended verbatim. Tests are responsible for the
|
|
485
|
+
* leading `#/` (HashRouter) or `/` (future BrowserRouter) so the same helper
|
|
486
|
+
* works regardless of which router the plugin uses.
|
|
487
|
+
*
|
|
488
|
+
* @param route - Suffix appended to the harness URL (e.g. `#/`, `#/deck/1`).
|
|
489
|
+
*/
|
|
490
|
+
to: (route?: string) => Promise<void>;
|
|
491
|
+
/**
|
|
492
|
+
* Returns the part of the current URL that follows the harness base
|
|
493
|
+
* (`<pluginUrl>/__rimori_harness__.html`). For HashRouter this includes the
|
|
494
|
+
* leading `#/...`; for BrowserRouter it would be the path/query.
|
|
495
|
+
* Returns an empty string if the page isn't currently on the harness URL.
|
|
496
|
+
*/
|
|
497
|
+
get: () => string;
|
|
466
498
|
};
|
|
467
499
|
}
|
|
468
500
|
export {};
|
|
@@ -1,9 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.RimoriTestEnvironment = void 0;
|
|
4
37
|
const default_user_info_1 = require("../fixtures/default-user-info");
|
|
5
38
|
const MessageChannelSimulator_1 = require("./MessageChannelSimulator");
|
|
6
39
|
const SettingsStateManager_1 = require("./SettingsStateManager");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
// Harness served by interceptRoutes so scenario tests can exercise the real
|
|
43
|
+
// federation boundary (./MainPanel expose + singleton dedup) instead of the
|
|
44
|
+
// standalone App.tsx. Built from src/harness/ via harness.vite.config.ts.
|
|
45
|
+
const HARNESS_DIR = path.resolve(__dirname, '..', '..', 'dist', 'harness');
|
|
46
|
+
const HARNESS_HTML_URL = '/__rimori_harness__.html';
|
|
47
|
+
const HARNESS_ASSETS_PREFIX = '/__rimori_harness__/';
|
|
7
48
|
class RimoriTestEnvironment {
|
|
8
49
|
constructor(options) {
|
|
9
50
|
this.backendRoutes = {};
|
|
@@ -175,25 +216,27 @@ class RimoriTestEnvironment {
|
|
|
175
216
|
},
|
|
176
217
|
/**
|
|
177
218
|
* Triggers a main panel action event as the parent application would.
|
|
178
|
-
* This simulates how rimori-main
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
219
|
+
* This simulates how rimori-main sends the MainPanelAction back to the plugin after
|
|
220
|
+
* the plugin calls onMainPanelAction() and emits '{pluginId}.action.requestMain'.
|
|
221
|
+
*
|
|
222
|
+
* We listen for that outbound emit and respond by injecting a fresh event with
|
|
223
|
+
* sender='rimori-main'. This avoids the EventBus per-listener blacklist that would
|
|
224
|
+
* block a {type:'response'} message carrying the same eventId as the original emit.
|
|
225
|
+
*
|
|
182
226
|
* @param payload - The main panel action payload containing plugin_id, action_key, and action parameters
|
|
183
227
|
*/
|
|
184
228
|
triggerOnMainPanelAction: async (payload) => {
|
|
185
229
|
if (!this.messageChannelSimulator) {
|
|
186
230
|
throw new Error('MessageChannelSimulator not initialized. Call setup() first.');
|
|
187
231
|
}
|
|
188
|
-
// Listen for when the plugin emits 'action.requestMain' (which becomes '{pluginId}.action.requestMain')
|
|
189
|
-
// and respond with the MainPanelAction payload, matching rimori-main's EventBus.respond behavior
|
|
190
232
|
const topic = `${this.pluginId}.action.requestMain`;
|
|
191
|
-
// Store the payload in a closure so we can respond with it
|
|
192
233
|
const actionPayload = payload;
|
|
193
|
-
//
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
|
|
234
|
+
// When the plugin emits action.requestMain, immediately emit back the action data
|
|
235
|
+
// as a fresh event from 'rimori-main' (different sender bypasses the EventBus blacklist).
|
|
236
|
+
const off = this.messageChannelSimulator.on(topic, async () => {
|
|
237
|
+
await this.messageChannelSimulator.emit(topic, actionPayload, 'rimori-main');
|
|
238
|
+
off();
|
|
239
|
+
});
|
|
197
240
|
},
|
|
198
241
|
};
|
|
199
242
|
this.ai = {
|
|
@@ -554,15 +597,121 @@ class RimoriTestEnvironment {
|
|
|
554
597
|
};
|
|
555
598
|
this.navigation = {
|
|
556
599
|
mockToDashboard: () => { },
|
|
600
|
+
/**
|
|
601
|
+
* Navigates to a path inside the federated plugin via the scenario harness.
|
|
602
|
+
* The harness URL (`<pluginUrl>/__rimori_harness__.html`) is the base; whatever
|
|
603
|
+
* is passed in `route` is appended verbatim. Tests are responsible for the
|
|
604
|
+
* leading `#/` (HashRouter) or `/` (future BrowserRouter) so the same helper
|
|
605
|
+
* works regardless of which router the plugin uses.
|
|
606
|
+
*
|
|
607
|
+
* @param route - Suffix appended to the harness URL (e.g. `#/`, `#/deck/1`).
|
|
608
|
+
*/
|
|
609
|
+
to: async (route = '') => {
|
|
610
|
+
await this.page.goto(`${this.pluginUrl}/__rimori_harness__.html${route}`);
|
|
611
|
+
},
|
|
612
|
+
/**
|
|
613
|
+
* Returns the part of the current URL that follows the harness base
|
|
614
|
+
* (`<pluginUrl>/__rimori_harness__.html`). For HashRouter this includes the
|
|
615
|
+
* leading `#/...`; for BrowserRouter it would be the path/query.
|
|
616
|
+
* Returns an empty string if the page isn't currently on the harness URL.
|
|
617
|
+
*/
|
|
618
|
+
get: () => {
|
|
619
|
+
const url = this.page.url();
|
|
620
|
+
const base = `${this.pluginUrl}/__rimori_harness__.html`;
|
|
621
|
+
return url.startsWith(base) ? url.slice(base.length) : '';
|
|
622
|
+
},
|
|
557
623
|
};
|
|
558
624
|
this.page = options.page;
|
|
559
625
|
this.pluginId = options.pluginId;
|
|
626
|
+
this.pluginUrl = options.pluginUrl;
|
|
560
627
|
this.rimoriInfo = this.getRimoriInfo(options);
|
|
561
628
|
// Initialize settings state manager
|
|
562
629
|
this.settingsManager = new SettingsStateManager_1.SettingsStateManager(options.settings || null, options.pluginId, this.rimoriInfo.guild.id);
|
|
563
630
|
this.interceptRoutes(options.pluginUrl);
|
|
564
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Fetches the plugin's standalone `dist/index.html` over HTTP (served by the plugin
|
|
634
|
+
* dev server's middleware at `/__rimori_dist_index__.html`) and extracts its
|
|
635
|
+
* `<link rel="stylesheet">` tags. The hrefs already point at `/assets/*` which the
|
|
636
|
+
* same dev server serves from `dist/`, so the harness page picks up the plugin's
|
|
637
|
+
* Tailwind base + theme without any filesystem path resolution.
|
|
638
|
+
*
|
|
639
|
+
* Returns empty string if the plugin hasn't been built (`yarn build:scenario`)
|
|
640
|
+
* or the dev server doesn't expose `/__rimori_dist_index__.html`.
|
|
641
|
+
*/
|
|
642
|
+
async collectPluginStylesheets(pluginUrl) {
|
|
643
|
+
const indexUrl = `${pluginUrl}/__rimori_dist_index__.html`;
|
|
644
|
+
try {
|
|
645
|
+
const response = await fetch(indexUrl);
|
|
646
|
+
if (!response.ok) {
|
|
647
|
+
console.warn(`[rimori-harness] Plugin index.html not served at ${indexUrl} (status ${response.status}). ` +
|
|
648
|
+
`Ensure the plugin's vite.config.ts middleware serves it from dist/, and that ` +
|
|
649
|
+
`\`yarn build:scenario\` has been run.`);
|
|
650
|
+
return '';
|
|
651
|
+
}
|
|
652
|
+
const html = await response.text();
|
|
653
|
+
const linkRegex = /<link[^>]*rel=["']stylesheet["'][^>]*>/gi;
|
|
654
|
+
const links = html.match(linkRegex) ?? [];
|
|
655
|
+
const rewritten = links
|
|
656
|
+
.map((tag) => tag.replace(/href=["']\.?\/?(assets\/[^"']+)["']/i, 'href="/$1"'))
|
|
657
|
+
.join('\n ');
|
|
658
|
+
// console.log(`[rimori-harness] Injecting ${links.length} plugin stylesheet(s) from ${indexUrl}`);
|
|
659
|
+
return rewritten;
|
|
660
|
+
}
|
|
661
|
+
catch (err) {
|
|
662
|
+
console.warn(`[rimori-harness] Failed to fetch ${indexUrl}:`, err.message);
|
|
663
|
+
return '';
|
|
664
|
+
}
|
|
665
|
+
}
|
|
565
666
|
interceptRoutes(pluginUrl) {
|
|
667
|
+
// HTML entry — inject the runtime config and serve the built index.html.
|
|
668
|
+
// Script references already use absolute paths (base: '/__rimori_harness__/')
|
|
669
|
+
// so the browser fetches them via the assets wildcard handler below.
|
|
670
|
+
this.page.route(`${pluginUrl}${HARNESS_HTML_URL}`, async (route) => {
|
|
671
|
+
try {
|
|
672
|
+
const htmlPath = path.join(HARNESS_DIR, 'index.html');
|
|
673
|
+
if (!fs.existsSync(htmlPath)) {
|
|
674
|
+
throw new Error(`Harness bundle missing at ${HARNESS_DIR}. Run \`yarn --cwd plugins/playwright-testing build:harness\` first.`);
|
|
675
|
+
}
|
|
676
|
+
const configScript = `<script>window.__RIMORI_HARNESS__ = ${JSON.stringify({
|
|
677
|
+
pluginId: this.pluginId,
|
|
678
|
+
remoteUrl: `${pluginUrl}/remoteEntry.js`,
|
|
679
|
+
})};</script>`;
|
|
680
|
+
// Lift `<link rel="stylesheet">` tags from the plugin's standalone dist/index.html
|
|
681
|
+
// so the harness page picks up the same Tailwind base + theme variables that
|
|
682
|
+
// production rimori-main provides. The plugin's vite dev-server middleware already
|
|
683
|
+
// serves /assets/* from dist/, so the (rewritten-to-absolute) hrefs resolve same-origin.
|
|
684
|
+
const pluginStylesheets = await this.collectPluginStylesheets(pluginUrl);
|
|
685
|
+
const html = fs.readFileSync(htmlPath, 'utf-8')
|
|
686
|
+
.replace('<!-- RIMORI_HARNESS_CONFIG_INJECTION -->', configScript)
|
|
687
|
+
.replace('</head>', `${pluginStylesheets}\n</head>`);
|
|
688
|
+
await route.fulfill({ status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }, body: html });
|
|
689
|
+
}
|
|
690
|
+
catch (error) {
|
|
691
|
+
await route.fulfill({ status: 500, headers: { 'Content-Type': 'text/plain' }, body: String(error?.message ?? error) });
|
|
692
|
+
}
|
|
693
|
+
});
|
|
694
|
+
// Assets wildcard — serve any JS/CSS chunk that the federation host build emitted.
|
|
695
|
+
// Vite emits files like bootstrap.js, vendor chunks, CSS, etc. all into dist/harness/.
|
|
696
|
+
this.page.route(`${pluginUrl}${HARNESS_ASSETS_PREFIX}**`, async (route) => {
|
|
697
|
+
try {
|
|
698
|
+
const url = new URL(route.request().url());
|
|
699
|
+
const fileName = url.pathname.slice(HARNESS_ASSETS_PREFIX.length);
|
|
700
|
+
const filePath = path.join(HARNESS_DIR, fileName);
|
|
701
|
+
if (!fs.existsSync(filePath)) {
|
|
702
|
+
await route.continue();
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
const ext = path.extname(fileName);
|
|
706
|
+
const contentType = ext === '.js' ? 'application/javascript; charset=utf-8'
|
|
707
|
+
: ext === '.css' ? 'text/css; charset=utf-8'
|
|
708
|
+
: 'application/octet-stream';
|
|
709
|
+
await route.fulfill({ status: 200, headers: { 'Content-Type': contentType }, body: fs.readFileSync(filePath) });
|
|
710
|
+
}
|
|
711
|
+
catch (error) {
|
|
712
|
+
await route.fulfill({ status: 500, headers: { 'Content-Type': 'text/plain' }, body: String(error?.message ?? error) });
|
|
713
|
+
}
|
|
714
|
+
});
|
|
566
715
|
// Intercept all /locales requests and fetch from the dev server
|
|
567
716
|
this.page.route(`${pluginUrl}/locales/**`, async (route) => {
|
|
568
717
|
const request = route.request();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const n="__mf_init____mf__virtual/__mfe_internal__rimori_mf_2_scenario_mf_2_host__mf_v__runtimeInit__mf_v__.js__";let i=globalThis[n];if(!i){let e,t;const o=new Promise((r,f)=>{e=r,t=f});i=globalThis[n]={initPromise:o,initResolve:e,initReject:t},typeof window>"u"&&e({loadRemote:function(){return Promise.resolve(void 0)},loadShare:function(){return Promise.resolve(void 0)}})}const s=i.initPromise,m=s.then(e=>e.loadShare("@rimori/client",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"^2.5.35-next.0"}}})),_=await m.then(e=>typeof e=="function"?e():e);_.__esModule?_.default:_.default;const{setupWorker:l,AudioController:a,Translator:u,TIER_ORDER:d,ROLE_ORDER:c,StorageModule:g,EventBusHandler:v,EventBus:R,RimoriClient:h,StandaloneClient:P,MessageSender:S,getDifficultyLevel:b,getDifficultyLabel:p,getNeighborDifficultyLevel:E,compareLanguageLevels:L,RimoriCommunicationHandler:C}=_;export{P as _,h as a,v as b,R as c,a as d,S as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o="__mf_init____mf__virtual/__mfe_internal__rimori_mf_2_scenario_mf_2_host__mf_v__runtimeInit__mf_v__.js__";let i=globalThis[o];if(!i){let _,t;const n=new Promise((r,s)=>{_=r,t=s});i=globalThis[o]={initPromise:n,initResolve:_,initReject:t},typeof window>"u"&&_({loadRemote:function(){return Promise.resolve(void 0)},loadShare:function(){return Promise.resolve(void 0)}})}const m=i.initPromise,f=m.then(_=>_.loadShare("@rimori/react-client",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"^0.4.21"}}})),e=await f.then(_=>typeof _=="function"?_():_);e.__esModule?e.default:e.default;const{useTranslation:a,Avatar:l,BuddyAssistant:u,VoiceRecorder:d,MarkdownEditor:c,extractImageUrls:P,injectFederationCss:h,useChat:v,useSettings:g,useExerciseTracker:p,PluginProvider:w,useRimori:R,AudioPlayOptions:S,AudioPlayer:x}=e;export{w as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function i(e,n){for(var f=0;f<n.length;f++){const _=n[f];if(typeof _!="string"&&!Array.isArray(_)){for(const t in _)if(t!=="default"&&!(t in e)){const r=Object.getOwnPropertyDescriptor(_,t);r&&Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>_[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const a="__mf_init____mf__virtual/__mfe_internal__rimori_mf_2_scenario_mf_2_host__mf_v__runtimeInit__mf_v__.js__";let o=globalThis[a];if(!o){let e,n;const f=new Promise((_,t)=>{e=_,n=t});o=globalThis[a]={initPromise:f,initResolve:e,initReject:n},typeof window>"u"&&e({loadRemote:function(){return Promise.resolve(void 0)},loadShare:function(){return Promise.resolve(void 0)}})}const m=o.initPromise,u=m.then(e=>e.loadShare("react",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"^19.2.5"}}})),s=await u.then(e=>typeof e=="function"?e():e),c=s,l=s.__esModule?s.default:s.default??s,{Activity:d,Children:E,Component:S,Fragment:R,Profiler:h,PureComponent:p,StrictMode:C,Suspense:g,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:P,__COMPILER_RUNTIME:T,cache:N,cacheSignal:O,cloneElement:b,createContext:v,createElement:y,createRef:I,forwardRef:A,isValidElement:M,lazy:x,memo:D,startTransition:L,unstable_useCacheRefresh:U,use:V,useActionState:j,useCallback:w,useContext:k,useDebugValue:H,useDeferredValue:z,useEffect:G,useEffectEvent:F,useId:W,useImperativeHandle:Y,useInsertionEffect:q,useLayoutEffect:K,useMemo:B,useOptimistic:J,useReducer:Q,useRef:X,useState:Z,useSyncExternalStore:$,useTransition:ee,version:_e}=s,te=i({__proto__:null,Activity:d,Children:E,Component:S,Fragment:R,Profiler:h,PureComponent:p,StrictMode:C,Suspense:g,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:P,__COMPILER_RUNTIME:T,cache:N,cacheSignal:O,cloneElement:b,createContext:v,createElement:y,createRef:I,default:l,forwardRef:A,isValidElement:M,lazy:x,memo:D,startTransition:L,unstable_useCacheRefresh:U,use:V,useActionState:j,useCallback:w,useContext:k,useDebugValue:H,useDeferredValue:z,useEffect:G,useEffectEvent:F,useId:W,useImperativeHandle:Y,useInsertionEffect:q,useLayoutEffect:K,useMemo:B,useOptimistic:J,useReducer:Q,useRef:X,useState:Z,useSyncExternalStore:$,useTransition:ee,version:_e},[c]);export{l as R,te as _,Z as a,X as b,G as c,k as d,v as e,w as f,K as g,A as h,Y as i,B as j,H as k,$ as l};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as u}from"./__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react__loadShare__.js.js";function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function a(e){if(e.__esModule)return e;var o=e.default;if(typeof o=="function"){var t=function r(){return this instanceof r?Reflect.construct(o,arguments,this.constructor):o.apply(this,arguments)};t.prototype=o.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t}const f=a(u);export{c as a,a as g,f as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t="__mf_init____mf__virtual/__mfe_internal__rimori_mf_2_scenario_mf_2_host__mf_v__runtimeInit__mf_v__.js__";let i=globalThis[t];if(!i){let e,n;const o=new Promise((s,r)=>{e=s,n=r});i=globalThis[t]={initPromise:o,initResolve:e,initReject:n},typeof window>"u"&&e({loadRemote:function(){return Promise.resolve(void 0)},loadShare:function(){return Promise.resolve(void 0)}})}const m=i.initPromise,f=m.then(e=>e.loadShare("react/jsx-runtime",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"^19.2.5"}}})),_=await f.then(e=>typeof e=="function"?e():e);_.__esModule?_.default:_.default;const{Fragment:a,jsx:l,jsxs:u}=_;export{l as _,u as a,a as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function f(e,o){for(var n=0;n<o.length;n++){const _=o[n];if(typeof _!="string"&&!Array.isArray(_)){for(const t in _)if(t!=="default"&&!(t in e)){const i=Object.getOwnPropertyDescriptor(_,t);i&&Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>_[t]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const a="__mf_init____mf__virtual/__mfe_internal__rimori_mf_2_scenario_mf_2_host__mf_v__runtimeInit__mf_v__.js__";let s=globalThis[a];if(!s){let e,o;const n=new Promise((_,t)=>{e=_,o=t});s=globalThis[a]={initPromise:n,initResolve:e,initReject:o},typeof window>"u"&&e({loadRemote:function(){return Promise.resolve(void 0)},loadShare:function(){return Promise.resolve(void 0)}})}const m=s.initPromise,l=m.then(e=>e.loadShare("react-dom",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"^19.2.5"}}})),r=await l.then(e=>typeof e=="function"?e():e),u=r,c=r.__esModule?r.default:r.default??r,{__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:d,createPortal:p,flushSync:S,preconnect:h,prefetchDNS:R,preinit:O,preinitModule:N,preload:P,preloadModule:b,requestFormReset:g,unstable_batchedUpdates:E,useFormState:T,useFormStatus:v,version:y}=r,A=f({__proto__:null,__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:d,createPortal:p,default:c,flushSync:S,preconnect:h,prefetchDNS:R,preinit:O,preinitModule:N,preload:P,preloadModule:b,requestFormReset:g,unstable_batchedUpdates:E,useFormState:T,useFormStatus:v,version:y},[u]);export{c as R,A as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as _}from"./__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react__loadShare__.js_commonjs-proxy.js";import{_ as r}from"./__mfe_internal__rimori_mf_2_scenario_mf_2_host__loadShare__react_mf_2_dom__loadShare__.js.js";const m=_(r);export{m as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t}from"./preload-helper.js";const i=await t(()=>import("./remoteEntry.js"),[]);await i.init();
|