mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2025-12-05 18:20:39 -08:00
chore: upgrade deps
This commit is contained in:
parent
0bef181d59
commit
50b0ba875b
11 changed files with 1975 additions and 1464 deletions
2
.nvmrc
2
.nvmrc
|
|
@ -1 +1 @@
|
|||
v20
|
||||
v22
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
||||
const packageJson = require('./package.json');
|
||||
const beforeAsar = require('./scripts/beforeAsar');
|
||||
const beforeAsar = require('./scripts/beforeAsar').default;
|
||||
const afterPack = require('./scripts/afterPack').default;
|
||||
|
||||
const { version, description } = packageJson;
|
||||
const { description } = packageJson;
|
||||
|
||||
const config = {
|
||||
packagerConfig: {
|
||||
|
|
@ -30,8 +31,8 @@ const config = {
|
|||
electronLanguages: ['zh_CN', 'en', 'ja'],
|
||||
},
|
||||
appBundleId: 'com.tidgi',
|
||||
afterPrune: ['scripts/afterPack.js'],
|
||||
beforeAsar: [beforeAsar.default],
|
||||
afterPrune: [afterPack],
|
||||
beforeAsar: [beforeAsar],
|
||||
},
|
||||
makers: [
|
||||
{
|
||||
|
|
@ -52,7 +53,6 @@ const config = {
|
|||
config: (arch) => {
|
||||
return {
|
||||
artifactName: `Portable-TidGi-Windows-${arch}.exe`,
|
||||
installerIcon: 'build-resources/icon-installer.ico',
|
||||
};
|
||||
},
|
||||
},
|
||||
|
|
|
|||
102
package.json
102
package.json
|
|
@ -41,80 +41,82 @@
|
|||
"electron-dl": "^4.0.0",
|
||||
"electron-ipc-cat": "2.0.1",
|
||||
"electron-settings": "5.0.0",
|
||||
"electron-squirrel-startup": "1.0.1",
|
||||
"electron-unhandled": "4.0.1",
|
||||
"electron-window-state": "5.0.3",
|
||||
"espree": "^10.1.0",
|
||||
"espree": "^10.3.0",
|
||||
"exponential-backoff": "^3.1.1",
|
||||
"fs-extra": "11.2.0",
|
||||
"git-sync-js": "^2.0.5",
|
||||
"i18next": "23.11.5",
|
||||
"i18next": "24.0.0",
|
||||
"i18next-electron-fs-backend": "3.0.2",
|
||||
"i18next-fs-backend": "2.3.1",
|
||||
"i18next-fs-backend": "2.6.0",
|
||||
"intercept-stdout": "0.1.2",
|
||||
"inversify": "6.0.2",
|
||||
"inversify": "6.1.4",
|
||||
"inversify-inject-decorators": "3.1.0",
|
||||
"ipaddr.js": "2.2.0",
|
||||
"jimp": "0.22.12",
|
||||
"jimp": "1.6.0",
|
||||
"lodash": "4.17.21",
|
||||
"menubar": "9.5.0",
|
||||
"nanoid": "^5.0.7",
|
||||
"menubar": "9.5.1",
|
||||
"nanoid": "^5.0.8",
|
||||
"new-github-issue-url": "^1.0.0",
|
||||
"node-fetch": "3.3.2",
|
||||
"reflect-metadata": "0.2.2",
|
||||
"registry-js": "1.16.0",
|
||||
"rotating-file-stream": "^3.2.3",
|
||||
"rotating-file-stream": "^3.2.5",
|
||||
"rxjs": "7.8.1",
|
||||
"semver": "7.6.2",
|
||||
"semver": "7.6.3",
|
||||
"source-map-support": "0.5.21",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"threads": "1.7.0",
|
||||
"type-fest": "4.20.1",
|
||||
"type-fest": "4.27.1",
|
||||
"typescript-styled-is": "^2.1.0",
|
||||
"v8-compile-cache-lib": "^3.0.1",
|
||||
"winston": "3.13.0",
|
||||
"winston": "3.17.0",
|
||||
"winston-daily-rotate-file": "5.0.0",
|
||||
"winston-transport": "4.7.0",
|
||||
"wouter": "^3.3.0",
|
||||
"zx": "8.1.3"
|
||||
"winston-transport": "4.9.0",
|
||||
"wouter": "^3.3.5",
|
||||
"zx": "8.2.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@electron-forge/maker-deb": "7.4.0",
|
||||
"@electron-forge/maker-flatpak": "7.4.0",
|
||||
"@electron-forge/maker-rpm": "7.4.0",
|
||||
"@electron-forge/maker-snap": "7.4.0",
|
||||
"@electron-forge/maker-squirrel": "7.4.0",
|
||||
"@electron-forge/maker-zip": "7.4.0"
|
||||
|
||||
"@electron-forge/maker-deb": "7.5.0",
|
||||
"@electron-forge/maker-flatpak": "7.5.0",
|
||||
"@electron-forge/maker-rpm": "7.5.0",
|
||||
"@electron-forge/maker-snap": "7.5.0",
|
||||
"@electron-forge/maker-squirrel": "7.5.0",
|
||||
"@electron-forge/maker-zip": "7.5.0",
|
||||
"@rabbitholesyndrome/electron-forge-maker-portable": "^0.2.0",
|
||||
|
||||
"electron-squirrel-startup": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cucumber/cucumber": "10.8.0",
|
||||
"@dnd-kit/core": "6.1.0",
|
||||
"@dnd-kit/modifiers": "7.0.0",
|
||||
"@dnd-kit/sortable": "8.0.0",
|
||||
"@cucumber/cucumber": "11.1.0",
|
||||
"@dnd-kit/core": "6.2.0",
|
||||
"@dnd-kit/modifiers": "8.0.0",
|
||||
"@dnd-kit/sortable": "9.0.0",
|
||||
"@dnd-kit/utilities": "3.2.2",
|
||||
"@electron-forge/cli": "7.4.0",
|
||||
"@electron-forge/plugin-auto-unpack-natives": "7.4.0",
|
||||
"@electron-forge/plugin-webpack": "7.4.0",
|
||||
"@electron/rebuild": "^3.6.0",
|
||||
"@fontsource/roboto": "^5.0.13",
|
||||
"@electron-forge/cli": "7.5.0",
|
||||
"@electron-forge/plugin-auto-unpack-natives": "7.5.0",
|
||||
"@electron-forge/plugin-webpack": "7.5.0",
|
||||
"@electron/rebuild": "^3.7.1",
|
||||
"@fontsource/roboto": "^5.1.0",
|
||||
"@mui/icons-material": "^5.15.21",
|
||||
"@mui/lab": "5.0.0-alpha.170",
|
||||
"@mui/material": "^5.15.21",
|
||||
"@mui/styled-engine-sc": "6.0.0-alpha.18",
|
||||
"@mui/styles": "^5.15.21",
|
||||
"@mui/x-date-pickers": "^7.8.0",
|
||||
"@rabbitholesyndrome/electron-forge-maker-portable": "^0.2.0",
|
||||
"@reforged/maker-appimage": "^4.0.2",
|
||||
"@types/bluebird": "3.5.42",
|
||||
"@types/chai": "4.3.16",
|
||||
"@types/chai": "5.0.1",
|
||||
"@types/circular-dependency-plugin": "5.0.8",
|
||||
"@types/fs-extra": "11.0.4",
|
||||
"@types/i18next-fs-backend": "1.1.5",
|
||||
"@types/intercept-stdout": "0.1.3",
|
||||
"@types/lodash": "4.17.6",
|
||||
"@types/node": "20.14.9",
|
||||
"@types/react": "18.3.3",
|
||||
"@types/react-dom": "18.3.0",
|
||||
"@types/lodash": "4.17.13",
|
||||
"@types/node": "22.9.3",
|
||||
"@types/react": "18.3.12",
|
||||
"@types/react-dom": "18.3.1",
|
||||
"@types/react-helmet": "6.1.11",
|
||||
"@types/semver": "7.5.8",
|
||||
"@types/source-map-support": "0.5.10",
|
||||
|
|
@ -123,42 +125,42 @@
|
|||
"@types/webpack-node-externals": "3.0.4",
|
||||
"@vercel/webpack-asset-relocator-loader": "1.7.3",
|
||||
"beautiful-react-hooks": "5.0.2",
|
||||
"chai": "5.1.1",
|
||||
"chai": "5.1.2",
|
||||
"circular-dependency-plugin": "5.2.2",
|
||||
"copy-webpack-plugin": "12.0.2",
|
||||
"cross-env": "7.0.3",
|
||||
"css-loader": "6.10.0",
|
||||
"css-loader": "6.11.0",
|
||||
"date-fns": "3.6.0",
|
||||
"dprint": "^0.46.3",
|
||||
"electron": "31.1.0",
|
||||
"esbuild": "^0.21.5",
|
||||
"esbuild-loader": "^4.2.0",
|
||||
"dprint": "^0.47.5",
|
||||
"electron": "33.2.0",
|
||||
"esbuild": "^0.24.0",
|
||||
"esbuild-loader": "^4.2.2",
|
||||
"eslint-config-tidgi": "1.2.3",
|
||||
"fork-ts-checker-webpack-plugin": "9.0.2",
|
||||
"graphql-hooks": "8.0.1",
|
||||
"json5": "^2.2.3",
|
||||
"node-loader": "2.0.0",
|
||||
"node-loader": "2.1.0",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
"react-helmet": "6.1.0",
|
||||
"react-i18next": "14.1.2",
|
||||
"rimraf": "^5.0.7",
|
||||
"react-i18next": "15.1.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"simplebar": "6.2.7",
|
||||
"simplebar-react": "3.2.6",
|
||||
"style-loader": "4.0.0",
|
||||
"styled-components": "6.1.11",
|
||||
"styled-components": "6.1.13",
|
||||
"threads-plugin": "1.4.0",
|
||||
"ts-import-plugin": "3.0.0",
|
||||
"ts-loader": "9.5.1",
|
||||
"ts-node": "10.9.2",
|
||||
"tw5-typed": "^0.5.11",
|
||||
"typescript": "5.5.2",
|
||||
"tw5-typed": "^0.5.14",
|
||||
"typescript": "5.7.2",
|
||||
"typescript-plugin-styled-components": "3.0.0",
|
||||
"typesync": "0.12.1",
|
||||
"typesync": "0.13.4",
|
||||
"webpack-bundle-analyzer": "4.10.2",
|
||||
"webpack-node-externals": "3.0.0",
|
||||
"webpack5-externals-plugin": "1.0.4",
|
||||
"webpackbar": "6.0.1"
|
||||
"webpackbar": "7.0.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
|
|
|
|||
3283
pnpm-lock.yaml
generated
3283
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
5
src/services/libs/isBrowserWindow.ts
Normal file
5
src/services/libs/isBrowserWindow.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { BaseWindow, BrowserWindow } from 'electron';
|
||||
|
||||
export function isBrowserWindow(win: BaseWindow | undefined): win is BrowserWindow {
|
||||
return win !== undefined && 'webContents' in win;
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ import { lazyInject } from '@services/container';
|
|||
import getFromRenderer from '@services/libs/getFromRenderer';
|
||||
import getViewBounds from '@services/libs/getViewBounds';
|
||||
import { i18n } from '@services/libs/i18n';
|
||||
import { isBrowserWindow } from '@services/libs/isBrowserWindow';
|
||||
import { logger } from '@services/libs/log';
|
||||
import { INativeService } from '@services/native/interface';
|
||||
import { IBrowserViewMetaData, WindowNames } from '@services/windows/WindowProperties';
|
||||
|
|
@ -111,7 +112,7 @@ export class View implements IViewService {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if back is called in popup window
|
||||
// open menu bar in the popup window instead
|
||||
if (browserWindow === undefined) return;
|
||||
if (!isBrowserWindow(browserWindow)) return;
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
browserWindow.setMenuBarVisibility(!browserWindow.isMenuBarVisible());
|
||||
|
|
@ -129,7 +130,7 @@ export class View implements IViewService {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if item is called in popup window
|
||||
// modify menu bar in the popup window instead
|
||||
if (browserWindow === undefined) return;
|
||||
if (!isBrowserWindow(browserWindow)) return;
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
const contents = browserWindow.webContents;
|
||||
|
|
@ -149,7 +150,7 @@ export class View implements IViewService {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if item is called in popup window
|
||||
// modify menu bar in the popup window instead
|
||||
if (browserWindow === undefined) return;
|
||||
if (!isBrowserWindow(browserWindow)) return;
|
||||
// TODO: on popup (secondary) window, browserWindow here seems can't get the correct webContent, so this never returns. And can't set zoom of popup.
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
|
|
@ -169,7 +170,7 @@ export class View implements IViewService {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if item is called in popup window
|
||||
// modify menu bar in the popup window instead
|
||||
if (browserWindow === undefined) return;
|
||||
if (!isBrowserWindow(browserWindow)) return;
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
const contents = browserWindow.webContents;
|
||||
|
|
@ -189,7 +190,7 @@ export class View implements IViewService {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if item is called in popup window
|
||||
// modify menu bar in the popup window instead
|
||||
if (browserWindow === undefined) return;
|
||||
if (!isBrowserWindow(browserWindow)) return;
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
browserWindow.webContents.reload();
|
||||
|
|
|
|||
|
|
@ -52,8 +52,7 @@ export class WikiGitWorkspace implements IWikiGitWorkspaceService {
|
|||
private readonly syncService!: ISyncService;
|
||||
|
||||
public registerSyncBeforeShutdown(): void {
|
||||
const listener = async (event: Event): Promise<void> => {
|
||||
event.preventDefault();
|
||||
const listener = async (): Promise<void> => {
|
||||
try {
|
||||
if (await this.contextService.isOnline()) {
|
||||
const workspaces = await this.workspaceService.getWorkspacesAsList();
|
||||
|
|
@ -75,6 +74,7 @@ export class WikiGitWorkspace implements IWikiGitWorkspaceService {
|
|||
app.quit();
|
||||
}
|
||||
};
|
||||
// only on linux,darwin, and can't prevent default
|
||||
powerMonitor.addListener('shutdown', listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { logger } from '@services/libs/log';
|
|||
import { IMenuService } from '@services/menu/interface';
|
||||
import serviceIdentifier from '@services/serviceIdentifier';
|
||||
import { IViewService } from '@services/view/interface';
|
||||
import { BrowserWindow, BrowserWindowConstructorOptions, Menu, nativeImage, Tray } from 'electron';
|
||||
import { BrowserWindowConstructorOptions, Menu, nativeImage, Tray } from 'electron';
|
||||
import windowStateKeeper from 'electron-window-state';
|
||||
import { debounce, merge as mergeDeep } from 'lodash';
|
||||
import { Menubar, menubar } from 'menubar';
|
||||
|
|
@ -88,8 +88,10 @@ export async function handleAttachToMenuBar(windowConfig: BrowserWindowConstruct
|
|||
|
||||
// manually save window state https://github.com/mawie81/electron-window-state/issues/64
|
||||
const debouncedSaveWindowState = debounce(
|
||||
(event: { sender: BrowserWindow }) => {
|
||||
windowWithBrowserViewState?.saveState(event.sender);
|
||||
() => {
|
||||
if (menuBar.window !== undefined) {
|
||||
windowWithBrowserViewState?.saveState(menuBar.window);
|
||||
}
|
||||
},
|
||||
500,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import { app } from 'electron';
|
||||
import fsExtra from 'fs-extra';
|
||||
import { injectable } from 'inversify';
|
||||
import Jimp from 'jimp';
|
||||
import { Jimp } from 'jimp';
|
||||
import { mapValues, pickBy } from 'lodash';
|
||||
import { nanoid } from 'nanoid';
|
||||
import path from 'path';
|
||||
|
|
@ -363,12 +363,10 @@ export class Workspace implements IWorkspaceService {
|
|||
return;
|
||||
}
|
||||
|
||||
const destinationPicturePath = path.join(app.getPath('userData'), 'pictures', `${pictureID}.png`);
|
||||
const destinationPicturePath = path.join(app.getPath('userData'), 'pictures', `${pictureID}.png`) as `${string}.${string}`;
|
||||
|
||||
const newImage = await Jimp.read(sourcePicturePath);
|
||||
await new Promise((resolve) => {
|
||||
newImage.clone().resize(128, 128).quality(100).write(destinationPicturePath, resolve);
|
||||
});
|
||||
await newImage.clone().resize({ w: 128, h: 128 }).write(destinationPicturePath);
|
||||
const currentPicturePath = this.getSync(id)?.picturePath;
|
||||
await this.update(id, {
|
||||
picturePath: destinationPicturePath,
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { isHtmlWiki, wikiHtmlExtensions } from '@/constants/fileNames';
|
|||
import { container } from '@services/container';
|
||||
import getFromRenderer from '@services/libs/getFromRenderer';
|
||||
import { i18n } from '@services/libs/i18n';
|
||||
import { isBrowserWindow } from '@services/libs/isBrowserWindow';
|
||||
import { logger } from '@services/libs/log';
|
||||
import { IMenuService } from '@services/menu/interface';
|
||||
import { INativeService } from '@services/native/interface';
|
||||
|
|
@ -104,7 +105,7 @@ export async function registerMenu(): Promise<void> {
|
|||
click: async (_menuItem, browserWindow) => {
|
||||
// if back is called in popup window
|
||||
// copy the popup window URL instead
|
||||
if (browserWindow !== undefined) {
|
||||
if (isBrowserWindow(browserWindow)) {
|
||||
const { isPopup } = await getFromRenderer<IBrowserViewMetaData>(MetaDataChannel.getViewMetaData, browserWindow);
|
||||
if (isPopup === true) {
|
||||
const url = browserWindow.webContents.getURL();
|
||||
|
|
|
|||
|
|
@ -57,7 +57,8 @@
|
|||
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
||||
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
"types": ["reflect-metadata", "tw5-typed", "webdriverio/async"] /* Type declaration files to be included in compilation. */,
|
||||
// , "webdriverio/async" for test
|
||||
"types": ["reflect-metadata", "tw5-typed"] /* Type declaration files to be included in compilation. */,
|
||||
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue