aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/main/.eslintrc.json6
-rw-r--r--packages/main/esbuild.config.js1
-rw-r--r--packages/main/package.json5
-rw-r--r--packages/main/src/compositionRoot.ts10
-rw-r--r--packages/main/src/controllers/__tests__/config.spec.ts8
-rw-r--r--packages/main/src/controllers/__tests__/nativeTheme.spec.ts4
-rw-r--r--packages/main/src/controllers/config.ts4
-rw-r--r--packages/main/src/controllers/nativeTheme.ts4
-rw-r--r--packages/main/src/index.ts6
-rw-r--r--packages/main/src/services/ConfigPersistenceService.ts4
-rw-r--r--packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts5
-rw-r--r--packages/main/src/stores/MainStore.ts2
-rw-r--r--packages/main/src/stores/SharedStore.ts2
-rw-r--r--packages/preload/package.json2
-rw-r--r--packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts8
-rw-r--r--packages/preload/src/index.ts2
-rw-r--r--packages/renderer/.eslintrc.json5
-rw-r--r--packages/renderer/src/components/App.tsx4
-rw-r--r--packages/renderer/src/components/BrowserViewPlaceholder.tsx2
-rw-r--r--packages/renderer/src/components/Sidebar.tsx2
-rw-r--r--packages/renderer/src/components/StoreProvider.tsx2
-rw-r--r--packages/renderer/src/components/ThemeProvider.tsx2
-rw-r--r--packages/renderer/src/components/ToggleDarkModeButton.tsx2
-rw-r--r--packages/renderer/src/index.tsx10
-rw-r--r--packages/renderer/src/stores/RendererStore.ts2
-rw-r--r--packages/renderer/vite.config.js1
-rw-r--r--packages/service-shared/src/index.ts6
-rw-r--r--packages/shared/src/contextBridge/SophieRenderer.ts2
-rw-r--r--packages/shared/src/index.ts14
-rw-r--r--packages/shared/src/stores/Config.ts2
-rw-r--r--packages/shared/src/stores/SharedStore.ts2
31 files changed, 76 insertions, 55 deletions
diff --git a/packages/main/.eslintrc.json b/packages/main/.eslintrc.json
new file mode 100644
index 0000000..6b736e2
--- /dev/null
+++ b/packages/main/.eslintrc.json
@@ -0,0 +1,6 @@
1{
2 "globals": {
3 "NodeJS": false,
4 "require": false
5 }
6}
diff --git a/packages/main/esbuild.config.js b/packages/main/esbuild.config.js
index 500590f..c24d6e1 100644
--- a/packages/main/esbuild.config.js
+++ b/packages/main/esbuild.config.js
@@ -1,3 +1,4 @@
1/* eslint-disable no-process-env */
1import getRepoInfo from 'git-repo-info'; 2import getRepoInfo from 'git-repo-info';
2import { node } from '../../config/buildConstants.js'; 3import { node } from '../../config/buildConstants.js';
3import { getConfig } from '../../config/esbuildConfig.js'; 4import { getConfig } from '../../config/esbuildConfig.js';
diff --git a/packages/main/package.json b/packages/main/package.json
index b904906..e1b3f49 100644
--- a/packages/main/package.json
+++ b/packages/main/package.json
@@ -19,15 +19,18 @@
19 "loglevel-plugin-prefix": "^0.8.4", 19 "loglevel-plugin-prefix": "^0.8.4",
20 "mobx": "^6.3.12", 20 "mobx": "^6.3.12",
21 "mobx-state-tree": "^5.1.0", 21 "mobx-state-tree": "^5.1.0",
22 "ms": "^2.1.3" 22 "ms": "^2.1.3",
23 "os-name": "^5.0.1"
23 }, 24 },
24 "devDependencies": { 25 "devDependencies": {
26 "@jest/globals": "^27.4.4",
25 "@types/electron-devtools-installer": "^2.2.1", 27 "@types/electron-devtools-installer": "^2.2.1",
26 "@types/lodash-es": "^4.17.5", 28 "@types/lodash-es": "^4.17.5",
27 "@types/ms": "^0.7.31", 29 "@types/ms": "^0.7.31",
28 "@types/node": "^17.0.8", 30 "@types/node": "^17.0.8",
29 "electron-devtools-installer": "^3.2.0", 31 "electron-devtools-installer": "^3.2.0",
30 "esbuild": "^0.14.11", 32 "esbuild": "^0.14.11",
33 "git-repo-info": "^2.1.1",
31 "jest": "^27.4.7", 34 "jest": "^27.4.7",
32 "jest-mock": "^27.4.6", 35 "jest-mock": "^27.4.6",
33 "rimraf": "^3.0.2", 36 "rimraf": "^3.0.2",
diff --git a/packages/main/src/compositionRoot.ts b/packages/main/src/compositionRoot.ts
index bf0f92e..76835a1 100644
--- a/packages/main/src/compositionRoot.ts
+++ b/packages/main/src/compositionRoot.ts
@@ -20,11 +20,11 @@
20 20
21import { app } from 'electron'; 21import { app } from 'electron';
22 22
23import { initConfig } from './controllers/config.js'; 23import { initConfig } from './controllers/config';
24import { initNativeTheme } from './controllers/nativeTheme.js'; 24import { initNativeTheme } from './controllers/nativeTheme';
25import { ConfigPersistenceServiceImpl } from './services/impl/ConfigPersistenceServiceImpl.js'; 25import { ConfigPersistenceServiceImpl } from './services/impl/ConfigPersistenceServiceImpl';
26import { MainStore } from './stores/MainStore.js'; 26import { MainStore } from './stores/MainStore';
27import { Disposer } from './utils/disposer.js'; 27import { Disposer } from './utils/disposer';
28 28
29export async function init(store: MainStore): Promise<Disposer> { 29export async function init(store: MainStore): Promise<Disposer> {
30 const configPersistenceService = new ConfigPersistenceServiceImpl(app.getPath('userData')); 30 const configPersistenceService = new ConfigPersistenceServiceImpl(app.getPath('userData'));
diff --git a/packages/main/src/controllers/__tests__/config.spec.ts b/packages/main/src/controllers/__tests__/config.spec.ts
index eea7f1e..eb67df0 100644
--- a/packages/main/src/controllers/__tests__/config.spec.ts
+++ b/packages/main/src/controllers/__tests__/config.spec.ts
@@ -23,10 +23,10 @@ import { mocked } from 'jest-mock';
23import ms from 'ms'; 23import ms from 'ms';
24 24
25import { initConfig } from '../config'; 25import { initConfig } from '../config';
26import type { ConfigPersistenceService } from '../../services/ConfigPersistenceService.js'; 26import type { ConfigPersistenceService } from '../../services/ConfigPersistenceService';
27import { Config, config as configModel } from '../../stores/Config.js'; 27import { Config, config as configModel } from '../../stores/Config';
28import { Disposer } from '../../utils/disposer.js'; 28import { Disposer } from '../../utils/disposer';
29import { silenceLogger } from '../../utils/logging.js'; 29import { silenceLogger } from '../../utils/logging';
30 30
31let config: Config; 31let config: Config;
32let persistenceService: ConfigPersistenceService = { 32let persistenceService: ConfigPersistenceService = {
diff --git a/packages/main/src/controllers/__tests__/nativeTheme.spec.ts b/packages/main/src/controllers/__tests__/nativeTheme.spec.ts
index cffeace..85d6dd2 100644
--- a/packages/main/src/controllers/__tests__/nativeTheme.spec.ts
+++ b/packages/main/src/controllers/__tests__/nativeTheme.spec.ts
@@ -21,8 +21,8 @@
21import { jest } from '@jest/globals'; 21import { jest } from '@jest/globals';
22import { mocked } from 'jest-mock'; 22import { mocked } from 'jest-mock';
23 23
24import { createMainStore, MainStore } from '../../stores/MainStore.js'; 24import { createMainStore, MainStore } from '../../stores/MainStore';
25import { Disposer } from '../../utils/disposer.js'; 25import { Disposer } from '../../utils/disposer';
26 26
27let shouldUseDarkColors = false; 27let shouldUseDarkColors = false;
28 28
diff --git a/packages/main/src/controllers/config.ts b/packages/main/src/controllers/config.ts
index 971f151..deaeac2 100644
--- a/packages/main/src/controllers/config.ts
+++ b/packages/main/src/controllers/config.ts
@@ -24,8 +24,8 @@ import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree';
24 24
25import type { ConfigPersistenceService } from '../services/ConfigPersistenceService.js'; 25import type { ConfigPersistenceService } from '../services/ConfigPersistenceService.js';
26import type { Config, ConfigSnapshotOut } from '../stores/Config.js'; 26import type { Config, ConfigSnapshotOut } from '../stores/Config.js';
27import { Disposer } from '../utils/disposer.js'; 27import { Disposer } from '../utils/disposer';
28import { getLogger } from '../utils/logging.js'; 28import { getLogger } from '../utils/logging';
29 29
30const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); 30const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s');
31 31
diff --git a/packages/main/src/controllers/nativeTheme.ts b/packages/main/src/controllers/nativeTheme.ts
index c291a16..ccd12d8 100644
--- a/packages/main/src/controllers/nativeTheme.ts
+++ b/packages/main/src/controllers/nativeTheme.ts
@@ -22,8 +22,8 @@ import { nativeTheme } from 'electron';
22import { autorun } from 'mobx'; 22import { autorun } from 'mobx';
23 23
24import type { MainStore } from '../stores/MainStore.js'; 24import type { MainStore } from '../stores/MainStore.js';
25import { Disposer } from '../utils/disposer.js'; 25import { Disposer } from '../utils/disposer';
26import { getLogger } from '../utils/logging.js'; 26import { getLogger } from '../utils/logging';
27 27
28const log = getLogger('nativeTheme'); 28const log = getLogger('nativeTheme');
29 29
diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts
index 2bdefb8..d0191b7 100644
--- a/packages/main/src/index.ts
+++ b/packages/main/src/index.ts
@@ -43,13 +43,13 @@ import {
43} from '@sophie/shared'; 43} from '@sophie/shared';
44import { URL } from 'url'; 44import { URL } from 'url';
45 45
46import { init } from './compositionRoot.js'; 46import { init } from './compositionRoot';
47import { 47import {
48 DEVMODE_ALLOWED_URL_PREFIXES, 48 DEVMODE_ALLOWED_URL_PREFIXES,
49 installDevToolsExtensions, 49 installDevToolsExtensions,
50 openDevToolsWhenReady, 50 openDevToolsWhenReady,
51} from './devTools.js'; 51} from './devTools';
52import { createMainStore } from './stores/MainStore.js'; 52import { createMainStore } from './stores/MainStore';
53 53
54const isDevelopment = import.meta.env.MODE === 'development'; 54const isDevelopment = import.meta.env.MODE === 'development';
55 55
diff --git a/packages/main/src/services/ConfigPersistenceService.ts b/packages/main/src/services/ConfigPersistenceService.ts
index 0033cca..aed0ba3 100644
--- a/packages/main/src/services/ConfigPersistenceService.ts
+++ b/packages/main/src/services/ConfigPersistenceService.ts
@@ -18,8 +18,8 @@
18 * SPDX-License-Identifier: AGPL-3.0-only 18 * SPDX-License-Identifier: AGPL-3.0-only
19 */ 19 */
20 20
21import type { ConfigSnapshotOut } from '../stores/Config.js'; 21import type { ConfigSnapshotOut } from '../stores/Config';
22import { Disposer } from '../utils/disposer.js'; 22import { Disposer } from '../utils/disposer';
23 23
24export type ReadConfigResult = { found: true; data: unknown; } | { found: false; }; 24export type ReadConfigResult = { found: true; data: unknown; } | { found: false; };
25 25
diff --git a/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts b/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts
index eba291c..2d19632 100644
--- a/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts
+++ b/packages/main/src/services/impl/ConfigPersistenceServiceImpl.ts
@@ -1,4 +1,3 @@
1
2/* 1/*
3 * Copyright (C) 2021-2022 Kristóf Marussy <kristof@marussy.com> 2 * Copyright (C) 2021-2022 Kristóf Marussy <kristof@marussy.com>
4 * 3 *
@@ -26,8 +25,8 @@ import { join } from 'path';
26 25
27import type { ConfigPersistenceService, ReadConfigResult } from '../ConfigPersistenceService.js'; 26import type { ConfigPersistenceService, ReadConfigResult } from '../ConfigPersistenceService.js';
28import type { ConfigSnapshotOut } from '../../stores/Config.js'; 27import type { ConfigSnapshotOut } from '../../stores/Config.js';
29import { Disposer } from '../../utils/disposer.js'; 28import { Disposer } from '../../utils/disposer';
30import { getLogger } from '../../utils/logging.js'; 29import { getLogger } from '../../utils/logging';
31 30
32const log = getLogger('configPersistence'); 31const log = getLogger('configPersistence');
33 32
diff --git a/packages/main/src/stores/MainStore.ts b/packages/main/src/stores/MainStore.ts
index 9368b4d..f8a09d6 100644
--- a/packages/main/src/stores/MainStore.ts
+++ b/packages/main/src/stores/MainStore.ts
@@ -22,7 +22,7 @@ import { applySnapshot, Instance, types } from 'mobx-state-tree';
22import { BrowserViewBounds } from '@sophie/shared'; 22import { BrowserViewBounds } from '@sophie/shared';
23 23
24import type { Config } from './Config.js'; 24import type { Config } from './Config.js';
25import { sharedStore } from './SharedStore.js'; 25import { sharedStore } from './SharedStore';
26 26
27export const mainStore = types.model('MainStore', { 27export const mainStore = types.model('MainStore', {
28 browserViewBounds: types.optional(types.model('BrowserViewBounds', { 28 browserViewBounds: types.optional(types.model('BrowserViewBounds', {
diff --git a/packages/main/src/stores/SharedStore.ts b/packages/main/src/stores/SharedStore.ts
index 31b8551..e20150d 100644
--- a/packages/main/src/stores/SharedStore.ts
+++ b/packages/main/src/stores/SharedStore.ts
@@ -21,7 +21,7 @@
21import { Instance, types } from 'mobx-state-tree'; 21import { Instance, types } from 'mobx-state-tree';
22import { sharedStore as originalSharedStore } from '@sophie/shared'; 22import { sharedStore as originalSharedStore } from '@sophie/shared';
23 23
24import { config } from './Config.js'; 24import { config } from './Config';
25 25
26export type { SharedStoreSnapshotIn, SharedStoreSnapshotOut } from '@sophie/shared'; 26export type { SharedStoreSnapshotIn, SharedStoreSnapshotOut } from '@sophie/shared';
27 27
diff --git a/packages/preload/package.json b/packages/preload/package.json
index 253b858..0957aaf 100644
--- a/packages/preload/package.json
+++ b/packages/preload/package.json
@@ -11,10 +11,12 @@
11 "dependencies": { 11 "dependencies": {
12 "@sophie/shared": "workspace:*", 12 "@sophie/shared": "workspace:*",
13 "electron": "16.0.6", 13 "electron": "16.0.6",
14 "loglevel": "^1.8.0",
14 "mobx": "^6.3.12", 15 "mobx": "^6.3.12",
15 "mobx-state-tree": "^5.1.0" 16 "mobx-state-tree": "^5.1.0"
16 }, 17 },
17 "devDependencies": { 18 "devDependencies": {
19 "@jest/globals": "^27.4.4",
18 "@types/jest": "^27.4.0", 20 "@types/jest": "^27.4.0",
19 "jest": "^27.4.7", 21 "jest": "^27.4.7",
20 "jest-mock": "^27.4.6", 22 "jest-mock": "^27.4.6",
diff --git a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts
index f8b0024..ff77a63 100644
--- a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts
+++ b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts
@@ -40,7 +40,7 @@ jest.unstable_mockModule('electron', () => ({
40 40
41const { ipcRenderer } = await import('electron'); 41const { ipcRenderer } = await import('electron');
42 42
43const { createSophieRenderer } = await import('../SophieRendererImpl.js'); 43const { createSophieRenderer } = await import('../SophieRendererImpl');
44 44
45const event: Electron.IpcRendererEvent = null as unknown as Electron.IpcRendererEvent; 45const event: Electron.IpcRendererEvent = null as unknown as Electron.IpcRendererEvent;
46 46
@@ -83,9 +83,11 @@ describe('createSophieRenderer', () => {
83 83
84describe('SophieRendererImpl', () => { 84describe('SophieRendererImpl', () => {
85 let sut: SophieRenderer; 85 let sut: SophieRenderer;
86 let onSharedStorePatch: (event: Electron.IpcRendererEvent, patch: unknown) => void; 86 let onSharedStorePatch: (event1: Electron.IpcRendererEvent, patch1: unknown) => void;
87 let listener = { 87 let listener = {
88 // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
88 onSnapshot: jest.fn((_snapshot: SharedStoreSnapshotIn) => {}), 89 onSnapshot: jest.fn((_snapshot: SharedStoreSnapshotIn) => {}),
90 // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
89 onPatch: jest.fn((_patch: IJsonPatch) => {}), 91 onPatch: jest.fn((_patch: IJsonPatch) => {}),
90 }; 92 };
91 93
@@ -233,7 +235,9 @@ describe('SophieRendererImpl', () => {
233 shouldUseDarkColors: false, 235 shouldUseDarkColors: false,
234 }; 236 };
235 const listener2 = { 237 const listener2 = {
238 // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
236 onSnapshot: jest.fn((_snapshot: SharedStoreSnapshotIn) => { }), 239 onSnapshot: jest.fn((_snapshot: SharedStoreSnapshotIn) => { }),
240 // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
237 onPatch: jest.fn((_patch: IJsonPatch) => { }), 241 onPatch: jest.fn((_patch: IJsonPatch) => { }),
238 }; 242 };
239 243
diff --git a/packages/preload/src/index.ts b/packages/preload/src/index.ts
index f6c720a..de91742 100644
--- a/packages/preload/src/index.ts
+++ b/packages/preload/src/index.ts
@@ -20,7 +20,7 @@
20 20
21import { contextBridge } from 'electron'; 21import { contextBridge } from 'electron';
22 22
23import { createSophieRenderer } from './contextBridge/SophieRendererImpl.js'; 23import { createSophieRenderer } from './contextBridge/SophieRendererImpl';
24 24
25const isDevelopment = import.meta.env.MODE === 'development'; 25const isDevelopment = import.meta.env.MODE === 'development';
26 26
diff --git a/packages/renderer/.eslintrc.json b/packages/renderer/.eslintrc.json
new file mode 100644
index 0000000..a28aec9
--- /dev/null
+++ b/packages/renderer/.eslintrc.json
@@ -0,0 +1,5 @@
1{
2 "globals": {
3 "JSX": false
4 }
5}
diff --git a/packages/renderer/src/components/App.tsx b/packages/renderer/src/components/App.tsx
index b0a069f..8bd3dd8 100644
--- a/packages/renderer/src/components/App.tsx
+++ b/packages/renderer/src/components/App.tsx
@@ -21,8 +21,8 @@
21import Box from '@mui/material/Box'; 21import Box from '@mui/material/Box';
22import React from 'react'; 22import React from 'react';
23 23
24import { BrowserViewPlaceholder } from './BrowserViewPlaceholder.jsx'; 24import { BrowserViewPlaceholder } from './BrowserViewPlaceholder';
25import { Sidebar } from './Sidebar.jsx'; 25import { Sidebar } from './Sidebar';
26 26
27export function App(): JSX.Element { 27export function App(): JSX.Element {
28 return ( 28 return (
diff --git a/packages/renderer/src/components/BrowserViewPlaceholder.tsx b/packages/renderer/src/components/BrowserViewPlaceholder.tsx
index 6827422..6aa6b7b 100644
--- a/packages/renderer/src/components/BrowserViewPlaceholder.tsx
+++ b/packages/renderer/src/components/BrowserViewPlaceholder.tsx
@@ -23,7 +23,7 @@ import { observer } from 'mobx-react-lite';
23import Box from '@mui/material/Box'; 23import Box from '@mui/material/Box';
24import React, { useCallback, useRef } from 'react'; 24import React, { useCallback, useRef } from 'react';
25 25
26import { useStore } from './StoreProvider.jsx'; 26import { useStore } from './StoreProvider';
27 27
28export const BrowserViewPlaceholder = observer(function BrowserViewPlaceholder() { 28export const BrowserViewPlaceholder = observer(function BrowserViewPlaceholder() {
29 const { 29 const {
diff --git a/packages/renderer/src/components/Sidebar.tsx b/packages/renderer/src/components/Sidebar.tsx
index a0086d2..6c79932 100644
--- a/packages/renderer/src/components/Sidebar.tsx
+++ b/packages/renderer/src/components/Sidebar.tsx
@@ -21,7 +21,7 @@
21import Box from '@mui/material/Box'; 21import Box from '@mui/material/Box';
22import React from 'react'; 22import React from 'react';
23 23
24import { ToggleDarkModeButton } from './ToggleDarkModeButton.jsx'; 24import { ToggleDarkModeButton } from './ToggleDarkModeButton';
25 25
26export function Sidebar(): JSX.Element { 26export function Sidebar(): JSX.Element {
27 return ( 27 return (
diff --git a/packages/renderer/src/components/StoreProvider.tsx b/packages/renderer/src/components/StoreProvider.tsx
index fbe9b2a..da1e699 100644
--- a/packages/renderer/src/components/StoreProvider.tsx
+++ b/packages/renderer/src/components/StoreProvider.tsx
@@ -20,7 +20,7 @@
20 20
21import React, { createContext, useContext } from 'react'; 21import React, { createContext, useContext } from 'react';
22 22
23import type { RendererStore } from '../stores/RendererStore.jsx'; 23import type { RendererStore } from '../stores/RendererStore';
24 24
25const StoreContext = createContext<RendererStore | null>(null); 25const StoreContext = createContext<RendererStore | null>(null);
26 26
diff --git a/packages/renderer/src/components/ThemeProvider.tsx b/packages/renderer/src/components/ThemeProvider.tsx
index 9313725..9215f5c 100644
--- a/packages/renderer/src/components/ThemeProvider.tsx
+++ b/packages/renderer/src/components/ThemeProvider.tsx
@@ -25,7 +25,7 @@ import {
25} from '@mui/material/styles'; 25} from '@mui/material/styles';
26import React from 'react'; 26import React from 'react';
27 27
28import { useStore } from './StoreProvider.jsx'; 28import { useStore } from './StoreProvider';
29 29
30export const ThemeProvider = observer(function ThemeProvider({ children }: { 30export const ThemeProvider = observer(function ThemeProvider({ children }: {
31 children: JSX.Element | JSX.Element[], 31 children: JSX.Element | JSX.Element[],
diff --git a/packages/renderer/src/components/ToggleDarkModeButton.tsx b/packages/renderer/src/components/ToggleDarkModeButton.tsx
index b48cc32..1b6757e 100644
--- a/packages/renderer/src/components/ToggleDarkModeButton.tsx
+++ b/packages/renderer/src/components/ToggleDarkModeButton.tsx
@@ -24,7 +24,7 @@ import LightModeIcon from '@mui/icons-material/LightMode';
24import IconButton from '@mui/material/IconButton'; 24import IconButton from '@mui/material/IconButton';
25import React from 'react'; 25import React from 'react';
26 26
27import { useStore } from './StoreProvider.jsx'; 27import { useStore } from './StoreProvider';
28 28
29export const ToggleDarkModeButton = observer(function ToggleDarkModeButton() { 29export const ToggleDarkModeButton = observer(function ToggleDarkModeButton() {
30 const { shared: { shouldUseDarkColors }, toggleDarkMode } = useStore(); 30 const { shared: { shouldUseDarkColors }, toggleDarkMode } = useStore();
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 8bd70d3..1626bef 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -26,11 +26,11 @@ import CssBaseline from '@mui/material/CssBaseline';
26import React from 'react'; 26import React from 'react';
27import { render } from 'react-dom'; 27import { render } from 'react-dom';
28 28
29import { App } from './components/App.jsx'; 29import { App } from './components/App';
30import { StoreProvider } from './components/StoreProvider.jsx'; 30import { StoreProvider } from './components/StoreProvider';
31import { ThemeProvider } from './components/ThemeProvider.jsx'; 31import { ThemeProvider } from './components/ThemeProvider';
32import { exposeToReduxDevtools, hotReloadServices } from './devTools.js'; 32import { exposeToReduxDevtools, hotReloadServices } from './devTools';
33import { createAndConnectRendererStore } from './stores/RendererStore.js'; 33import { createAndConnectRendererStore } from './stores/RendererStore';
34 34
35const isDevelopment = import.meta.env.MODE === 'development'; 35const isDevelopment = import.meta.env.MODE === 'development';
36 36
diff --git a/packages/renderer/src/stores/RendererStore.ts b/packages/renderer/src/stores/RendererStore.ts
index 397c024..037b212 100644
--- a/packages/renderer/src/stores/RendererStore.ts
+++ b/packages/renderer/src/stores/RendererStore.ts
@@ -31,7 +31,7 @@ import {
31 ThemeSource, 31 ThemeSource,
32} from '@sophie/shared'; 32} from '@sophie/shared';
33 33
34import { getEnv, RendererEnv } from './RendererEnv.js'; 34import { getEnv, RendererEnv } from './RendererEnv';
35 35
36export const rendererStore = types.model('RendererStore', { 36export const rendererStore = types.model('RendererStore', {
37 shared: types.optional(sharedStore, {}), 37 shared: types.optional(sharedStore, {}),
diff --git a/packages/renderer/vite.config.js b/packages/renderer/vite.config.js
index 80e9fb6..bcd1975 100644
--- a/packages/renderer/vite.config.js
+++ b/packages/renderer/vite.config.js
@@ -1,3 +1,4 @@
1/* eslint-disable no-process-env */
1/* eslint-env node */ 2/* eslint-env node */
2 3
3import { builtinModules } from 'module'; 4import { builtinModules } from 'module';
diff --git a/packages/service-shared/src/index.ts b/packages/service-shared/src/index.ts
index d8b5d0e..564ebe8 100644
--- a/packages/service-shared/src/index.ts
+++ b/packages/service-shared/src/index.ts
@@ -18,13 +18,13 @@
18 * SPDX-License-Identifier: AGPL-3.0-only 18 * SPDX-License-Identifier: AGPL-3.0-only
19 */ 19 */
20 20
21export { ServiceToMainIpcMessage } from './ipc.js'; 21export { ServiceToMainIpcMessage } from './ipc';
22 22
23export type { 23export type {
24 UnreadCount, 24 UnreadCount,
25 WebSource, 25 WebSource,
26} from './schemas.js'; 26} from './schemas';
27export { 27export {
28 unreadCount, 28 unreadCount,
29 webSource, 29 webSource,
30} from './schemas.js'; 30} from './schemas';
diff --git a/packages/shared/src/contextBridge/SophieRenderer.ts b/packages/shared/src/contextBridge/SophieRenderer.ts
index 285b373..fc43b6e 100644
--- a/packages/shared/src/contextBridge/SophieRenderer.ts
+++ b/packages/shared/src/contextBridge/SophieRenderer.ts
@@ -20,7 +20,7 @@
20 20
21import { SharedStoreListener } from '../stores/SharedStore'; 21import { SharedStoreListener } from '../stores/SharedStore';
22 22
23import { Action } from '../schemas.js'; 23import { Action } from '../schemas';
24 24
25export interface SophieRenderer { 25export interface SophieRenderer {
26 onSharedStoreChange(listener: SharedStoreListener): Promise<void>; 26 onSharedStoreChange(listener: SharedStoreListener): Promise<void>;
diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts
index f0ae5dc..2f7146c 100644
--- a/packages/shared/src/index.ts
+++ b/packages/shared/src/index.ts
@@ -23,26 +23,26 @@ export type { SophieRenderer } from './contextBridge/SophieRenderer';
23export { 23export {
24 MainToRendererIpcMessage, 24 MainToRendererIpcMessage,
25 RendererToMainIpcMessage, 25 RendererToMainIpcMessage,
26} from './ipc.js'; 26} from './ipc';
27 27
28export type { 28export type {
29 Action, 29 Action,
30 BrowserViewBounds, 30 BrowserViewBounds,
31 ThemeSource, 31 ThemeSource,
32} from './schemas.js'; 32} from './schemas';
33export { 33export {
34 action, 34 action,
35 browserViewBounds, 35 browserViewBounds,
36 themeSource, 36 themeSource,
37} from './schemas.js'; 37} from './schemas';
38 38
39export type { Config, ConfigSnapshotIn, ConfigSnapshotOut } from './stores/Config.js'; 39export type { Config, ConfigSnapshotIn, ConfigSnapshotOut } from './stores/Config';
40export { config } from './stores/Config.js'; 40export { config } from './stores/Config';
41 41
42export type { 42export type {
43 SharedStore, 43 SharedStore,
44 SharedStoreListener, 44 SharedStoreListener,
45 SharedStoreSnapshotIn, 45 SharedStoreSnapshotIn,
46 SharedStoreSnapshotOut, 46 SharedStoreSnapshotOut,
47} from './stores/SharedStore.js'; 47} from './stores/SharedStore';
48export { sharedStore } from './stores/SharedStore.js'; 48export { sharedStore } from './stores/SharedStore';
diff --git a/packages/shared/src/stores/Config.ts b/packages/shared/src/stores/Config.ts
index 4b17d3c..432945c 100644
--- a/packages/shared/src/stores/Config.ts
+++ b/packages/shared/src/stores/Config.ts
@@ -25,7 +25,7 @@ import {
25 SnapshotOut, 25 SnapshotOut,
26} from 'mobx-state-tree'; 26} from 'mobx-state-tree';
27 27
28import { themeSource } from '../schemas.js'; 28import { themeSource } from '../schemas';
29 29
30export const config = types.model('Config', { 30export const config = types.model('Config', {
31 themeSource: types.optional(types.enumeration(themeSource.options), 'system'), 31 themeSource: types.optional(types.enumeration(themeSource.options), 'system'),
diff --git a/packages/shared/src/stores/SharedStore.ts b/packages/shared/src/stores/SharedStore.ts
index 8aefcdb..c6c3ddc 100644
--- a/packages/shared/src/stores/SharedStore.ts
+++ b/packages/shared/src/stores/SharedStore.ts
@@ -26,7 +26,7 @@ import {
26 SnapshotOut, 26 SnapshotOut,
27} from 'mobx-state-tree'; 27} from 'mobx-state-tree';
28 28
29import { config } from './Config.js'; 29import { config } from './Config';
30 30
31export const sharedStore = types.model('SharedStore', { 31export const sharedStore = types.model('SharedStore', {
32 config: types.optional(config, {}), 32 config: types.optional(config, {}),