aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 15:48:58 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 15:48:58 +0100
commitb5d16a8068ed55b784f8e10f19a99cc7f11b8bc7 (patch)
treed819b4bb607f5b046451e15385c16804d5f43fcf
parentfeat: Main to renderer store synchronization (diff)
downloadsophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.tar.gz
sophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.tar.zst
sophie-b5d16a8068ed55b784f8e10f19a99cc7f11b8bc7.zip
feat: Add react and mobx integration
-rw-r--r--package.json2
-rw-r--r--packages/main/package.json2
-rw-r--r--packages/renderer/package.json1
-rw-r--r--packages/renderer/src/components/StoreProvider.tsx24
-rw-r--r--packages/renderer/src/components/ThemeProvider.tsx26
-rw-r--r--packages/renderer/src/index.tsx53
-rw-r--r--packages/renderer/src/stores/RootStore.ts61
-rw-r--r--packages/shared/src/stores/SharedStore.ts1
-rw-r--r--yarn.lock129
9 files changed, 217 insertions, 82 deletions
diff --git a/package.json b/package.json
index 64508db..cf271bd 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
31 "@typescript-eslint/parser": "^5.8.0", 31 "@typescript-eslint/parser": "^5.8.0",
32 "cross-env": "7.0.3", 32 "cross-env": "7.0.3",
33 "electron": "16.0.5", 33 "electron": "16.0.5",
34 "electron-builder": "22.14.5", 34 "electron-builder": "22.14.11",
35 "eslint": "8.5.0", 35 "eslint": "8.5.0",
36 "rollup": "^2.61.1", 36 "rollup": "^2.61.1",
37 "typescript": "4.5.4", 37 "typescript": "4.5.4",
diff --git a/packages/main/package.json b/packages/main/package.json
index 22afafa..1f5e749 100644
--- a/packages/main/package.json
+++ b/packages/main/package.json
@@ -15,7 +15,7 @@
15 }, 15 },
16 "devDependencies": { 16 "devDependencies": {
17 "@types/electron-devtools-installer": "^2.2.0", 17 "@types/electron-devtools-installer": "^2.2.0",
18 "@types/node": "^16.11.17", 18 "@types/node": "^17.0.4",
19 "electron-devtools-installer": "^3.2.0", 19 "electron-devtools-installer": "^3.2.0",
20 "typescript": "^4.5.4", 20 "typescript": "^4.5.4",
21 "vite": "^2.7.6" 21 "vite": "^2.7.6"
diff --git a/packages/renderer/package.json b/packages/renderer/package.json
index ee627b4..ceec3a5 100644
--- a/packages/renderer/package.json
+++ b/packages/renderer/package.json
@@ -15,6 +15,7 @@
15 "@mui/material": "^5.2.5", 15 "@mui/material": "^5.2.5",
16 "@sophie/shared": "workspace:*", 16 "@sophie/shared": "workspace:*",
17 "mobx": "^6.3.10", 17 "mobx": "^6.3.10",
18 "mobx-react-lite": "^3.2.2",
18 "mobx-state-tree": "^5.1.0", 19 "mobx-state-tree": "^5.1.0",
19 "react": "^17.0.2", 20 "react": "^17.0.2",
20 "react-dom": "^17.0.2" 21 "react-dom": "^17.0.2"
diff --git a/packages/renderer/src/components/StoreProvider.tsx b/packages/renderer/src/components/StoreProvider.tsx
new file mode 100644
index 0000000..51c39f7
--- /dev/null
+++ b/packages/renderer/src/components/StoreProvider.tsx
@@ -0,0 +1,24 @@
1import React, { createContext, useContext } from 'react';
2
3import type { RootStore } from '../stores/RootStore';
4
5const StoreContext = createContext<RootStore | null>(null);
6
7export function useStore(): RootStore {
8 const store = useContext(StoreContext);
9 if (store === null) {
10 throw new Error('useStore can only be called inside of StoreProvider');
11 }
12 return store;
13}
14
15export function StoreProvider({ children, store }: {
16 children: JSX.Element | JSX.Element[],
17 store: RootStore,
18}): JSX.Element {
19 return (
20 <StoreContext.Provider value={store}>
21 {children}
22 </StoreContext.Provider>
23 );
24}
diff --git a/packages/renderer/src/components/ThemeProvider.tsx b/packages/renderer/src/components/ThemeProvider.tsx
new file mode 100644
index 0000000..8be4f6a
--- /dev/null
+++ b/packages/renderer/src/components/ThemeProvider.tsx
@@ -0,0 +1,26 @@
1import { observer } from 'mobx-react-lite';
2import {
3 unstable_createMuiStrictModeTheme as createTheme,
4 ThemeProvider as MuiThemeProvider,
5} from '@mui/material/styles';
6import React from 'react';
7
8import { useStore } from './StoreProvider';
9
10export const ThemeProvider = observer(({ children }: {
11 children: JSX.Element | JSX.Element[],
12}): JSX.Element => {
13 const { shared: { shouldUseDarkColors } } = useStore();
14
15 const theme = createTheme({
16 palette: {
17 mode: shouldUseDarkColors ? 'dark' : 'light',
18 },
19 });
20
21 return (
22 <MuiThemeProvider theme={theme}>
23 {children}
24 </MuiThemeProvider>
25 );
26});
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 37daaa6..34b21de 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -2,56 +2,49 @@ import '@fontsource/roboto/300.css';
2import '@fontsource/roboto/400.css'; 2import '@fontsource/roboto/400.css';
3import '@fontsource/roboto/500.css'; 3import '@fontsource/roboto/500.css';
4import '@fontsource/roboto/700.css'; 4import '@fontsource/roboto/700.css';
5import { applyPatch, applySnapshot } from 'mobx-state-tree'; 5import { observer } from 'mobx-react-lite';
6import Button from "@mui/material/Button"; 6import Button from "@mui/material/Button";
7import CssBaseline from "@mui/material/CssBaseline"; 7import CssBaseline from "@mui/material/CssBaseline";
8import {
9 unstable_createMuiStrictModeTheme as createTheme,
10 ThemeProvider,
11} from '@mui/material/styles';
12import React from 'react'; 8import React from 'react';
13import { render } from 'react-dom'; 9import { render } from 'react-dom';
14import { sharedStore } from '@sophie/shared';
15 10
11import { StoreProvider, useStore } from './components/StoreProvider';
12import { ThemeProvider } from './components/ThemeProvider';
16import { exposeToReduxDevtools } from './devTools'; 13import { exposeToReduxDevtools } from './devTools';
14import { createAndConnectRootStore } from './stores/RootStore';
17 15
18const isDevelopment = import.meta.env.MODE === 'development'; 16const isDevelopment = import.meta.env.MODE === 'development';
19 17
20const store = sharedStore.create(); 18const store = createAndConnectRootStore(window.sophieRenderer);
21 19
22if (isDevelopment) { 20if (isDevelopment) {
23 exposeToReduxDevtools(store); 21 exposeToReduxDevtools(store);
24} 22}
25 23
26window.sophieRenderer.setSharedStoreListener({ 24const Example = observer(() => {
27 onSnapshot(snapshot) { 25 const { shared: { clickCount } } = useStore();
28 applySnapshot(store, snapshot);
29 },
30 onPatch(patch) {
31 applyPatch(store, patch);
32 },
33});
34 26
35const theme = createTheme({ 27 return (
36 palette: { 28 <Button
37 mode: 'dark', 29 variant="contained"
38 }, 30 onClick={() => store.buttonClick()}
31 >
32 Hello Sophie! {clickCount}
33 </Button>
34 );
39}); 35});
40 36
41function App() { 37function Root(): JSX.Element {
42 return ( 38 return (
43 <React.StrictMode> 39 <React.StrictMode>
44 <ThemeProvider theme={theme}> 40 <StoreProvider store={store}>
45 <CssBaseline enableColorScheme /> 41 <ThemeProvider>
46 <Button 42 <CssBaseline enableColorScheme />
47 variant="contained" 43 <Example />
48 onClick={window.sophieRenderer.buttonClick} 44 </ThemeProvider>
49 > 45 </StoreProvider>
50 Hello Sophie!
51 </Button>
52 </ThemeProvider>
53 </React.StrictMode> 46 </React.StrictMode>
54 ); 47 );
55} 48}
56 49
57render(<App />, document.querySelector('#app')); 50render(<Root />, document.querySelector('#app'));
diff --git a/packages/renderer/src/stores/RootStore.ts b/packages/renderer/src/stores/RootStore.ts
new file mode 100644
index 0000000..86efac6
--- /dev/null
+++ b/packages/renderer/src/stores/RootStore.ts
@@ -0,0 +1,61 @@
1import {
2 applySnapshot,
3 applyPatch,
4 getEnv as getAnyEnv,
5 IAnyStateTreeNode,
6 Instance,
7 types
8} from 'mobx-state-tree';
9import { sharedStore, SophieRenderer } from '@sophie/shared';
10
11export interface RootEnv {
12 ipc: SophieRenderer;
13}
14
15/**
16 * Gets a well-typed environment from `model`.
17 *
18 * Only useable inside state trees created by `createAndConnectRootStore`.
19 *
20 * @param model The state tree node.
21 */
22export function getEnv(model: IAnyStateTreeNode): RootEnv {
23 return getAnyEnv<RootEnv>(model);
24}
25
26export const rootStore = types.model('RootStore', {
27 shared: sharedStore,
28}).actions((self) => ({
29 buttonClick() {
30 getEnv(self).ipc.buttonClick();
31 },
32}));
33
34export interface RootStore extends Instance<typeof rootStore> {}
35
36/**
37 * Creates a new `RootStore` with a new environment and connects it to `ipc`.
38 *
39 * Changes to the `shared` store in the main process will be propagated to
40 * the newly created store via `ipc`.
41 *
42 * @param ipc The `sophieRenderer` context bridge.
43 */
44export function createAndConnectRootStore(ipc: SophieRenderer): RootStore {
45 const store = rootStore.create({
46 shared: {},
47 }, {
48 ipc,
49 });
50
51 ipc.setSharedStoreListener({
52 onSnapshot(snapshot) {
53 applySnapshot(store.shared, snapshot);
54 },
55 onPatch(patch) {
56 applyPatch(store.shared, patch);
57 },
58 });
59
60 return store;
61}
diff --git a/packages/shared/src/stores/SharedStore.ts b/packages/shared/src/stores/SharedStore.ts
index 8933bca..31504be 100644
--- a/packages/shared/src/stores/SharedStore.ts
+++ b/packages/shared/src/stores/SharedStore.ts
@@ -7,6 +7,7 @@ import {
7} from 'mobx-state-tree'; 7} from 'mobx-state-tree';
8 8
9export const sharedStore = types.model("SharedStore", { 9export const sharedStore = types.model("SharedStore", {
10 shouldUseDarkColors: true,
10 clickCount: 0 11 clickCount: 0
11}); 12});
12 13
diff --git a/yarn.lock b/yarn.lock
index d05bdbc..e7c4f74 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -824,7 +824,7 @@ __metadata:
824 dependencies: 824 dependencies:
825 "@sophie/shared": "workspace:*" 825 "@sophie/shared": "workspace:*"
826 "@types/electron-devtools-installer": ^2.2.0 826 "@types/electron-devtools-installer": ^2.2.0
827 "@types/node": ^16.11.17 827 "@types/node": ^17.0.4
828 electron: ^16.0.5 828 electron: ^16.0.5
829 electron-devtools-installer: ^3.2.0 829 electron-devtools-installer: ^3.2.0
830 mobx: ^6.3.10 830 mobx: ^6.3.10
@@ -861,6 +861,7 @@ __metadata:
861 "@types/react-dom": ^17.0.11 861 "@types/react-dom": ^17.0.11
862 "@vitejs/plugin-react": ^1.1.3 862 "@vitejs/plugin-react": ^1.1.3
863 mobx: ^6.3.10 863 mobx: ^6.3.10
864 mobx-react-lite: ^3.2.2
864 mobx-state-tree: ^5.1.0 865 mobx-state-tree: ^5.1.0
865 mst-middlewares: ^5.1.0 866 mst-middlewares: ^5.1.0
866 react: ^17.0.2 867 react: ^17.0.2
@@ -898,6 +899,13 @@ __metadata:
898 languageName: node 899 languageName: node
899 linkType: hard 900 linkType: hard
900 901
902"@tootallnate/once@npm:2":
903 version: 2.0.0
904 resolution: "@tootallnate/once@npm:2.0.0"
905 checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8
906 languageName: node
907 linkType: hard
908
901"@types/debug@npm:^4.1.6": 909"@types/debug@npm:^4.1.6":
902 version: 4.1.7 910 version: 4.1.7
903 resolution: "@types/debug@npm:4.1.7" 911 resolution: "@types/debug@npm:4.1.7"
@@ -963,10 +971,10 @@ __metadata:
963 languageName: node 971 languageName: node
964 linkType: hard 972 linkType: hard
965 973
966"@types/node@npm:*": 974"@types/node@npm:*, @types/node@npm:^17.0.4":
967 version: 17.0.2 975 version: 17.0.4
968 resolution: "@types/node@npm:17.0.2" 976 resolution: "@types/node@npm:17.0.4"
969 checksum: a827d2542ef7adba5c79ba7f85b7c2ba8256d317bd99d77ed7af237cfebae0034dff5c4182e1845e6fbef29ae4c78186c4b4a7dbf236037a04120783aa30ba74 977 checksum: 92e6a25fea2314cd34e81962bd07c8b79b92cae04d84a0336a8c49a2b8aa4c34ff8cb428baeac2022daf597809bd3b7987c624b07a91c4d01b6230f82c293190
970 languageName: node 978 languageName: node
971 linkType: hard 979 linkType: hard
972 980
@@ -977,13 +985,6 @@ __metadata:
977 languageName: node 985 languageName: node
978 linkType: hard 986 linkType: hard
979 987
980"@types/node@npm:^16.11.17":
981 version: 16.11.17
982 resolution: "@types/node@npm:16.11.17"
983 checksum: 86ed84f79450f6aba1a6ef09f8407c10076966c3cc7cc4eb3d35b8ae4f47817e525641396ef0a667fa0a88fcdf484f6182812c074601403083bdf3b5e1ac0313
984 languageName: node
985 linkType: hard
986
987"@types/parse-json@npm:^4.0.0": 988"@types/parse-json@npm:^4.0.0":
988 version: 4.0.0 989 version: 4.0.0
989 resolution: "@types/parse-json@npm:4.0.0" 990 resolution: "@types/parse-json@npm:4.0.0"
@@ -1325,9 +1326,9 @@ __metadata:
1325 languageName: node 1326 languageName: node
1326 linkType: hard 1327 linkType: hard
1327 1328
1328"app-builder-lib@npm:22.14.5": 1329"app-builder-lib@npm:22.14.11":
1329 version: 22.14.5 1330 version: 22.14.11
1330 resolution: "app-builder-lib@npm:22.14.5" 1331 resolution: "app-builder-lib@npm:22.14.11"
1331 dependencies: 1332 dependencies:
1332 7zip-bin: ~5.1.1 1333 7zip-bin: ~5.1.1
1333 "@develar/schema-utils": ~2.6.5 1334 "@develar/schema-utils": ~2.6.5
@@ -1335,13 +1336,13 @@ __metadata:
1335 "@malept/flatpak-bundler": ^0.4.0 1336 "@malept/flatpak-bundler": ^0.4.0
1336 async-exit-hook: ^2.0.1 1337 async-exit-hook: ^2.0.1
1337 bluebird-lst: ^1.0.9 1338 bluebird-lst: ^1.0.9
1338 builder-util: 22.14.5 1339 builder-util: 22.14.7
1339 builder-util-runtime: 8.9.1 1340 builder-util-runtime: 8.9.2
1340 chromium-pickle-js: ^0.2.0 1341 chromium-pickle-js: ^0.2.0
1341 debug: ^4.3.2 1342 debug: ^4.3.2
1342 ejs: ^3.1.6 1343 ejs: ^3.1.6
1343 electron-osx-sign: ^0.5.0 1344 electron-osx-sign: ^0.5.0
1344 electron-publish: 22.14.5 1345 electron-publish: 22.14.7
1345 form-data: ^4.0.0 1346 form-data: ^4.0.0
1346 fs-extra: ^10.0.0 1347 fs-extra: ^10.0.0
1347 hosted-git-info: ^4.0.2 1348 hosted-git-info: ^4.0.2
@@ -1354,7 +1355,7 @@ __metadata:
1354 sanitize-filename: ^1.6.3 1355 sanitize-filename: ^1.6.3
1355 semver: ^7.3.5 1356 semver: ^7.3.5
1356 temp-file: ^3.4.0 1357 temp-file: ^3.4.0
1357 checksum: 50aaea3979970d59137e50d1a6da650801e5d4d6119a57a94355697fd90c4fc956b37758dbd6ba284aa2a829cf4c6c19a46514e4b0046cf9b644847866875714 1358 checksum: 4afcf8107368e2e4268076ba2944f12018dc50c61fd7c8da71ccee5bb000db8fa8195bd8e44ed420f3aebefa177ebd0bc91edd6d3a4c296d0d3c2ba6b8162962
1358 languageName: node 1359 languageName: node
1359 linkType: hard 1360 linkType: hard
1360 1361
@@ -1616,36 +1617,38 @@ __metadata:
1616 languageName: node 1617 languageName: node
1617 linkType: hard 1618 linkType: hard
1618 1619
1619"builder-util-runtime@npm:8.9.1": 1620"builder-util-runtime@npm:8.9.2":
1620 version: 8.9.1 1621 version: 8.9.2
1621 resolution: "builder-util-runtime@npm:8.9.1" 1622 resolution: "builder-util-runtime@npm:8.9.2"
1622 dependencies: 1623 dependencies:
1623 debug: ^4.3.2 1624 debug: ^4.3.2
1624 sax: ^1.2.4 1625 sax: ^1.2.4
1625 checksum: c319a9bce54b08ac93ad34d5d6ac4c4d0400435f9bddee247a67f54e637a4fc1b262b9709c58fed861c7b05243f0c232b6a8c7c3b92863530d544e6e3c15e5ec 1626 checksum: 35adcd6162e2ed16635ff7b7ecc353e400dcbbb3e7cd01823bfefc7256cefca8c820f62d15a0f7dbee1c7495a5f1fba4e0e238857a79b48d5f6bd35064f27208
1626 languageName: node 1627 languageName: node
1627 linkType: hard 1628 linkType: hard
1628 1629
1629"builder-util@npm:22.14.5": 1630"builder-util@npm:22.14.7":
1630 version: 22.14.5 1631 version: 22.14.7
1631 resolution: "builder-util@npm:22.14.5" 1632 resolution: "builder-util@npm:22.14.7"
1632 dependencies: 1633 dependencies:
1633 7zip-bin: ~5.1.1 1634 7zip-bin: ~5.1.1
1634 "@types/debug": ^4.1.6 1635 "@types/debug": ^4.1.6
1635 "@types/fs-extra": ^9.0.11 1636 "@types/fs-extra": ^9.0.11
1636 app-builder-bin: 3.7.1 1637 app-builder-bin: 3.7.1
1637 bluebird-lst: ^1.0.9 1638 bluebird-lst: ^1.0.9
1638 builder-util-runtime: 8.9.1 1639 builder-util-runtime: 8.9.2
1639 chalk: ^4.1.1 1640 chalk: ^4.1.1
1640 cross-spawn: ^7.0.3 1641 cross-spawn: ^7.0.3
1641 debug: ^4.3.2 1642 debug: ^4.3.2
1642 fs-extra: ^10.0.0 1643 fs-extra: ^10.0.0
1644 http-proxy-agent: ^5.0.0
1645 https-proxy-agent: ^5.0.0
1643 is-ci: ^3.0.0 1646 is-ci: ^3.0.0
1644 js-yaml: ^4.1.0 1647 js-yaml: ^4.1.0
1645 source-map-support: ^0.5.19 1648 source-map-support: ^0.5.19
1646 stat-mode: ^1.0.0 1649 stat-mode: ^1.0.0
1647 temp-file: ^3.4.0 1650 temp-file: ^3.4.0
1648 checksum: ead70484827ad8ccb67fc5be728759a8dee7bf14c120f4d4a8aa126b3850fa2de9301e00ec8310de2e918b8574650f2c261d7fc32a1b098378a99b08dfcbb738 1651 checksum: 4f850a8d1bbf12823b6ca712aeaf99474a4799107b92f3aad64910935fe5b01ca1c6cc29e0c2344a03249ba88f654be3bd6775c2ef634977de44510dd36bb37d
1649 languageName: node 1652 languageName: node
1650 linkType: hard 1653 linkType: hard
1651 1654
@@ -2148,13 +2151,13 @@ __metadata:
2148 languageName: node 2151 languageName: node
2149 linkType: hard 2152 linkType: hard
2150 2153
2151"dmg-builder@npm:22.14.5": 2154"dmg-builder@npm:22.14.11":
2152 version: 22.14.5 2155 version: 22.14.11
2153 resolution: "dmg-builder@npm:22.14.5" 2156 resolution: "dmg-builder@npm:22.14.11"
2154 dependencies: 2157 dependencies:
2155 app-builder-lib: 22.14.5 2158 app-builder-lib: 22.14.11
2156 builder-util: 22.14.5 2159 builder-util: 22.14.7
2157 builder-util-runtime: 8.9.1 2160 builder-util-runtime: 8.9.2
2158 dmg-license: ^1.0.9 2161 dmg-license: ^1.0.9
2159 fs-extra: ^10.0.0 2162 fs-extra: ^10.0.0
2160 iconv-lite: ^0.6.2 2163 iconv-lite: ^0.6.2
@@ -2162,7 +2165,7 @@ __metadata:
2162 dependenciesMeta: 2165 dependenciesMeta:
2163 dmg-license: 2166 dmg-license:
2164 optional: true 2167 optional: true
2165 checksum: 8b707da83a59c800b45391c5e8097dc702c162a30e1a5a46b59a4f19b8080ec2901f99a789d76fd448fa859e746731de1136e8b297355673112a93fa2a367380 2168 checksum: f00391010971d965b415d41a7e25865a573c2bf9f967ee5dd5c0053fe27f8c627ae6755751c6d8d0eeff1f1c9de0735976ba91a4b5ddc67f60663f7da21cb3eb
2166 languageName: node 2169 languageName: node
2167 linkType: hard 2170 linkType: hard
2168 2171
@@ -2244,16 +2247,16 @@ __metadata:
2244 languageName: node 2247 languageName: node
2245 linkType: hard 2248 linkType: hard
2246 2249
2247"electron-builder@npm:22.14.5": 2250"electron-builder@npm:22.14.11":
2248 version: 22.14.5 2251 version: 22.14.11
2249 resolution: "electron-builder@npm:22.14.5" 2252 resolution: "electron-builder@npm:22.14.11"
2250 dependencies: 2253 dependencies:
2251 "@types/yargs": ^17.0.1 2254 "@types/yargs": ^17.0.1
2252 app-builder-lib: 22.14.5 2255 app-builder-lib: 22.14.11
2253 builder-util: 22.14.5 2256 builder-util: 22.14.7
2254 builder-util-runtime: 8.9.1 2257 builder-util-runtime: 8.9.2
2255 chalk: ^4.1.1 2258 chalk: ^4.1.1
2256 dmg-builder: 22.14.5 2259 dmg-builder: 22.14.11
2257 fs-extra: ^10.0.0 2260 fs-extra: ^10.0.0
2258 is-ci: ^3.0.0 2261 is-ci: ^3.0.0
2259 lazy-val: ^1.0.5 2262 lazy-val: ^1.0.5
@@ -2263,7 +2266,7 @@ __metadata:
2263 bin: 2266 bin:
2264 electron-builder: cli.js 2267 electron-builder: cli.js
2265 install-app-deps: install-app-deps.js 2268 install-app-deps: install-app-deps.js
2266 checksum: b33929c9676c34192012cd056cfb06950ee785adeb2c2f8f749e241bae9534c1c7461a4e8b594c764dbdc7cc381568d9812d936a2475684745e8cbb1300c4713 2269 checksum: 8a5e3cf2a286186ca1703f7458c7253b3716d1e5f82edf404ba5b0479b2d1dc3845b48ab6d7733add879cb4a692ef48b9d8a0f67e0702711d3be7952f3281288
2267 languageName: node 2270 languageName: node
2268 linkType: hard 2271 linkType: hard
2269 2272
@@ -2296,18 +2299,18 @@ __metadata:
2296 languageName: node 2299 languageName: node
2297 linkType: hard 2300 linkType: hard
2298 2301
2299"electron-publish@npm:22.14.5": 2302"electron-publish@npm:22.14.7":
2300 version: 22.14.5 2303 version: 22.14.7
2301 resolution: "electron-publish@npm:22.14.5" 2304 resolution: "electron-publish@npm:22.14.7"
2302 dependencies: 2305 dependencies:
2303 "@types/fs-extra": ^9.0.11 2306 "@types/fs-extra": ^9.0.11
2304 builder-util: 22.14.5 2307 builder-util: 22.14.7
2305 builder-util-runtime: 8.9.1 2308 builder-util-runtime: 8.9.2
2306 chalk: ^4.1.1 2309 chalk: ^4.1.1
2307 fs-extra: ^10.0.0 2310 fs-extra: ^10.0.0
2308 lazy-val: ^1.0.5 2311 lazy-val: ^1.0.5
2309 mime: ^2.5.2 2312 mime: ^2.5.2
2310 checksum: 8b7b47879d0f870eff4eb78085d24a9813e0b52783717299149d31d2d5cef77ff376604e536b0bea8c37acdf0ccc929fed3d78ad2837f4746d89e0d5484f5f33 2313 checksum: a1584c23dc34e4c19f0a7418706715b0e39caf6516195cd6426bdbf432164a4af5993851b7c0a4eda72883ba0b24ab711483772fa85fc97b88de93d817c90f0c
2311 languageName: node 2314 languageName: node
2312 linkType: hard 2315 linkType: hard
2313 2316
@@ -3240,6 +3243,17 @@ __metadata:
3240 languageName: node 3243 languageName: node
3241 linkType: hard 3244 linkType: hard
3242 3245
3246"http-proxy-agent@npm:^5.0.0":
3247 version: 5.0.0
3248 resolution: "http-proxy-agent@npm:5.0.0"
3249 dependencies:
3250 "@tootallnate/once": 2
3251 agent-base: 6
3252 debug: 4
3253 checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786
3254 languageName: node
3255 linkType: hard
3256
3243"https-proxy-agent@npm:^5.0.0": 3257"https-proxy-agent@npm:^5.0.0":
3244 version: 5.0.0 3258 version: 5.0.0
3245 resolution: "https-proxy-agent@npm:5.0.0" 3259 resolution: "https-proxy-agent@npm:5.0.0"
@@ -3966,6 +3980,21 @@ __metadata:
3966 languageName: node 3980 languageName: node
3967 linkType: hard 3981 linkType: hard
3968 3982
3983"mobx-react-lite@npm:^3.2.2":
3984 version: 3.2.2
3985 resolution: "mobx-react-lite@npm:3.2.2"
3986 peerDependencies:
3987 mobx: ^6.1.0
3988 react: ^16.8.0 || ^17
3989 peerDependenciesMeta:
3990 react-dom:
3991 optional: true
3992 react-native:
3993 optional: true
3994 checksum: f64957cb71e45f8bbce0429b90f15fef6e0ad06a38e1522cf887900a2869e157beb3438bf6c2621cfc6907ad891428726686d7b544988995745e9a9c8255ff95
3995 languageName: node
3996 linkType: hard
3997
3969"mobx-state-tree@npm:^5.1.0": 3998"mobx-state-tree@npm:^5.1.0":
3970 version: 5.1.0 3999 version: 5.1.0
3971 resolution: "mobx-state-tree@npm:5.1.0" 4000 resolution: "mobx-state-tree@npm:5.1.0"
@@ -4883,7 +4912,7 @@ __metadata:
4883 "@typescript-eslint/parser": ^5.8.0 4912 "@typescript-eslint/parser": ^5.8.0
4884 cross-env: 7.0.3 4913 cross-env: 7.0.3
4885 electron: 16.0.5 4914 electron: 16.0.5
4886 electron-builder: 22.14.5 4915 electron-builder: 22.14.11
4887 eslint: 8.5.0 4916 eslint: 8.5.0
4888 rollup: ^2.61.1 4917 rollup: ^2.61.1
4889 typescript: 4.5.4 4918 typescript: 4.5.4