├── .gitignore
├── .husky
└── pre-commit
├── .prettierignore
├── .prettierrc
├── .vscode
└── settings.json
├── README.md
├── docs
└── screenshot.png
├── host
├── .gitignore
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
│ └── vite.svg
├── src
│ ├── App.css
│ ├── App.tsx
│ ├── components
│ │ └── Counter.tsx
│ ├── main.tsx
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
├── package.json
├── pnpm-lock.yaml
├── remote
├── .gitignore
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
│ └── vite.svg
├── src
│ ├── App.tsx
│ ├── components
│ │ └── Counter.tsx
│ ├── environment.ts
│ ├── main.tsx
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
└── shared
└── shared.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | # Module federation temp files
27 | .__mf__temp
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx pretty-quick --staged
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Add files here to ignore them from prettier formatting
2 |
3 | **/*.log
4 | **/.DS_Store
5 | *.
6 | dist
7 | node_modules
8 | coverage
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 140,
3 | "singleQuote": true,
4 | "useTabs": true,
5 | "tabWidth": 2,
6 | "semi": true,
7 | "bracketSpacing": true
8 | }
9 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.codeActionsOnSave": {
3 | "source.organizeImports": "explicit",
4 | "source.fixAll": "explicit"
5 | },
6 | "editor.formatOnSave": true
7 | }
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React host and remote
2 |
3 | ## Getting started
4 |
5 | From this directory execute:
6 |
7 | - npm run install:deps
8 | - npm run preview
9 |
10 | Open your browser at http://localhost:4173/ to see the amazing result
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/docs/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gioboa/react-microfrontend-demo/dd04805ba40d1008b3a56d9290e2353167d2964c/docs/screenshot.png
--------------------------------------------------------------------------------
/host/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/host/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Host
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/host/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vite-react-microfrontends_host",
3 | "version": "0.0.0",
4 | "type": "module",
5 | "scripts": {
6 | "dev": "vite --port 4173",
7 | "build": "tsc && vite build",
8 | "preview": "npm run build && vite preview --port 4173"
9 | },
10 | "dependencies": {
11 | "react": "^18.3.1",
12 | "react-dom": "^18.3.1",
13 | "rxjs": "^7.8.1"
14 | },
15 | "devDependencies": {
16 | "@module-federation/vite": "1.1.9",
17 | "@types/react": "18.2.79",
18 | "@types/react-dom": "18.2.25",
19 | "@vitejs/plugin-react": "4.2.1",
20 | "typescript": "5.4.5",
21 | "vite": "5.2.10"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/host/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 | .:
9 | dependencies:
10 | react:
11 | specifier: ^18.3.1
12 | version: 18.3.1
13 | react-dom:
14 | specifier: ^18.3.1
15 | version: 18.3.1(react@18.3.1)
16 | rxjs:
17 | specifier: ^7.8.1
18 | version: 7.8.1
19 | devDependencies:
20 | '@module-federation/vite':
21 | specifier: 1.1.9
22 | version: 1.1.9(rollup@4.19.1)
23 | '@types/react':
24 | specifier: 18.2.79
25 | version: 18.2.79
26 | '@types/react-dom':
27 | specifier: 18.2.25
28 | version: 18.2.25
29 | '@vitejs/plugin-react':
30 | specifier: 4.2.1
31 | version: 4.2.1(vite@5.2.10(@types/node@18.19.42))
32 | typescript:
33 | specifier: 5.4.5
34 | version: 5.4.5
35 | vite:
36 | specifier: 5.2.10
37 | version: 5.2.10(@types/node@18.19.42)
38 |
39 | packages:
40 | '@ampproject/remapping@2.3.0':
41 | resolution: { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== }
42 | engines: { node: '>=6.0.0' }
43 |
44 | '@babel/code-frame@7.24.7':
45 | resolution: { integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== }
46 | engines: { node: '>=6.9.0' }
47 |
48 | '@babel/compat-data@7.25.2':
49 | resolution: { integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== }
50 | engines: { node: '>=6.9.0' }
51 |
52 | '@babel/core@7.25.2':
53 | resolution: { integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== }
54 | engines: { node: '>=6.9.0' }
55 |
56 | '@babel/generator@7.25.0':
57 | resolution: { integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== }
58 | engines: { node: '>=6.9.0' }
59 |
60 | '@babel/helper-compilation-targets@7.25.2':
61 | resolution: { integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== }
62 | engines: { node: '>=6.9.0' }
63 |
64 | '@babel/helper-module-imports@7.24.7':
65 | resolution: { integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== }
66 | engines: { node: '>=6.9.0' }
67 |
68 | '@babel/helper-module-transforms@7.25.2':
69 | resolution: { integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== }
70 | engines: { node: '>=6.9.0' }
71 | peerDependencies:
72 | '@babel/core': ^7.0.0
73 |
74 | '@babel/helper-plugin-utils@7.24.8':
75 | resolution: { integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== }
76 | engines: { node: '>=6.9.0' }
77 |
78 | '@babel/helper-simple-access@7.24.7':
79 | resolution: { integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== }
80 | engines: { node: '>=6.9.0' }
81 |
82 | '@babel/helper-string-parser@7.24.8':
83 | resolution: { integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== }
84 | engines: { node: '>=6.9.0' }
85 |
86 | '@babel/helper-validator-identifier@7.24.7':
87 | resolution: { integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== }
88 | engines: { node: '>=6.9.0' }
89 |
90 | '@babel/helper-validator-option@7.24.8':
91 | resolution: { integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== }
92 | engines: { node: '>=6.9.0' }
93 |
94 | '@babel/helpers@7.25.0':
95 | resolution: { integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== }
96 | engines: { node: '>=6.9.0' }
97 |
98 | '@babel/highlight@7.24.7':
99 | resolution: { integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== }
100 | engines: { node: '>=6.9.0' }
101 |
102 | '@babel/parser@7.25.3':
103 | resolution: { integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== }
104 | engines: { node: '>=6.0.0' }
105 | hasBin: true
106 |
107 | '@babel/plugin-transform-react-jsx-self@7.24.7':
108 | resolution: { integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw== }
109 | engines: { node: '>=6.9.0' }
110 | peerDependencies:
111 | '@babel/core': ^7.0.0-0
112 |
113 | '@babel/plugin-transform-react-jsx-source@7.24.7':
114 | resolution: { integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ== }
115 | engines: { node: '>=6.9.0' }
116 | peerDependencies:
117 | '@babel/core': ^7.0.0-0
118 |
119 | '@babel/template@7.25.0':
120 | resolution: { integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== }
121 | engines: { node: '>=6.9.0' }
122 |
123 | '@babel/traverse@7.25.3':
124 | resolution: { integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== }
125 | engines: { node: '>=6.9.0' }
126 |
127 | '@babel/types@7.25.2':
128 | resolution: { integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== }
129 | engines: { node: '>=6.9.0' }
130 |
131 | '@esbuild/aix-ppc64@0.20.2':
132 | resolution: { integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== }
133 | engines: { node: '>=12' }
134 | cpu: [ppc64]
135 | os: [aix]
136 |
137 | '@esbuild/android-arm64@0.20.2':
138 | resolution: { integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== }
139 | engines: { node: '>=12' }
140 | cpu: [arm64]
141 | os: [android]
142 |
143 | '@esbuild/android-arm@0.20.2':
144 | resolution: { integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== }
145 | engines: { node: '>=12' }
146 | cpu: [arm]
147 | os: [android]
148 |
149 | '@esbuild/android-x64@0.20.2':
150 | resolution: { integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== }
151 | engines: { node: '>=12' }
152 | cpu: [x64]
153 | os: [android]
154 |
155 | '@esbuild/darwin-arm64@0.20.2':
156 | resolution: { integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== }
157 | engines: { node: '>=12' }
158 | cpu: [arm64]
159 | os: [darwin]
160 |
161 | '@esbuild/darwin-x64@0.20.2':
162 | resolution: { integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== }
163 | engines: { node: '>=12' }
164 | cpu: [x64]
165 | os: [darwin]
166 |
167 | '@esbuild/freebsd-arm64@0.20.2':
168 | resolution: { integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== }
169 | engines: { node: '>=12' }
170 | cpu: [arm64]
171 | os: [freebsd]
172 |
173 | '@esbuild/freebsd-x64@0.20.2':
174 | resolution: { integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== }
175 | engines: { node: '>=12' }
176 | cpu: [x64]
177 | os: [freebsd]
178 |
179 | '@esbuild/linux-arm64@0.20.2':
180 | resolution: { integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== }
181 | engines: { node: '>=12' }
182 | cpu: [arm64]
183 | os: [linux]
184 |
185 | '@esbuild/linux-arm@0.20.2':
186 | resolution: { integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== }
187 | engines: { node: '>=12' }
188 | cpu: [arm]
189 | os: [linux]
190 |
191 | '@esbuild/linux-ia32@0.20.2':
192 | resolution: { integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== }
193 | engines: { node: '>=12' }
194 | cpu: [ia32]
195 | os: [linux]
196 |
197 | '@esbuild/linux-loong64@0.20.2':
198 | resolution: { integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== }
199 | engines: { node: '>=12' }
200 | cpu: [loong64]
201 | os: [linux]
202 |
203 | '@esbuild/linux-mips64el@0.20.2':
204 | resolution: { integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== }
205 | engines: { node: '>=12' }
206 | cpu: [mips64el]
207 | os: [linux]
208 |
209 | '@esbuild/linux-ppc64@0.20.2':
210 | resolution: { integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== }
211 | engines: { node: '>=12' }
212 | cpu: [ppc64]
213 | os: [linux]
214 |
215 | '@esbuild/linux-riscv64@0.20.2':
216 | resolution: { integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== }
217 | engines: { node: '>=12' }
218 | cpu: [riscv64]
219 | os: [linux]
220 |
221 | '@esbuild/linux-s390x@0.20.2':
222 | resolution: { integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== }
223 | engines: { node: '>=12' }
224 | cpu: [s390x]
225 | os: [linux]
226 |
227 | '@esbuild/linux-x64@0.20.2':
228 | resolution: { integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== }
229 | engines: { node: '>=12' }
230 | cpu: [x64]
231 | os: [linux]
232 |
233 | '@esbuild/netbsd-x64@0.20.2':
234 | resolution: { integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== }
235 | engines: { node: '>=12' }
236 | cpu: [x64]
237 | os: [netbsd]
238 |
239 | '@esbuild/openbsd-x64@0.20.2':
240 | resolution: { integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== }
241 | engines: { node: '>=12' }
242 | cpu: [x64]
243 | os: [openbsd]
244 |
245 | '@esbuild/sunos-x64@0.20.2':
246 | resolution: { integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== }
247 | engines: { node: '>=12' }
248 | cpu: [x64]
249 | os: [sunos]
250 |
251 | '@esbuild/win32-arm64@0.20.2':
252 | resolution: { integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== }
253 | engines: { node: '>=12' }
254 | cpu: [arm64]
255 | os: [win32]
256 |
257 | '@esbuild/win32-ia32@0.20.2':
258 | resolution: { integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== }
259 | engines: { node: '>=12' }
260 | cpu: [ia32]
261 | os: [win32]
262 |
263 | '@esbuild/win32-x64@0.20.2':
264 | resolution: { integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== }
265 | engines: { node: '>=12' }
266 | cpu: [x64]
267 | os: [win32]
268 |
269 | '@jridgewell/gen-mapping@0.3.5':
270 | resolution: { integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== }
271 | engines: { node: '>=6.0.0' }
272 |
273 | '@jridgewell/resolve-uri@3.1.2':
274 | resolution: { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== }
275 | engines: { node: '>=6.0.0' }
276 |
277 | '@jridgewell/set-array@1.2.1':
278 | resolution: { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== }
279 | engines: { node: '>=6.0.0' }
280 |
281 | '@jridgewell/sourcemap-codec@1.5.0':
282 | resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== }
283 |
284 | '@jridgewell/trace-mapping@0.3.25':
285 | resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== }
286 |
287 | '@module-federation/error-codes@0.8.0':
288 | resolution: { integrity: sha512-xU0eUA0xTUx93Li/eYCZ+kuGP9qt+8fEaOu+i6U9jJP1RYONvPifibfLNo4SQszQTzqfGViyrx1O3uiA7XUYQQ== }
289 |
290 | '@module-federation/runtime@0.8.0':
291 | resolution: { integrity: sha512-UfDsJYAFOyJoErpmjf1sy8d2WXHGitFsSQrIiDzNpDHv4SzHgjuhWQeAuJKlQq2zdE/F4IPhkHgTatQigRKZCA== }
292 |
293 | '@module-federation/sdk@0.8.0':
294 | resolution: { integrity: sha512-V2cNGO//sWCyHTaQ0iTcoslolqVgdBIBOkZVLyk9AkZ4B3CO49pe/TmIIaVs9jVg3GO+ZmmazBFKRkqdn2PdRg== }
295 |
296 | '@module-federation/vite@1.1.9':
297 | resolution: { integrity: sha512-gUo/uV8ZlHTLJjgKy02lXb7zo9auqOIt5Ozw1ewP9vkMrNQVEm4ZxmZ7P+k8Rb9O2PjfdHOLRuHfNmXHmywzUw== }
298 |
299 | '@rollup/pluginutils@5.1.0':
300 | resolution: { integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== }
301 | engines: { node: '>=14.0.0' }
302 | peerDependencies:
303 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
304 | peerDependenciesMeta:
305 | rollup:
306 | optional: true
307 |
308 | '@rollup/rollup-android-arm-eabi@4.19.1':
309 | resolution: { integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww== }
310 | cpu: [arm]
311 | os: [android]
312 |
313 | '@rollup/rollup-android-arm64@4.19.1':
314 | resolution: { integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A== }
315 | cpu: [arm64]
316 | os: [android]
317 |
318 | '@rollup/rollup-darwin-arm64@4.19.1':
319 | resolution: { integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q== }
320 | cpu: [arm64]
321 | os: [darwin]
322 |
323 | '@rollup/rollup-darwin-x64@4.19.1':
324 | resolution: { integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA== }
325 | cpu: [x64]
326 | os: [darwin]
327 |
328 | '@rollup/rollup-linux-arm-gnueabihf@4.19.1':
329 | resolution: { integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q== }
330 | cpu: [arm]
331 | os: [linux]
332 |
333 | '@rollup/rollup-linux-arm-musleabihf@4.19.1':
334 | resolution: { integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw== }
335 | cpu: [arm]
336 | os: [linux]
337 |
338 | '@rollup/rollup-linux-arm64-gnu@4.19.1':
339 | resolution: { integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw== }
340 | cpu: [arm64]
341 | os: [linux]
342 |
343 | '@rollup/rollup-linux-arm64-musl@4.19.1':
344 | resolution: { integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw== }
345 | cpu: [arm64]
346 | os: [linux]
347 |
348 | '@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
349 | resolution: { integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ== }
350 | cpu: [ppc64]
351 | os: [linux]
352 |
353 | '@rollup/rollup-linux-riscv64-gnu@4.19.1':
354 | resolution: { integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A== }
355 | cpu: [riscv64]
356 | os: [linux]
357 |
358 | '@rollup/rollup-linux-s390x-gnu@4.19.1':
359 | resolution: { integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q== }
360 | cpu: [s390x]
361 | os: [linux]
362 |
363 | '@rollup/rollup-linux-x64-gnu@4.19.1':
364 | resolution: { integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q== }
365 | cpu: [x64]
366 | os: [linux]
367 |
368 | '@rollup/rollup-linux-x64-musl@4.19.1':
369 | resolution: { integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q== }
370 | cpu: [x64]
371 | os: [linux]
372 |
373 | '@rollup/rollup-win32-arm64-msvc@4.19.1':
374 | resolution: { integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA== }
375 | cpu: [arm64]
376 | os: [win32]
377 |
378 | '@rollup/rollup-win32-ia32-msvc@4.19.1':
379 | resolution: { integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ== }
380 | cpu: [ia32]
381 | os: [win32]
382 |
383 | '@rollup/rollup-win32-x64-msvc@4.19.1':
384 | resolution: { integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg== }
385 | cpu: [x64]
386 | os: [win32]
387 |
388 | '@types/babel__core@7.20.5':
389 | resolution: { integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== }
390 |
391 | '@types/babel__generator@7.6.8':
392 | resolution: { integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== }
393 |
394 | '@types/babel__template@7.4.4':
395 | resolution: { integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== }
396 |
397 | '@types/babel__traverse@7.20.6':
398 | resolution: { integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== }
399 |
400 | '@types/estree@1.0.5':
401 | resolution: { integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== }
402 |
403 | '@types/node@18.19.42':
404 | resolution: { integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg== }
405 |
406 | '@types/prop-types@15.7.12':
407 | resolution: { integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== }
408 |
409 | '@types/react-dom@18.2.25':
410 | resolution: { integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA== }
411 |
412 | '@types/react@18.2.79':
413 | resolution: { integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== }
414 |
415 | '@vitejs/plugin-react@4.2.1':
416 | resolution: { integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== }
417 | engines: { node: ^14.18.0 || >=16.0.0 }
418 | peerDependencies:
419 | vite: ^4.2.0 || ^5.0.0
420 |
421 | ansi-styles@3.2.1:
422 | resolution: { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== }
423 | engines: { node: '>=4' }
424 |
425 | browserslist@4.23.2:
426 | resolution: { integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== }
427 | engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
428 | hasBin: true
429 |
430 | caniuse-lite@1.0.30001646:
431 | resolution: { integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw== }
432 |
433 | chalk@2.4.2:
434 | resolution: { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== }
435 | engines: { node: '>=4' }
436 |
437 | color-convert@1.9.3:
438 | resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== }
439 |
440 | color-name@1.1.3:
441 | resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== }
442 |
443 | convert-source-map@2.0.0:
444 | resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== }
445 |
446 | csstype@3.1.3:
447 | resolution: { integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== }
448 |
449 | debug@4.3.6:
450 | resolution: { integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== }
451 | engines: { node: '>=6.0' }
452 | peerDependencies:
453 | supports-color: '*'
454 | peerDependenciesMeta:
455 | supports-color:
456 | optional: true
457 |
458 | defu@6.1.4:
459 | resolution: { integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== }
460 |
461 | electron-to-chromium@1.5.4:
462 | resolution: { integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== }
463 |
464 | esbuild@0.20.2:
465 | resolution: { integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== }
466 | engines: { node: '>=12' }
467 | hasBin: true
468 |
469 | escalade@3.1.2:
470 | resolution: { integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== }
471 | engines: { node: '>=6' }
472 |
473 | escape-string-regexp@1.0.5:
474 | resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== }
475 | engines: { node: '>=0.8.0' }
476 |
477 | estree-walker@2.0.2:
478 | resolution: { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== }
479 |
480 | fsevents@2.3.3:
481 | resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== }
482 | engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
483 | os: [darwin]
484 |
485 | gensync@1.0.0-beta.2:
486 | resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== }
487 | engines: { node: '>=6.9.0' }
488 |
489 | globals@11.12.0:
490 | resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== }
491 | engines: { node: '>=4' }
492 |
493 | has-flag@3.0.0:
494 | resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== }
495 | engines: { node: '>=4' }
496 |
497 | isomorphic-rslog@0.0.6:
498 | resolution: { integrity: sha512-HM0q6XqQ93psDlqvuViNs/Ea3hAyGDkIdVAHlrEocjjAwGrs1fZ+EdQjS9eUPacnYB7Y8SoDdSY3H8p3ce205A== }
499 | engines: { node: '>=14.17.6' }
500 |
501 | js-tokens@4.0.0:
502 | resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== }
503 |
504 | jsesc@2.5.2:
505 | resolution: { integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== }
506 | engines: { node: '>=4' }
507 | hasBin: true
508 |
509 | json5@2.2.3:
510 | resolution: { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== }
511 | engines: { node: '>=6' }
512 | hasBin: true
513 |
514 | loose-envify@1.4.0:
515 | resolution: { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== }
516 | hasBin: true
517 |
518 | lru-cache@5.1.1:
519 | resolution: { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== }
520 |
521 | magic-string@0.30.11:
522 | resolution: { integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== }
523 |
524 | ms@2.1.2:
525 | resolution: { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== }
526 |
527 | nanoid@3.3.7:
528 | resolution: { integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== }
529 | engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
530 | hasBin: true
531 |
532 | node-releases@2.0.18:
533 | resolution: { integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== }
534 |
535 | pathe@1.1.2:
536 | resolution: { integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== }
537 |
538 | picocolors@1.0.1:
539 | resolution: { integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== }
540 |
541 | picomatch@2.3.1:
542 | resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== }
543 | engines: { node: '>=8.6' }
544 |
545 | postcss@8.4.40:
546 | resolution: { integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== }
547 | engines: { node: ^10 || ^12 || >=14 }
548 |
549 | react-dom@18.3.1:
550 | resolution: { integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== }
551 | peerDependencies:
552 | react: ^18.3.1
553 |
554 | react-refresh@0.14.2:
555 | resolution: { integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== }
556 | engines: { node: '>=0.10.0' }
557 |
558 | react@18.3.1:
559 | resolution: { integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== }
560 | engines: { node: '>=0.10.0' }
561 |
562 | rollup@4.19.1:
563 | resolution: { integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw== }
564 | engines: { node: '>=18.0.0', npm: '>=8.0.0' }
565 | hasBin: true
566 |
567 | rxjs@7.8.1:
568 | resolution: { integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== }
569 |
570 | scheduler@0.23.2:
571 | resolution: { integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== }
572 |
573 | semver@6.3.1:
574 | resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== }
575 | hasBin: true
576 |
577 | source-map-js@1.2.0:
578 | resolution: { integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== }
579 | engines: { node: '>=0.10.0' }
580 |
581 | supports-color@5.5.0:
582 | resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== }
583 | engines: { node: '>=4' }
584 |
585 | to-fast-properties@2.0.0:
586 | resolution: { integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== }
587 | engines: { node: '>=4' }
588 |
589 | tslib@2.7.0:
590 | resolution: { integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== }
591 |
592 | typescript@5.4.5:
593 | resolution: { integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== }
594 | engines: { node: '>=14.17' }
595 | hasBin: true
596 |
597 | undici-types@5.26.5:
598 | resolution: { integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== }
599 |
600 | update-browserslist-db@1.1.0:
601 | resolution: { integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== }
602 | hasBin: true
603 | peerDependencies:
604 | browserslist: '>= 4.21.0'
605 |
606 | vite@5.2.10:
607 | resolution: { integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw== }
608 | engines: { node: ^18.0.0 || >=20.0.0 }
609 | hasBin: true
610 | peerDependencies:
611 | '@types/node': ^18.0.0 || >=20.0.0
612 | less: '*'
613 | lightningcss: ^1.21.0
614 | sass: '*'
615 | stylus: '*'
616 | sugarss: '*'
617 | terser: ^5.4.0
618 | peerDependenciesMeta:
619 | '@types/node':
620 | optional: true
621 | less:
622 | optional: true
623 | lightningcss:
624 | optional: true
625 | sass:
626 | optional: true
627 | stylus:
628 | optional: true
629 | sugarss:
630 | optional: true
631 | terser:
632 | optional: true
633 |
634 | yallist@3.1.1:
635 | resolution: { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== }
636 |
637 | snapshots:
638 | '@ampproject/remapping@2.3.0':
639 | dependencies:
640 | '@jridgewell/gen-mapping': 0.3.5
641 | '@jridgewell/trace-mapping': 0.3.25
642 |
643 | '@babel/code-frame@7.24.7':
644 | dependencies:
645 | '@babel/highlight': 7.24.7
646 | picocolors: 1.0.1
647 |
648 | '@babel/compat-data@7.25.2': {}
649 |
650 | '@babel/core@7.25.2':
651 | dependencies:
652 | '@ampproject/remapping': 2.3.0
653 | '@babel/code-frame': 7.24.7
654 | '@babel/generator': 7.25.0
655 | '@babel/helper-compilation-targets': 7.25.2
656 | '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
657 | '@babel/helpers': 7.25.0
658 | '@babel/parser': 7.25.3
659 | '@babel/template': 7.25.0
660 | '@babel/traverse': 7.25.3
661 | '@babel/types': 7.25.2
662 | convert-source-map: 2.0.0
663 | debug: 4.3.6
664 | gensync: 1.0.0-beta.2
665 | json5: 2.2.3
666 | semver: 6.3.1
667 | transitivePeerDependencies:
668 | - supports-color
669 |
670 | '@babel/generator@7.25.0':
671 | dependencies:
672 | '@babel/types': 7.25.2
673 | '@jridgewell/gen-mapping': 0.3.5
674 | '@jridgewell/trace-mapping': 0.3.25
675 | jsesc: 2.5.2
676 |
677 | '@babel/helper-compilation-targets@7.25.2':
678 | dependencies:
679 | '@babel/compat-data': 7.25.2
680 | '@babel/helper-validator-option': 7.24.8
681 | browserslist: 4.23.2
682 | lru-cache: 5.1.1
683 | semver: 6.3.1
684 |
685 | '@babel/helper-module-imports@7.24.7':
686 | dependencies:
687 | '@babel/traverse': 7.25.3
688 | '@babel/types': 7.25.2
689 | transitivePeerDependencies:
690 | - supports-color
691 |
692 | '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)':
693 | dependencies:
694 | '@babel/core': 7.25.2
695 | '@babel/helper-module-imports': 7.24.7
696 | '@babel/helper-simple-access': 7.24.7
697 | '@babel/helper-validator-identifier': 7.24.7
698 | '@babel/traverse': 7.25.3
699 | transitivePeerDependencies:
700 | - supports-color
701 |
702 | '@babel/helper-plugin-utils@7.24.8': {}
703 |
704 | '@babel/helper-simple-access@7.24.7':
705 | dependencies:
706 | '@babel/traverse': 7.25.3
707 | '@babel/types': 7.25.2
708 | transitivePeerDependencies:
709 | - supports-color
710 |
711 | '@babel/helper-string-parser@7.24.8': {}
712 |
713 | '@babel/helper-validator-identifier@7.24.7': {}
714 |
715 | '@babel/helper-validator-option@7.24.8': {}
716 |
717 | '@babel/helpers@7.25.0':
718 | dependencies:
719 | '@babel/template': 7.25.0
720 | '@babel/types': 7.25.2
721 |
722 | '@babel/highlight@7.24.7':
723 | dependencies:
724 | '@babel/helper-validator-identifier': 7.24.7
725 | chalk: 2.4.2
726 | js-tokens: 4.0.0
727 | picocolors: 1.0.1
728 |
729 | '@babel/parser@7.25.3':
730 | dependencies:
731 | '@babel/types': 7.25.2
732 |
733 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)':
734 | dependencies:
735 | '@babel/core': 7.25.2
736 | '@babel/helper-plugin-utils': 7.24.8
737 |
738 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)':
739 | dependencies:
740 | '@babel/core': 7.25.2
741 | '@babel/helper-plugin-utils': 7.24.8
742 |
743 | '@babel/template@7.25.0':
744 | dependencies:
745 | '@babel/code-frame': 7.24.7
746 | '@babel/parser': 7.25.3
747 | '@babel/types': 7.25.2
748 |
749 | '@babel/traverse@7.25.3':
750 | dependencies:
751 | '@babel/code-frame': 7.24.7
752 | '@babel/generator': 7.25.0
753 | '@babel/parser': 7.25.3
754 | '@babel/template': 7.25.0
755 | '@babel/types': 7.25.2
756 | debug: 4.3.6
757 | globals: 11.12.0
758 | transitivePeerDependencies:
759 | - supports-color
760 |
761 | '@babel/types@7.25.2':
762 | dependencies:
763 | '@babel/helper-string-parser': 7.24.8
764 | '@babel/helper-validator-identifier': 7.24.7
765 | to-fast-properties: 2.0.0
766 |
767 | '@esbuild/aix-ppc64@0.20.2':
768 | optional: true
769 |
770 | '@esbuild/android-arm64@0.20.2':
771 | optional: true
772 |
773 | '@esbuild/android-arm@0.20.2':
774 | optional: true
775 |
776 | '@esbuild/android-x64@0.20.2':
777 | optional: true
778 |
779 | '@esbuild/darwin-arm64@0.20.2':
780 | optional: true
781 |
782 | '@esbuild/darwin-x64@0.20.2':
783 | optional: true
784 |
785 | '@esbuild/freebsd-arm64@0.20.2':
786 | optional: true
787 |
788 | '@esbuild/freebsd-x64@0.20.2':
789 | optional: true
790 |
791 | '@esbuild/linux-arm64@0.20.2':
792 | optional: true
793 |
794 | '@esbuild/linux-arm@0.20.2':
795 | optional: true
796 |
797 | '@esbuild/linux-ia32@0.20.2':
798 | optional: true
799 |
800 | '@esbuild/linux-loong64@0.20.2':
801 | optional: true
802 |
803 | '@esbuild/linux-mips64el@0.20.2':
804 | optional: true
805 |
806 | '@esbuild/linux-ppc64@0.20.2':
807 | optional: true
808 |
809 | '@esbuild/linux-riscv64@0.20.2':
810 | optional: true
811 |
812 | '@esbuild/linux-s390x@0.20.2':
813 | optional: true
814 |
815 | '@esbuild/linux-x64@0.20.2':
816 | optional: true
817 |
818 | '@esbuild/netbsd-x64@0.20.2':
819 | optional: true
820 |
821 | '@esbuild/openbsd-x64@0.20.2':
822 | optional: true
823 |
824 | '@esbuild/sunos-x64@0.20.2':
825 | optional: true
826 |
827 | '@esbuild/win32-arm64@0.20.2':
828 | optional: true
829 |
830 | '@esbuild/win32-ia32@0.20.2':
831 | optional: true
832 |
833 | '@esbuild/win32-x64@0.20.2':
834 | optional: true
835 |
836 | '@jridgewell/gen-mapping@0.3.5':
837 | dependencies:
838 | '@jridgewell/set-array': 1.2.1
839 | '@jridgewell/sourcemap-codec': 1.5.0
840 | '@jridgewell/trace-mapping': 0.3.25
841 |
842 | '@jridgewell/resolve-uri@3.1.2': {}
843 |
844 | '@jridgewell/set-array@1.2.1': {}
845 |
846 | '@jridgewell/sourcemap-codec@1.5.0': {}
847 |
848 | '@jridgewell/trace-mapping@0.3.25':
849 | dependencies:
850 | '@jridgewell/resolve-uri': 3.1.2
851 | '@jridgewell/sourcemap-codec': 1.5.0
852 |
853 | '@module-federation/error-codes@0.8.0': {}
854 |
855 | '@module-federation/runtime@0.8.0':
856 | dependencies:
857 | '@module-federation/error-codes': 0.8.0
858 | '@module-federation/sdk': 0.8.0
859 |
860 | '@module-federation/sdk@0.8.0':
861 | dependencies:
862 | isomorphic-rslog: 0.0.6
863 |
864 | '@module-federation/vite@1.1.9(rollup@4.19.1)':
865 | dependencies:
866 | '@module-federation/runtime': 0.8.0
867 | '@rollup/pluginutils': 5.1.0(rollup@4.19.1)
868 | defu: 6.1.4
869 | estree-walker: 2.0.2
870 | magic-string: 0.30.11
871 | pathe: 1.1.2
872 | transitivePeerDependencies:
873 | - rollup
874 |
875 | '@rollup/pluginutils@5.1.0(rollup@4.19.1)':
876 | dependencies:
877 | '@types/estree': 1.0.5
878 | estree-walker: 2.0.2
879 | picomatch: 2.3.1
880 | optionalDependencies:
881 | rollup: 4.19.1
882 |
883 | '@rollup/rollup-android-arm-eabi@4.19.1':
884 | optional: true
885 |
886 | '@rollup/rollup-android-arm64@4.19.1':
887 | optional: true
888 |
889 | '@rollup/rollup-darwin-arm64@4.19.1':
890 | optional: true
891 |
892 | '@rollup/rollup-darwin-x64@4.19.1':
893 | optional: true
894 |
895 | '@rollup/rollup-linux-arm-gnueabihf@4.19.1':
896 | optional: true
897 |
898 | '@rollup/rollup-linux-arm-musleabihf@4.19.1':
899 | optional: true
900 |
901 | '@rollup/rollup-linux-arm64-gnu@4.19.1':
902 | optional: true
903 |
904 | '@rollup/rollup-linux-arm64-musl@4.19.1':
905 | optional: true
906 |
907 | '@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
908 | optional: true
909 |
910 | '@rollup/rollup-linux-riscv64-gnu@4.19.1':
911 | optional: true
912 |
913 | '@rollup/rollup-linux-s390x-gnu@4.19.1':
914 | optional: true
915 |
916 | '@rollup/rollup-linux-x64-gnu@4.19.1':
917 | optional: true
918 |
919 | '@rollup/rollup-linux-x64-musl@4.19.1':
920 | optional: true
921 |
922 | '@rollup/rollup-win32-arm64-msvc@4.19.1':
923 | optional: true
924 |
925 | '@rollup/rollup-win32-ia32-msvc@4.19.1':
926 | optional: true
927 |
928 | '@rollup/rollup-win32-x64-msvc@4.19.1':
929 | optional: true
930 |
931 | '@types/babel__core@7.20.5':
932 | dependencies:
933 | '@babel/parser': 7.25.3
934 | '@babel/types': 7.25.2
935 | '@types/babel__generator': 7.6.8
936 | '@types/babel__template': 7.4.4
937 | '@types/babel__traverse': 7.20.6
938 |
939 | '@types/babel__generator@7.6.8':
940 | dependencies:
941 | '@babel/types': 7.25.2
942 |
943 | '@types/babel__template@7.4.4':
944 | dependencies:
945 | '@babel/parser': 7.25.3
946 | '@babel/types': 7.25.2
947 |
948 | '@types/babel__traverse@7.20.6':
949 | dependencies:
950 | '@babel/types': 7.25.2
951 |
952 | '@types/estree@1.0.5': {}
953 |
954 | '@types/node@18.19.42':
955 | dependencies:
956 | undici-types: 5.26.5
957 | optional: true
958 |
959 | '@types/prop-types@15.7.12': {}
960 |
961 | '@types/react-dom@18.2.25':
962 | dependencies:
963 | '@types/react': 18.2.79
964 |
965 | '@types/react@18.2.79':
966 | dependencies:
967 | '@types/prop-types': 15.7.12
968 | csstype: 3.1.3
969 |
970 | '@vitejs/plugin-react@4.2.1(vite@5.2.10(@types/node@18.19.42))':
971 | dependencies:
972 | '@babel/core': 7.25.2
973 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
974 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
975 | '@types/babel__core': 7.20.5
976 | react-refresh: 0.14.2
977 | vite: 5.2.10(@types/node@18.19.42)
978 | transitivePeerDependencies:
979 | - supports-color
980 |
981 | ansi-styles@3.2.1:
982 | dependencies:
983 | color-convert: 1.9.3
984 |
985 | browserslist@4.23.2:
986 | dependencies:
987 | caniuse-lite: 1.0.30001646
988 | electron-to-chromium: 1.5.4
989 | node-releases: 2.0.18
990 | update-browserslist-db: 1.1.0(browserslist@4.23.2)
991 |
992 | caniuse-lite@1.0.30001646: {}
993 |
994 | chalk@2.4.2:
995 | dependencies:
996 | ansi-styles: 3.2.1
997 | escape-string-regexp: 1.0.5
998 | supports-color: 5.5.0
999 |
1000 | color-convert@1.9.3:
1001 | dependencies:
1002 | color-name: 1.1.3
1003 |
1004 | color-name@1.1.3: {}
1005 |
1006 | convert-source-map@2.0.0: {}
1007 |
1008 | csstype@3.1.3: {}
1009 |
1010 | debug@4.3.6:
1011 | dependencies:
1012 | ms: 2.1.2
1013 |
1014 | defu@6.1.4: {}
1015 |
1016 | electron-to-chromium@1.5.4: {}
1017 |
1018 | esbuild@0.20.2:
1019 | optionalDependencies:
1020 | '@esbuild/aix-ppc64': 0.20.2
1021 | '@esbuild/android-arm': 0.20.2
1022 | '@esbuild/android-arm64': 0.20.2
1023 | '@esbuild/android-x64': 0.20.2
1024 | '@esbuild/darwin-arm64': 0.20.2
1025 | '@esbuild/darwin-x64': 0.20.2
1026 | '@esbuild/freebsd-arm64': 0.20.2
1027 | '@esbuild/freebsd-x64': 0.20.2
1028 | '@esbuild/linux-arm': 0.20.2
1029 | '@esbuild/linux-arm64': 0.20.2
1030 | '@esbuild/linux-ia32': 0.20.2
1031 | '@esbuild/linux-loong64': 0.20.2
1032 | '@esbuild/linux-mips64el': 0.20.2
1033 | '@esbuild/linux-ppc64': 0.20.2
1034 | '@esbuild/linux-riscv64': 0.20.2
1035 | '@esbuild/linux-s390x': 0.20.2
1036 | '@esbuild/linux-x64': 0.20.2
1037 | '@esbuild/netbsd-x64': 0.20.2
1038 | '@esbuild/openbsd-x64': 0.20.2
1039 | '@esbuild/sunos-x64': 0.20.2
1040 | '@esbuild/win32-arm64': 0.20.2
1041 | '@esbuild/win32-ia32': 0.20.2
1042 | '@esbuild/win32-x64': 0.20.2
1043 |
1044 | escalade@3.1.2: {}
1045 |
1046 | escape-string-regexp@1.0.5: {}
1047 |
1048 | estree-walker@2.0.2: {}
1049 |
1050 | fsevents@2.3.3:
1051 | optional: true
1052 |
1053 | gensync@1.0.0-beta.2: {}
1054 |
1055 | globals@11.12.0: {}
1056 |
1057 | has-flag@3.0.0: {}
1058 |
1059 | isomorphic-rslog@0.0.6: {}
1060 |
1061 | js-tokens@4.0.0: {}
1062 |
1063 | jsesc@2.5.2: {}
1064 |
1065 | json5@2.2.3: {}
1066 |
1067 | loose-envify@1.4.0:
1068 | dependencies:
1069 | js-tokens: 4.0.0
1070 |
1071 | lru-cache@5.1.1:
1072 | dependencies:
1073 | yallist: 3.1.1
1074 |
1075 | magic-string@0.30.11:
1076 | dependencies:
1077 | '@jridgewell/sourcemap-codec': 1.5.0
1078 |
1079 | ms@2.1.2: {}
1080 |
1081 | nanoid@3.3.7: {}
1082 |
1083 | node-releases@2.0.18: {}
1084 |
1085 | pathe@1.1.2: {}
1086 |
1087 | picocolors@1.0.1: {}
1088 |
1089 | picomatch@2.3.1: {}
1090 |
1091 | postcss@8.4.40:
1092 | dependencies:
1093 | nanoid: 3.3.7
1094 | picocolors: 1.0.1
1095 | source-map-js: 1.2.0
1096 |
1097 | react-dom@18.3.1(react@18.3.1):
1098 | dependencies:
1099 | loose-envify: 1.4.0
1100 | react: 18.3.1
1101 | scheduler: 0.23.2
1102 |
1103 | react-refresh@0.14.2: {}
1104 |
1105 | react@18.3.1:
1106 | dependencies:
1107 | loose-envify: 1.4.0
1108 |
1109 | rollup@4.19.1:
1110 | dependencies:
1111 | '@types/estree': 1.0.5
1112 | optionalDependencies:
1113 | '@rollup/rollup-android-arm-eabi': 4.19.1
1114 | '@rollup/rollup-android-arm64': 4.19.1
1115 | '@rollup/rollup-darwin-arm64': 4.19.1
1116 | '@rollup/rollup-darwin-x64': 4.19.1
1117 | '@rollup/rollup-linux-arm-gnueabihf': 4.19.1
1118 | '@rollup/rollup-linux-arm-musleabihf': 4.19.1
1119 | '@rollup/rollup-linux-arm64-gnu': 4.19.1
1120 | '@rollup/rollup-linux-arm64-musl': 4.19.1
1121 | '@rollup/rollup-linux-powerpc64le-gnu': 4.19.1
1122 | '@rollup/rollup-linux-riscv64-gnu': 4.19.1
1123 | '@rollup/rollup-linux-s390x-gnu': 4.19.1
1124 | '@rollup/rollup-linux-x64-gnu': 4.19.1
1125 | '@rollup/rollup-linux-x64-musl': 4.19.1
1126 | '@rollup/rollup-win32-arm64-msvc': 4.19.1
1127 | '@rollup/rollup-win32-ia32-msvc': 4.19.1
1128 | '@rollup/rollup-win32-x64-msvc': 4.19.1
1129 | fsevents: 2.3.3
1130 |
1131 | rxjs@7.8.1:
1132 | dependencies:
1133 | tslib: 2.7.0
1134 |
1135 | scheduler@0.23.2:
1136 | dependencies:
1137 | loose-envify: 1.4.0
1138 |
1139 | semver@6.3.1: {}
1140 |
1141 | source-map-js@1.2.0: {}
1142 |
1143 | supports-color@5.5.0:
1144 | dependencies:
1145 | has-flag: 3.0.0
1146 |
1147 | to-fast-properties@2.0.0: {}
1148 |
1149 | tslib@2.7.0: {}
1150 |
1151 | typescript@5.4.5: {}
1152 |
1153 | undici-types@5.26.5:
1154 | optional: true
1155 |
1156 | update-browserslist-db@1.1.0(browserslist@4.23.2):
1157 | dependencies:
1158 | browserslist: 4.23.2
1159 | escalade: 3.1.2
1160 | picocolors: 1.0.1
1161 |
1162 | vite@5.2.10(@types/node@18.19.42):
1163 | dependencies:
1164 | esbuild: 0.20.2
1165 | postcss: 8.4.40
1166 | rollup: 4.19.1
1167 | optionalDependencies:
1168 | '@types/node': 18.19.42
1169 | fsevents: 2.3.3
1170 |
1171 | yallist@3.1.1: {}
1172 |
--------------------------------------------------------------------------------
/host/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/host/src/App.css:
--------------------------------------------------------------------------------
1 | .host .card {
2 | background: #3178c6;
3 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
4 | border-radius: 5px;
5 | margin: 20px 20px 20px 20px;
6 | width: 250px;
7 | padding: 20px;
8 | text-align: center;
9 | color: white;
10 | float: left;
11 | }
12 |
13 | .host .title {
14 | margin-top: 10px;
15 | font-size: 25px;
16 | }
17 |
18 | .host svg {
19 | width: 100px;
20 | height: 100px;
21 | }
22 |
23 | .host path {
24 | fill: #f6b352;
25 | }
--------------------------------------------------------------------------------
/host/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { lazy, Suspense, useEffect } from 'react';
2 | import { of, tap } from 'rxjs';
3 | import './App.css';
4 | import Counter from './components/Counter';
5 |
6 | const Remote = lazy(
7 | // @ts-ignore
8 | async () => import('remote/remote-app'),
9 | );
10 |
11 | export default () => {
12 | useEffect(() => {
13 | of('emit')
14 | .pipe(tap(() => console.log("I'm RxJs from host")))
15 | .subscribe();
16 | }, []);
17 |
18 | return (
19 | <>
20 |
21 |
22 |
38 |
I'm the host app
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | >
47 | );
48 | };
49 |
--------------------------------------------------------------------------------
/host/src/components/Counter.tsx:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 |
3 | export default () => {
4 | const [count, setCount] = useState(0);
5 |
6 | return (
7 |
21 | );
22 | };
23 |
--------------------------------------------------------------------------------
/host/src/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 | import App from './App';
4 |
5 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
6 |
7 |
8 | ,
9 | );
10 |
--------------------------------------------------------------------------------
/host/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/host/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "allowJs": false,
7 | "skipLibCheck": true,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx",
18 | "baseUrl": ".",
19 | "paths": {
20 | "shared": ["../shared/shared.ts"]
21 | }
22 | },
23 | "include": ["src"],
24 | "references": [
25 | {
26 | "path": "./tsconfig.node.json"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/host/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "ESNext",
5 | "moduleResolution": "Node",
6 | "allowSyntheticDefaultImports": true
7 | },
8 | "include": [
9 | "vite.config.ts",
10 | "module-federation/vite-importmap-shim.ts"
11 | ]
12 | }
--------------------------------------------------------------------------------
/host/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { federation } from '@module-federation/vite';
2 | import react from '@vitejs/plugin-react';
3 | import { defineConfig } from 'vite';
4 | import { dependencies } from './package.json';
5 |
6 | export default defineConfig(() => ({
7 | server: { fs: { allow: ['.', '../shared'] } },
8 | build: {
9 | target: 'chrome89',
10 | },
11 | plugins: [
12 | federation({
13 | name: 'host',
14 | remotes: {
15 | remote: {
16 | type: 'module',
17 | name: 'remote',
18 | entry: 'http://localhost:4174/remoteEntry.js',
19 | entryGlobalName: 'remote',
20 | shareScope: 'default',
21 | },
22 | },
23 | exposes: {},
24 | filename: 'remoteEntry.js',
25 | shared: {
26 | react: {
27 | requiredVersion: dependencies.react,
28 | singleton: true,
29 | },
30 | },
31 | }),
32 | react(),
33 | ],
34 | }));
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-microfrontend-demo",
3 | "version": "1.0.0",
4 | "description": "Vite + Module Federation is now possible",
5 | "main": "index.js",
6 | "scripts": {
7 | "install:deps": "pnpm install && pnpm -r install",
8 | "postinstall:deps": "pnpm run build",
9 | "dev": "pnpm -r dev",
10 | "build": "pnpm -r build",
11 | "preview": "pnpm -r preview",
12 | "prepare": "husky install"
13 | },
14 | "author": {
15 | "name": "Giorgio Boa",
16 | "email": "giorgiob.boa@gmail.com",
17 | "url": "https://github.com/gioboa"
18 | },
19 | "license": "ISC",
20 | "devDependencies": {
21 | "husky": "^8.0.0",
22 | "prettier": "^2.8.2"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 | .:
9 | devDependencies:
10 | husky:
11 | specifier: ^8.0.0
12 | version: 8.0.3
13 | prettier:
14 | specifier: ^2.8.2
15 | version: 2.8.8
16 |
17 | packages:
18 | husky@8.0.3:
19 | resolution: { integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== }
20 | engines: { node: '>=14' }
21 | hasBin: true
22 |
23 | prettier@2.8.8:
24 | resolution: { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== }
25 | engines: { node: '>=10.13.0' }
26 | hasBin: true
27 |
28 | snapshots:
29 | husky@8.0.3: {}
30 |
31 | prettier@2.8.8: {}
32 |
--------------------------------------------------------------------------------
/remote/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/remote/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | React Remote
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/remote/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vite-react-microfrontends_remote",
3 | "version": "0.0.0",
4 | "type": "module",
5 | "scripts": {
6 | "dev": "vite --port 4174",
7 | "build": "tsc && vite build",
8 | "preview": "npm run build && vite preview --port 4174"
9 | },
10 | "dependencies": {
11 | "react": "^18.3.1",
12 | "react-dom": "^18.3.1"
13 | },
14 | "devDependencies": {
15 | "@module-federation/vite": "1.1.9",
16 | "@types/react": "18.2.79",
17 | "@types/react-dom": "18.2.25",
18 | "@vitejs/plugin-react": "4.2.1",
19 | "typescript": "5.4.5",
20 | "vite": "5.2.10"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/remote/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 | .:
9 | dependencies:
10 | react:
11 | specifier: ^18.3.1
12 | version: 18.3.1
13 | react-dom:
14 | specifier: ^18.3.1
15 | version: 18.3.1(react@18.3.1)
16 | devDependencies:
17 | '@module-federation/vite':
18 | specifier: 1.1.9
19 | version: 1.1.9(rollup@4.19.1)
20 | '@types/react':
21 | specifier: 18.2.79
22 | version: 18.2.79
23 | '@types/react-dom':
24 | specifier: 18.2.25
25 | version: 18.2.25
26 | '@vitejs/plugin-react':
27 | specifier: 4.2.1
28 | version: 4.2.1(vite@5.2.10(@types/node@18.19.42))
29 | typescript:
30 | specifier: 5.4.5
31 | version: 5.4.5
32 | vite:
33 | specifier: 5.2.10
34 | version: 5.2.10(@types/node@18.19.42)
35 |
36 | packages:
37 | '@ampproject/remapping@2.3.0':
38 | resolution: { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== }
39 | engines: { node: '>=6.0.0' }
40 |
41 | '@babel/code-frame@7.24.7':
42 | resolution: { integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== }
43 | engines: { node: '>=6.9.0' }
44 |
45 | '@babel/compat-data@7.25.2':
46 | resolution: { integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== }
47 | engines: { node: '>=6.9.0' }
48 |
49 | '@babel/core@7.25.2':
50 | resolution: { integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== }
51 | engines: { node: '>=6.9.0' }
52 |
53 | '@babel/generator@7.25.0':
54 | resolution: { integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== }
55 | engines: { node: '>=6.9.0' }
56 |
57 | '@babel/helper-compilation-targets@7.25.2':
58 | resolution: { integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== }
59 | engines: { node: '>=6.9.0' }
60 |
61 | '@babel/helper-module-imports@7.24.7':
62 | resolution: { integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== }
63 | engines: { node: '>=6.9.0' }
64 |
65 | '@babel/helper-module-transforms@7.25.2':
66 | resolution: { integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== }
67 | engines: { node: '>=6.9.0' }
68 | peerDependencies:
69 | '@babel/core': ^7.0.0
70 |
71 | '@babel/helper-plugin-utils@7.24.8':
72 | resolution: { integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== }
73 | engines: { node: '>=6.9.0' }
74 |
75 | '@babel/helper-simple-access@7.24.7':
76 | resolution: { integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== }
77 | engines: { node: '>=6.9.0' }
78 |
79 | '@babel/helper-string-parser@7.24.8':
80 | resolution: { integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== }
81 | engines: { node: '>=6.9.0' }
82 |
83 | '@babel/helper-validator-identifier@7.24.7':
84 | resolution: { integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== }
85 | engines: { node: '>=6.9.0' }
86 |
87 | '@babel/helper-validator-option@7.24.8':
88 | resolution: { integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== }
89 | engines: { node: '>=6.9.0' }
90 |
91 | '@babel/helpers@7.25.0':
92 | resolution: { integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== }
93 | engines: { node: '>=6.9.0' }
94 |
95 | '@babel/highlight@7.24.7':
96 | resolution: { integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== }
97 | engines: { node: '>=6.9.0' }
98 |
99 | '@babel/parser@7.25.3':
100 | resolution: { integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== }
101 | engines: { node: '>=6.0.0' }
102 | hasBin: true
103 |
104 | '@babel/plugin-transform-react-jsx-self@7.24.7':
105 | resolution: { integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw== }
106 | engines: { node: '>=6.9.0' }
107 | peerDependencies:
108 | '@babel/core': ^7.0.0-0
109 |
110 | '@babel/plugin-transform-react-jsx-source@7.24.7':
111 | resolution: { integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ== }
112 | engines: { node: '>=6.9.0' }
113 | peerDependencies:
114 | '@babel/core': ^7.0.0-0
115 |
116 | '@babel/template@7.25.0':
117 | resolution: { integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== }
118 | engines: { node: '>=6.9.0' }
119 |
120 | '@babel/traverse@7.25.3':
121 | resolution: { integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== }
122 | engines: { node: '>=6.9.0' }
123 |
124 | '@babel/types@7.25.2':
125 | resolution: { integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== }
126 | engines: { node: '>=6.9.0' }
127 |
128 | '@esbuild/aix-ppc64@0.20.2':
129 | resolution: { integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== }
130 | engines: { node: '>=12' }
131 | cpu: [ppc64]
132 | os: [aix]
133 |
134 | '@esbuild/android-arm64@0.20.2':
135 | resolution: { integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== }
136 | engines: { node: '>=12' }
137 | cpu: [arm64]
138 | os: [android]
139 |
140 | '@esbuild/android-arm@0.20.2':
141 | resolution: { integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== }
142 | engines: { node: '>=12' }
143 | cpu: [arm]
144 | os: [android]
145 |
146 | '@esbuild/android-x64@0.20.2':
147 | resolution: { integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== }
148 | engines: { node: '>=12' }
149 | cpu: [x64]
150 | os: [android]
151 |
152 | '@esbuild/darwin-arm64@0.20.2':
153 | resolution: { integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== }
154 | engines: { node: '>=12' }
155 | cpu: [arm64]
156 | os: [darwin]
157 |
158 | '@esbuild/darwin-x64@0.20.2':
159 | resolution: { integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== }
160 | engines: { node: '>=12' }
161 | cpu: [x64]
162 | os: [darwin]
163 |
164 | '@esbuild/freebsd-arm64@0.20.2':
165 | resolution: { integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== }
166 | engines: { node: '>=12' }
167 | cpu: [arm64]
168 | os: [freebsd]
169 |
170 | '@esbuild/freebsd-x64@0.20.2':
171 | resolution: { integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== }
172 | engines: { node: '>=12' }
173 | cpu: [x64]
174 | os: [freebsd]
175 |
176 | '@esbuild/linux-arm64@0.20.2':
177 | resolution: { integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== }
178 | engines: { node: '>=12' }
179 | cpu: [arm64]
180 | os: [linux]
181 |
182 | '@esbuild/linux-arm@0.20.2':
183 | resolution: { integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== }
184 | engines: { node: '>=12' }
185 | cpu: [arm]
186 | os: [linux]
187 |
188 | '@esbuild/linux-ia32@0.20.2':
189 | resolution: { integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== }
190 | engines: { node: '>=12' }
191 | cpu: [ia32]
192 | os: [linux]
193 |
194 | '@esbuild/linux-loong64@0.20.2':
195 | resolution: { integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== }
196 | engines: { node: '>=12' }
197 | cpu: [loong64]
198 | os: [linux]
199 |
200 | '@esbuild/linux-mips64el@0.20.2':
201 | resolution: { integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== }
202 | engines: { node: '>=12' }
203 | cpu: [mips64el]
204 | os: [linux]
205 |
206 | '@esbuild/linux-ppc64@0.20.2':
207 | resolution: { integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== }
208 | engines: { node: '>=12' }
209 | cpu: [ppc64]
210 | os: [linux]
211 |
212 | '@esbuild/linux-riscv64@0.20.2':
213 | resolution: { integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== }
214 | engines: { node: '>=12' }
215 | cpu: [riscv64]
216 | os: [linux]
217 |
218 | '@esbuild/linux-s390x@0.20.2':
219 | resolution: { integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== }
220 | engines: { node: '>=12' }
221 | cpu: [s390x]
222 | os: [linux]
223 |
224 | '@esbuild/linux-x64@0.20.2':
225 | resolution: { integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== }
226 | engines: { node: '>=12' }
227 | cpu: [x64]
228 | os: [linux]
229 |
230 | '@esbuild/netbsd-x64@0.20.2':
231 | resolution: { integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== }
232 | engines: { node: '>=12' }
233 | cpu: [x64]
234 | os: [netbsd]
235 |
236 | '@esbuild/openbsd-x64@0.20.2':
237 | resolution: { integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== }
238 | engines: { node: '>=12' }
239 | cpu: [x64]
240 | os: [openbsd]
241 |
242 | '@esbuild/sunos-x64@0.20.2':
243 | resolution: { integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== }
244 | engines: { node: '>=12' }
245 | cpu: [x64]
246 | os: [sunos]
247 |
248 | '@esbuild/win32-arm64@0.20.2':
249 | resolution: { integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== }
250 | engines: { node: '>=12' }
251 | cpu: [arm64]
252 | os: [win32]
253 |
254 | '@esbuild/win32-ia32@0.20.2':
255 | resolution: { integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== }
256 | engines: { node: '>=12' }
257 | cpu: [ia32]
258 | os: [win32]
259 |
260 | '@esbuild/win32-x64@0.20.2':
261 | resolution: { integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== }
262 | engines: { node: '>=12' }
263 | cpu: [x64]
264 | os: [win32]
265 |
266 | '@jridgewell/gen-mapping@0.3.5':
267 | resolution: { integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== }
268 | engines: { node: '>=6.0.0' }
269 |
270 | '@jridgewell/resolve-uri@3.1.2':
271 | resolution: { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== }
272 | engines: { node: '>=6.0.0' }
273 |
274 | '@jridgewell/set-array@1.2.1':
275 | resolution: { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== }
276 | engines: { node: '>=6.0.0' }
277 |
278 | '@jridgewell/sourcemap-codec@1.5.0':
279 | resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== }
280 |
281 | '@jridgewell/trace-mapping@0.3.25':
282 | resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== }
283 |
284 | '@module-federation/error-codes@0.8.0':
285 | resolution: { integrity: sha512-xU0eUA0xTUx93Li/eYCZ+kuGP9qt+8fEaOu+i6U9jJP1RYONvPifibfLNo4SQszQTzqfGViyrx1O3uiA7XUYQQ== }
286 |
287 | '@module-federation/runtime@0.8.0':
288 | resolution: { integrity: sha512-UfDsJYAFOyJoErpmjf1sy8d2WXHGitFsSQrIiDzNpDHv4SzHgjuhWQeAuJKlQq2zdE/F4IPhkHgTatQigRKZCA== }
289 |
290 | '@module-federation/sdk@0.8.0':
291 | resolution: { integrity: sha512-V2cNGO//sWCyHTaQ0iTcoslolqVgdBIBOkZVLyk9AkZ4B3CO49pe/TmIIaVs9jVg3GO+ZmmazBFKRkqdn2PdRg== }
292 |
293 | '@module-federation/vite@1.1.9':
294 | resolution: { integrity: sha512-gUo/uV8ZlHTLJjgKy02lXb7zo9auqOIt5Ozw1ewP9vkMrNQVEm4ZxmZ7P+k8Rb9O2PjfdHOLRuHfNmXHmywzUw== }
295 |
296 | '@rollup/pluginutils@5.1.0':
297 | resolution: { integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== }
298 | engines: { node: '>=14.0.0' }
299 | peerDependencies:
300 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
301 | peerDependenciesMeta:
302 | rollup:
303 | optional: true
304 |
305 | '@rollup/rollup-android-arm-eabi@4.19.1':
306 | resolution: { integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww== }
307 | cpu: [arm]
308 | os: [android]
309 |
310 | '@rollup/rollup-android-arm64@4.19.1':
311 | resolution: { integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A== }
312 | cpu: [arm64]
313 | os: [android]
314 |
315 | '@rollup/rollup-darwin-arm64@4.19.1':
316 | resolution: { integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q== }
317 | cpu: [arm64]
318 | os: [darwin]
319 |
320 | '@rollup/rollup-darwin-x64@4.19.1':
321 | resolution: { integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA== }
322 | cpu: [x64]
323 | os: [darwin]
324 |
325 | '@rollup/rollup-linux-arm-gnueabihf@4.19.1':
326 | resolution: { integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q== }
327 | cpu: [arm]
328 | os: [linux]
329 |
330 | '@rollup/rollup-linux-arm-musleabihf@4.19.1':
331 | resolution: { integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw== }
332 | cpu: [arm]
333 | os: [linux]
334 |
335 | '@rollup/rollup-linux-arm64-gnu@4.19.1':
336 | resolution: { integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw== }
337 | cpu: [arm64]
338 | os: [linux]
339 |
340 | '@rollup/rollup-linux-arm64-musl@4.19.1':
341 | resolution: { integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw== }
342 | cpu: [arm64]
343 | os: [linux]
344 |
345 | '@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
346 | resolution: { integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ== }
347 | cpu: [ppc64]
348 | os: [linux]
349 |
350 | '@rollup/rollup-linux-riscv64-gnu@4.19.1':
351 | resolution: { integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A== }
352 | cpu: [riscv64]
353 | os: [linux]
354 |
355 | '@rollup/rollup-linux-s390x-gnu@4.19.1':
356 | resolution: { integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q== }
357 | cpu: [s390x]
358 | os: [linux]
359 |
360 | '@rollup/rollup-linux-x64-gnu@4.19.1':
361 | resolution: { integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q== }
362 | cpu: [x64]
363 | os: [linux]
364 |
365 | '@rollup/rollup-linux-x64-musl@4.19.1':
366 | resolution: { integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q== }
367 | cpu: [x64]
368 | os: [linux]
369 |
370 | '@rollup/rollup-win32-arm64-msvc@4.19.1':
371 | resolution: { integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA== }
372 | cpu: [arm64]
373 | os: [win32]
374 |
375 | '@rollup/rollup-win32-ia32-msvc@4.19.1':
376 | resolution: { integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ== }
377 | cpu: [ia32]
378 | os: [win32]
379 |
380 | '@rollup/rollup-win32-x64-msvc@4.19.1':
381 | resolution: { integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg== }
382 | cpu: [x64]
383 | os: [win32]
384 |
385 | '@types/babel__core@7.20.5':
386 | resolution: { integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== }
387 |
388 | '@types/babel__generator@7.6.8':
389 | resolution: { integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== }
390 |
391 | '@types/babel__template@7.4.4':
392 | resolution: { integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== }
393 |
394 | '@types/babel__traverse@7.20.6':
395 | resolution: { integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== }
396 |
397 | '@types/estree@1.0.5':
398 | resolution: { integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== }
399 |
400 | '@types/node@18.19.42':
401 | resolution: { integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg== }
402 |
403 | '@types/prop-types@15.7.12':
404 | resolution: { integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== }
405 |
406 | '@types/react-dom@18.2.25':
407 | resolution: { integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA== }
408 |
409 | '@types/react@18.2.79':
410 | resolution: { integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== }
411 |
412 | '@vitejs/plugin-react@4.2.1':
413 | resolution: { integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== }
414 | engines: { node: ^14.18.0 || >=16.0.0 }
415 | peerDependencies:
416 | vite: ^4.2.0 || ^5.0.0
417 |
418 | ansi-styles@3.2.1:
419 | resolution: { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== }
420 | engines: { node: '>=4' }
421 |
422 | browserslist@4.23.2:
423 | resolution: { integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== }
424 | engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
425 | hasBin: true
426 |
427 | caniuse-lite@1.0.30001646:
428 | resolution: { integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw== }
429 |
430 | chalk@2.4.2:
431 | resolution: { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== }
432 | engines: { node: '>=4' }
433 |
434 | color-convert@1.9.3:
435 | resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== }
436 |
437 | color-name@1.1.3:
438 | resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== }
439 |
440 | convert-source-map@2.0.0:
441 | resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== }
442 |
443 | csstype@3.1.3:
444 | resolution: { integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== }
445 |
446 | debug@4.3.6:
447 | resolution: { integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== }
448 | engines: { node: '>=6.0' }
449 | peerDependencies:
450 | supports-color: '*'
451 | peerDependenciesMeta:
452 | supports-color:
453 | optional: true
454 |
455 | defu@6.1.4:
456 | resolution: { integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== }
457 |
458 | electron-to-chromium@1.5.4:
459 | resolution: { integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== }
460 |
461 | esbuild@0.20.2:
462 | resolution: { integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== }
463 | engines: { node: '>=12' }
464 | hasBin: true
465 |
466 | escalade@3.1.2:
467 | resolution: { integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== }
468 | engines: { node: '>=6' }
469 |
470 | escape-string-regexp@1.0.5:
471 | resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== }
472 | engines: { node: '>=0.8.0' }
473 |
474 | estree-walker@2.0.2:
475 | resolution: { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== }
476 |
477 | fsevents@2.3.3:
478 | resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== }
479 | engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
480 | os: [darwin]
481 |
482 | gensync@1.0.0-beta.2:
483 | resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== }
484 | engines: { node: '>=6.9.0' }
485 |
486 | globals@11.12.0:
487 | resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== }
488 | engines: { node: '>=4' }
489 |
490 | has-flag@3.0.0:
491 | resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== }
492 | engines: { node: '>=4' }
493 |
494 | isomorphic-rslog@0.0.6:
495 | resolution: { integrity: sha512-HM0q6XqQ93psDlqvuViNs/Ea3hAyGDkIdVAHlrEocjjAwGrs1fZ+EdQjS9eUPacnYB7Y8SoDdSY3H8p3ce205A== }
496 | engines: { node: '>=14.17.6' }
497 |
498 | js-tokens@4.0.0:
499 | resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== }
500 |
501 | jsesc@2.5.2:
502 | resolution: { integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== }
503 | engines: { node: '>=4' }
504 | hasBin: true
505 |
506 | json5@2.2.3:
507 | resolution: { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== }
508 | engines: { node: '>=6' }
509 | hasBin: true
510 |
511 | loose-envify@1.4.0:
512 | resolution: { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== }
513 | hasBin: true
514 |
515 | lru-cache@5.1.1:
516 | resolution: { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== }
517 |
518 | magic-string@0.30.11:
519 | resolution: { integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== }
520 |
521 | ms@2.1.2:
522 | resolution: { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== }
523 |
524 | nanoid@3.3.7:
525 | resolution: { integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== }
526 | engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
527 | hasBin: true
528 |
529 | node-releases@2.0.18:
530 | resolution: { integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== }
531 |
532 | pathe@1.1.2:
533 | resolution: { integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== }
534 |
535 | picocolors@1.0.1:
536 | resolution: { integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== }
537 |
538 | picomatch@2.3.1:
539 | resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== }
540 | engines: { node: '>=8.6' }
541 |
542 | postcss@8.4.40:
543 | resolution: { integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== }
544 | engines: { node: ^10 || ^12 || >=14 }
545 |
546 | react-dom@18.3.1:
547 | resolution: { integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== }
548 | peerDependencies:
549 | react: ^18.3.1
550 |
551 | react-refresh@0.14.2:
552 | resolution: { integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== }
553 | engines: { node: '>=0.10.0' }
554 |
555 | react@18.3.1:
556 | resolution: { integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== }
557 | engines: { node: '>=0.10.0' }
558 |
559 | rollup@4.19.1:
560 | resolution: { integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw== }
561 | engines: { node: '>=18.0.0', npm: '>=8.0.0' }
562 | hasBin: true
563 |
564 | scheduler@0.23.2:
565 | resolution: { integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== }
566 |
567 | semver@6.3.1:
568 | resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== }
569 | hasBin: true
570 |
571 | source-map-js@1.2.0:
572 | resolution: { integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== }
573 | engines: { node: '>=0.10.0' }
574 |
575 | supports-color@5.5.0:
576 | resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== }
577 | engines: { node: '>=4' }
578 |
579 | to-fast-properties@2.0.0:
580 | resolution: { integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== }
581 | engines: { node: '>=4' }
582 |
583 | typescript@5.4.5:
584 | resolution: { integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== }
585 | engines: { node: '>=14.17' }
586 | hasBin: true
587 |
588 | undici-types@5.26.5:
589 | resolution: { integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== }
590 |
591 | update-browserslist-db@1.1.0:
592 | resolution: { integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== }
593 | hasBin: true
594 | peerDependencies:
595 | browserslist: '>= 4.21.0'
596 |
597 | vite@5.2.10:
598 | resolution: { integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw== }
599 | engines: { node: ^18.0.0 || >=20.0.0 }
600 | hasBin: true
601 | peerDependencies:
602 | '@types/node': ^18.0.0 || >=20.0.0
603 | less: '*'
604 | lightningcss: ^1.21.0
605 | sass: '*'
606 | stylus: '*'
607 | sugarss: '*'
608 | terser: ^5.4.0
609 | peerDependenciesMeta:
610 | '@types/node':
611 | optional: true
612 | less:
613 | optional: true
614 | lightningcss:
615 | optional: true
616 | sass:
617 | optional: true
618 | stylus:
619 | optional: true
620 | sugarss:
621 | optional: true
622 | terser:
623 | optional: true
624 |
625 | yallist@3.1.1:
626 | resolution: { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== }
627 |
628 | snapshots:
629 | '@ampproject/remapping@2.3.0':
630 | dependencies:
631 | '@jridgewell/gen-mapping': 0.3.5
632 | '@jridgewell/trace-mapping': 0.3.25
633 |
634 | '@babel/code-frame@7.24.7':
635 | dependencies:
636 | '@babel/highlight': 7.24.7
637 | picocolors: 1.0.1
638 |
639 | '@babel/compat-data@7.25.2': {}
640 |
641 | '@babel/core@7.25.2':
642 | dependencies:
643 | '@ampproject/remapping': 2.3.0
644 | '@babel/code-frame': 7.24.7
645 | '@babel/generator': 7.25.0
646 | '@babel/helper-compilation-targets': 7.25.2
647 | '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
648 | '@babel/helpers': 7.25.0
649 | '@babel/parser': 7.25.3
650 | '@babel/template': 7.25.0
651 | '@babel/traverse': 7.25.3
652 | '@babel/types': 7.25.2
653 | convert-source-map: 2.0.0
654 | debug: 4.3.6
655 | gensync: 1.0.0-beta.2
656 | json5: 2.2.3
657 | semver: 6.3.1
658 | transitivePeerDependencies:
659 | - supports-color
660 |
661 | '@babel/generator@7.25.0':
662 | dependencies:
663 | '@babel/types': 7.25.2
664 | '@jridgewell/gen-mapping': 0.3.5
665 | '@jridgewell/trace-mapping': 0.3.25
666 | jsesc: 2.5.2
667 |
668 | '@babel/helper-compilation-targets@7.25.2':
669 | dependencies:
670 | '@babel/compat-data': 7.25.2
671 | '@babel/helper-validator-option': 7.24.8
672 | browserslist: 4.23.2
673 | lru-cache: 5.1.1
674 | semver: 6.3.1
675 |
676 | '@babel/helper-module-imports@7.24.7':
677 | dependencies:
678 | '@babel/traverse': 7.25.3
679 | '@babel/types': 7.25.2
680 | transitivePeerDependencies:
681 | - supports-color
682 |
683 | '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)':
684 | dependencies:
685 | '@babel/core': 7.25.2
686 | '@babel/helper-module-imports': 7.24.7
687 | '@babel/helper-simple-access': 7.24.7
688 | '@babel/helper-validator-identifier': 7.24.7
689 | '@babel/traverse': 7.25.3
690 | transitivePeerDependencies:
691 | - supports-color
692 |
693 | '@babel/helper-plugin-utils@7.24.8': {}
694 |
695 | '@babel/helper-simple-access@7.24.7':
696 | dependencies:
697 | '@babel/traverse': 7.25.3
698 | '@babel/types': 7.25.2
699 | transitivePeerDependencies:
700 | - supports-color
701 |
702 | '@babel/helper-string-parser@7.24.8': {}
703 |
704 | '@babel/helper-validator-identifier@7.24.7': {}
705 |
706 | '@babel/helper-validator-option@7.24.8': {}
707 |
708 | '@babel/helpers@7.25.0':
709 | dependencies:
710 | '@babel/template': 7.25.0
711 | '@babel/types': 7.25.2
712 |
713 | '@babel/highlight@7.24.7':
714 | dependencies:
715 | '@babel/helper-validator-identifier': 7.24.7
716 | chalk: 2.4.2
717 | js-tokens: 4.0.0
718 | picocolors: 1.0.1
719 |
720 | '@babel/parser@7.25.3':
721 | dependencies:
722 | '@babel/types': 7.25.2
723 |
724 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)':
725 | dependencies:
726 | '@babel/core': 7.25.2
727 | '@babel/helper-plugin-utils': 7.24.8
728 |
729 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)':
730 | dependencies:
731 | '@babel/core': 7.25.2
732 | '@babel/helper-plugin-utils': 7.24.8
733 |
734 | '@babel/template@7.25.0':
735 | dependencies:
736 | '@babel/code-frame': 7.24.7
737 | '@babel/parser': 7.25.3
738 | '@babel/types': 7.25.2
739 |
740 | '@babel/traverse@7.25.3':
741 | dependencies:
742 | '@babel/code-frame': 7.24.7
743 | '@babel/generator': 7.25.0
744 | '@babel/parser': 7.25.3
745 | '@babel/template': 7.25.0
746 | '@babel/types': 7.25.2
747 | debug: 4.3.6
748 | globals: 11.12.0
749 | transitivePeerDependencies:
750 | - supports-color
751 |
752 | '@babel/types@7.25.2':
753 | dependencies:
754 | '@babel/helper-string-parser': 7.24.8
755 | '@babel/helper-validator-identifier': 7.24.7
756 | to-fast-properties: 2.0.0
757 |
758 | '@esbuild/aix-ppc64@0.20.2':
759 | optional: true
760 |
761 | '@esbuild/android-arm64@0.20.2':
762 | optional: true
763 |
764 | '@esbuild/android-arm@0.20.2':
765 | optional: true
766 |
767 | '@esbuild/android-x64@0.20.2':
768 | optional: true
769 |
770 | '@esbuild/darwin-arm64@0.20.2':
771 | optional: true
772 |
773 | '@esbuild/darwin-x64@0.20.2':
774 | optional: true
775 |
776 | '@esbuild/freebsd-arm64@0.20.2':
777 | optional: true
778 |
779 | '@esbuild/freebsd-x64@0.20.2':
780 | optional: true
781 |
782 | '@esbuild/linux-arm64@0.20.2':
783 | optional: true
784 |
785 | '@esbuild/linux-arm@0.20.2':
786 | optional: true
787 |
788 | '@esbuild/linux-ia32@0.20.2':
789 | optional: true
790 |
791 | '@esbuild/linux-loong64@0.20.2':
792 | optional: true
793 |
794 | '@esbuild/linux-mips64el@0.20.2':
795 | optional: true
796 |
797 | '@esbuild/linux-ppc64@0.20.2':
798 | optional: true
799 |
800 | '@esbuild/linux-riscv64@0.20.2':
801 | optional: true
802 |
803 | '@esbuild/linux-s390x@0.20.2':
804 | optional: true
805 |
806 | '@esbuild/linux-x64@0.20.2':
807 | optional: true
808 |
809 | '@esbuild/netbsd-x64@0.20.2':
810 | optional: true
811 |
812 | '@esbuild/openbsd-x64@0.20.2':
813 | optional: true
814 |
815 | '@esbuild/sunos-x64@0.20.2':
816 | optional: true
817 |
818 | '@esbuild/win32-arm64@0.20.2':
819 | optional: true
820 |
821 | '@esbuild/win32-ia32@0.20.2':
822 | optional: true
823 |
824 | '@esbuild/win32-x64@0.20.2':
825 | optional: true
826 |
827 | '@jridgewell/gen-mapping@0.3.5':
828 | dependencies:
829 | '@jridgewell/set-array': 1.2.1
830 | '@jridgewell/sourcemap-codec': 1.5.0
831 | '@jridgewell/trace-mapping': 0.3.25
832 |
833 | '@jridgewell/resolve-uri@3.1.2': {}
834 |
835 | '@jridgewell/set-array@1.2.1': {}
836 |
837 | '@jridgewell/sourcemap-codec@1.5.0': {}
838 |
839 | '@jridgewell/trace-mapping@0.3.25':
840 | dependencies:
841 | '@jridgewell/resolve-uri': 3.1.2
842 | '@jridgewell/sourcemap-codec': 1.5.0
843 |
844 | '@module-federation/error-codes@0.8.0': {}
845 |
846 | '@module-federation/runtime@0.8.0':
847 | dependencies:
848 | '@module-federation/error-codes': 0.8.0
849 | '@module-federation/sdk': 0.8.0
850 |
851 | '@module-federation/sdk@0.8.0':
852 | dependencies:
853 | isomorphic-rslog: 0.0.6
854 |
855 | '@module-federation/vite@1.1.9(rollup@4.19.1)':
856 | dependencies:
857 | '@module-federation/runtime': 0.8.0
858 | '@rollup/pluginutils': 5.1.0(rollup@4.19.1)
859 | defu: 6.1.4
860 | estree-walker: 2.0.2
861 | magic-string: 0.30.11
862 | pathe: 1.1.2
863 | transitivePeerDependencies:
864 | - rollup
865 |
866 | '@rollup/pluginutils@5.1.0(rollup@4.19.1)':
867 | dependencies:
868 | '@types/estree': 1.0.5
869 | estree-walker: 2.0.2
870 | picomatch: 2.3.1
871 | optionalDependencies:
872 | rollup: 4.19.1
873 |
874 | '@rollup/rollup-android-arm-eabi@4.19.1':
875 | optional: true
876 |
877 | '@rollup/rollup-android-arm64@4.19.1':
878 | optional: true
879 |
880 | '@rollup/rollup-darwin-arm64@4.19.1':
881 | optional: true
882 |
883 | '@rollup/rollup-darwin-x64@4.19.1':
884 | optional: true
885 |
886 | '@rollup/rollup-linux-arm-gnueabihf@4.19.1':
887 | optional: true
888 |
889 | '@rollup/rollup-linux-arm-musleabihf@4.19.1':
890 | optional: true
891 |
892 | '@rollup/rollup-linux-arm64-gnu@4.19.1':
893 | optional: true
894 |
895 | '@rollup/rollup-linux-arm64-musl@4.19.1':
896 | optional: true
897 |
898 | '@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
899 | optional: true
900 |
901 | '@rollup/rollup-linux-riscv64-gnu@4.19.1':
902 | optional: true
903 |
904 | '@rollup/rollup-linux-s390x-gnu@4.19.1':
905 | optional: true
906 |
907 | '@rollup/rollup-linux-x64-gnu@4.19.1':
908 | optional: true
909 |
910 | '@rollup/rollup-linux-x64-musl@4.19.1':
911 | optional: true
912 |
913 | '@rollup/rollup-win32-arm64-msvc@4.19.1':
914 | optional: true
915 |
916 | '@rollup/rollup-win32-ia32-msvc@4.19.1':
917 | optional: true
918 |
919 | '@rollup/rollup-win32-x64-msvc@4.19.1':
920 | optional: true
921 |
922 | '@types/babel__core@7.20.5':
923 | dependencies:
924 | '@babel/parser': 7.25.3
925 | '@babel/types': 7.25.2
926 | '@types/babel__generator': 7.6.8
927 | '@types/babel__template': 7.4.4
928 | '@types/babel__traverse': 7.20.6
929 |
930 | '@types/babel__generator@7.6.8':
931 | dependencies:
932 | '@babel/types': 7.25.2
933 |
934 | '@types/babel__template@7.4.4':
935 | dependencies:
936 | '@babel/parser': 7.25.3
937 | '@babel/types': 7.25.2
938 |
939 | '@types/babel__traverse@7.20.6':
940 | dependencies:
941 | '@babel/types': 7.25.2
942 |
943 | '@types/estree@1.0.5': {}
944 |
945 | '@types/node@18.19.42':
946 | dependencies:
947 | undici-types: 5.26.5
948 | optional: true
949 |
950 | '@types/prop-types@15.7.12': {}
951 |
952 | '@types/react-dom@18.2.25':
953 | dependencies:
954 | '@types/react': 18.2.79
955 |
956 | '@types/react@18.2.79':
957 | dependencies:
958 | '@types/prop-types': 15.7.12
959 | csstype: 3.1.3
960 |
961 | '@vitejs/plugin-react@4.2.1(vite@5.2.10(@types/node@18.19.42))':
962 | dependencies:
963 | '@babel/core': 7.25.2
964 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
965 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
966 | '@types/babel__core': 7.20.5
967 | react-refresh: 0.14.2
968 | vite: 5.2.10(@types/node@18.19.42)
969 | transitivePeerDependencies:
970 | - supports-color
971 |
972 | ansi-styles@3.2.1:
973 | dependencies:
974 | color-convert: 1.9.3
975 |
976 | browserslist@4.23.2:
977 | dependencies:
978 | caniuse-lite: 1.0.30001646
979 | electron-to-chromium: 1.5.4
980 | node-releases: 2.0.18
981 | update-browserslist-db: 1.1.0(browserslist@4.23.2)
982 |
983 | caniuse-lite@1.0.30001646: {}
984 |
985 | chalk@2.4.2:
986 | dependencies:
987 | ansi-styles: 3.2.1
988 | escape-string-regexp: 1.0.5
989 | supports-color: 5.5.0
990 |
991 | color-convert@1.9.3:
992 | dependencies:
993 | color-name: 1.1.3
994 |
995 | color-name@1.1.3: {}
996 |
997 | convert-source-map@2.0.0: {}
998 |
999 | csstype@3.1.3: {}
1000 |
1001 | debug@4.3.6:
1002 | dependencies:
1003 | ms: 2.1.2
1004 |
1005 | defu@6.1.4: {}
1006 |
1007 | electron-to-chromium@1.5.4: {}
1008 |
1009 | esbuild@0.20.2:
1010 | optionalDependencies:
1011 | '@esbuild/aix-ppc64': 0.20.2
1012 | '@esbuild/android-arm': 0.20.2
1013 | '@esbuild/android-arm64': 0.20.2
1014 | '@esbuild/android-x64': 0.20.2
1015 | '@esbuild/darwin-arm64': 0.20.2
1016 | '@esbuild/darwin-x64': 0.20.2
1017 | '@esbuild/freebsd-arm64': 0.20.2
1018 | '@esbuild/freebsd-x64': 0.20.2
1019 | '@esbuild/linux-arm': 0.20.2
1020 | '@esbuild/linux-arm64': 0.20.2
1021 | '@esbuild/linux-ia32': 0.20.2
1022 | '@esbuild/linux-loong64': 0.20.2
1023 | '@esbuild/linux-mips64el': 0.20.2
1024 | '@esbuild/linux-ppc64': 0.20.2
1025 | '@esbuild/linux-riscv64': 0.20.2
1026 | '@esbuild/linux-s390x': 0.20.2
1027 | '@esbuild/linux-x64': 0.20.2
1028 | '@esbuild/netbsd-x64': 0.20.2
1029 | '@esbuild/openbsd-x64': 0.20.2
1030 | '@esbuild/sunos-x64': 0.20.2
1031 | '@esbuild/win32-arm64': 0.20.2
1032 | '@esbuild/win32-ia32': 0.20.2
1033 | '@esbuild/win32-x64': 0.20.2
1034 |
1035 | escalade@3.1.2: {}
1036 |
1037 | escape-string-regexp@1.0.5: {}
1038 |
1039 | estree-walker@2.0.2: {}
1040 |
1041 | fsevents@2.3.3:
1042 | optional: true
1043 |
1044 | gensync@1.0.0-beta.2: {}
1045 |
1046 | globals@11.12.0: {}
1047 |
1048 | has-flag@3.0.0: {}
1049 |
1050 | isomorphic-rslog@0.0.6: {}
1051 |
1052 | js-tokens@4.0.0: {}
1053 |
1054 | jsesc@2.5.2: {}
1055 |
1056 | json5@2.2.3: {}
1057 |
1058 | loose-envify@1.4.0:
1059 | dependencies:
1060 | js-tokens: 4.0.0
1061 |
1062 | lru-cache@5.1.1:
1063 | dependencies:
1064 | yallist: 3.1.1
1065 |
1066 | magic-string@0.30.11:
1067 | dependencies:
1068 | '@jridgewell/sourcemap-codec': 1.5.0
1069 |
1070 | ms@2.1.2: {}
1071 |
1072 | nanoid@3.3.7: {}
1073 |
1074 | node-releases@2.0.18: {}
1075 |
1076 | pathe@1.1.2: {}
1077 |
1078 | picocolors@1.0.1: {}
1079 |
1080 | picomatch@2.3.1: {}
1081 |
1082 | postcss@8.4.40:
1083 | dependencies:
1084 | nanoid: 3.3.7
1085 | picocolors: 1.0.1
1086 | source-map-js: 1.2.0
1087 |
1088 | react-dom@18.3.1(react@18.3.1):
1089 | dependencies:
1090 | loose-envify: 1.4.0
1091 | react: 18.3.1
1092 | scheduler: 0.23.2
1093 |
1094 | react-refresh@0.14.2: {}
1095 |
1096 | react@18.3.1:
1097 | dependencies:
1098 | loose-envify: 1.4.0
1099 |
1100 | rollup@4.19.1:
1101 | dependencies:
1102 | '@types/estree': 1.0.5
1103 | optionalDependencies:
1104 | '@rollup/rollup-android-arm-eabi': 4.19.1
1105 | '@rollup/rollup-android-arm64': 4.19.1
1106 | '@rollup/rollup-darwin-arm64': 4.19.1
1107 | '@rollup/rollup-darwin-x64': 4.19.1
1108 | '@rollup/rollup-linux-arm-gnueabihf': 4.19.1
1109 | '@rollup/rollup-linux-arm-musleabihf': 4.19.1
1110 | '@rollup/rollup-linux-arm64-gnu': 4.19.1
1111 | '@rollup/rollup-linux-arm64-musl': 4.19.1
1112 | '@rollup/rollup-linux-powerpc64le-gnu': 4.19.1
1113 | '@rollup/rollup-linux-riscv64-gnu': 4.19.1
1114 | '@rollup/rollup-linux-s390x-gnu': 4.19.1
1115 | '@rollup/rollup-linux-x64-gnu': 4.19.1
1116 | '@rollup/rollup-linux-x64-musl': 4.19.1
1117 | '@rollup/rollup-win32-arm64-msvc': 4.19.1
1118 | '@rollup/rollup-win32-ia32-msvc': 4.19.1
1119 | '@rollup/rollup-win32-x64-msvc': 4.19.1
1120 | fsevents: 2.3.3
1121 |
1122 | scheduler@0.23.2:
1123 | dependencies:
1124 | loose-envify: 1.4.0
1125 |
1126 | semver@6.3.1: {}
1127 |
1128 | source-map-js@1.2.0: {}
1129 |
1130 | supports-color@5.5.0:
1131 | dependencies:
1132 | has-flag: 3.0.0
1133 |
1134 | to-fast-properties@2.0.0: {}
1135 |
1136 | typescript@5.4.5: {}
1137 |
1138 | undici-types@5.26.5:
1139 | optional: true
1140 |
1141 | update-browserslist-db@1.1.0(browserslist@4.23.2):
1142 | dependencies:
1143 | browserslist: 4.23.2
1144 | escalade: 3.1.2
1145 | picocolors: 1.0.1
1146 |
1147 | vite@5.2.10(@types/node@18.19.42):
1148 | dependencies:
1149 | esbuild: 0.20.2
1150 | postcss: 8.4.40
1151 | rollup: 4.19.1
1152 | optionalDependencies:
1153 | '@types/node': 18.19.42
1154 | fsevents: 2.3.3
1155 |
1156 | yallist@3.1.1: {}
1157 |
--------------------------------------------------------------------------------
/remote/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/remote/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 | import Counter from './components/Counter';
3 |
4 | export default () => {
5 | useEffect(() => {
6 | console.log('Remote useEffect');
7 | }, []);
8 |
9 | return (
10 |
23 |
39 |
I'm the remote app
40 |
41 |
42 | );
43 | };
44 |
--------------------------------------------------------------------------------
/remote/src/components/Counter.tsx:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 |
3 | export default () => {
4 | const [count, setCount] = useState(0);
5 |
6 | return (
7 |
21 | );
22 | };
23 |
--------------------------------------------------------------------------------
/remote/src/environment.ts:
--------------------------------------------------------------------------------
1 | export default {};
--------------------------------------------------------------------------------
/remote/src/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 | import App from './App';
4 |
5 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
6 |
7 |
8 | ,
9 | );
10 |
--------------------------------------------------------------------------------
/remote/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/remote/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": [
6 | "DOM",
7 | "DOM.Iterable",
8 | "ESNext"
9 | ],
10 | "allowJs": false,
11 | "skipLibCheck": true,
12 | "esModuleInterop": false,
13 | "allowSyntheticDefaultImports": true,
14 | "strict": true,
15 | "forceConsistentCasingInFileNames": true,
16 | "module": "ESNext",
17 | "moduleResolution": "Node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx",
22 | "baseUrl": ".",
23 | "paths": {
24 | "shared": [
25 | "../shared/shared.ts"
26 | ]
27 | }
28 | },
29 | "include": [
30 | "src"
31 | ],
32 | "references": [
33 | {
34 | "path": "./tsconfig.node.json"
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/remote/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "ESNext",
5 | "moduleResolution": "Node",
6 | "allowSyntheticDefaultImports": true
7 | },
8 | "include": [
9 | "vite.config.ts",
10 | "module-federation/vite-importmap-shim.ts"
11 | ]
12 | }
--------------------------------------------------------------------------------
/remote/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { federation } from '@module-federation/vite';
2 | import react from '@vitejs/plugin-react';
3 | import { writeFileSync } from 'fs';
4 | import { defineConfig, loadEnv } from 'vite';
5 | import { dependencies } from './package.json';
6 |
7 | export default defineConfig(({ mode }) => {
8 | const selfEnv = loadEnv(mode, process.cwd());
9 | return {
10 | server: {
11 | fs: {
12 | allow: ['.', '../shared'],
13 | },
14 | },
15 | build: {
16 | target: 'chrome89',
17 | },
18 | plugins: [
19 | {
20 | name: 'generate-environment',
21 | options: function () {
22 | console.info('selfEnv', selfEnv);
23 | writeFileSync('./src/environment.ts', `export default ${JSON.stringify(selfEnv, null, 2)};`);
24 | },
25 | },
26 | federation({
27 | filename: 'remoteEntry.js',
28 | name: 'remote',
29 | exposes: {
30 | './remote-app': './src/App.tsx',
31 | },
32 | remotes: {},
33 | shared: {
34 | react: {
35 | requiredVersion: dependencies.react,
36 | singleton: true,
37 | },
38 | },
39 | }),
40 | react(),
41 | ],
42 | };
43 | });
44 |
--------------------------------------------------------------------------------
/shared/shared.ts:
--------------------------------------------------------------------------------
1 | export const state = {
2 | message: ''
3 | }
4 |
--------------------------------------------------------------------------------