Compare commits

..

1 Commits

Author SHA1 Message Date
7d8dd5b1f6 chore(deps): update actions/checkout action to v6 2026-02-02 21:38:31 +00:00
11 changed files with 529 additions and 424 deletions

View File

@ -19,7 +19,7 @@ jobs:
os: [ macos-26, ubuntu-latest, windows-latest ]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
@ -92,7 +92,7 @@ jobs:
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repository"
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: "Dependency Review"
uses: actions/dependency-review-action@v4

View File

@ -33,7 +33,7 @@ jobs:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4

View File

@ -15,7 +15,7 @@ jobs:
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}

View File

@ -46,7 +46,7 @@
"pnpm": {
"overrides": {
"vite": "npm:rolldown-vite@7.3.1",
"node-gyp": "12.2.0",
"node-gyp": "11.5.0",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
"@electron/universal": "3.0.2",
@ -64,7 +64,7 @@
},
"dependencies": {
"@dehoist/romanize-thai": "1.0.0",
"@electron-toolkit/tsconfig": "2.0.0",
"@electron-toolkit/tsconfig": "1.0.1",
"@electron/remote": "2.1.3",
"@ffmpeg.wasm/core-mt": "0.12.0",
"@ffmpeg.wasm/main": "0.12.0",
@ -75,13 +75,13 @@
"@hono/node-server": "1.19.9",
"@hono/node-ws": "1.3.0",
"@hono/swagger-ui": "0.5.3",
"@hono/zod-openapi": "1.2.1",
"@hono/zod-openapi": "1.2.0",
"@hono/zod-validator": "0.7.6",
"@jellybrick/dbus-next": "0.10.3",
"@jellybrick/electron-better-web-request": "2.0.0",
"@jellybrick/mpris-service": "2.1.5",
"@jimp/plugin-color": "1.6.0",
"@mdui/icons": "1.0.3",
"@mdui/icons": "^1.0.3",
"@skyra/jaro-winkler": "1.1.1",
"@xhayper/discord-rpc": "1.3.0",
"async-mutex": "0.5.0",
@ -89,26 +89,27 @@
"butterchurn": "3.0.0-beta.5",
"butterchurn-presets": "3.0.0-beta.4",
"color": "5.0.3",
"conf": "15.0.2",
"conf": "14.0.0",
"custom-electron-prompt": "1.6.1",
"deepmerge-ts": "7.1.5",
"delay": "6.0.0",
"electron-debug": "4.1.0",
"electron-is": "3.0.0",
"electron-localshortcut": "3.2.1",
"electron-store": "11.0.2",
"electron-store": "10.1.0",
"electron-unhandled": "5.0.0",
"electron-updater": "6.7.3",
"es-hangul": "2.3.8",
"fast-average-color": "9.5.0",
"fast-equals": "6.0.0",
"fast-equals": "5.4.0",
"fflate": "0.8.2",
"filenamify": "7.0.1",
"filenamify": "6.0.0",
"hanja": "1.1.5",
"happy-dom": "20.5.0",
"happy-dom": "20.4.0",
"hono": "4.11.7",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "25.8.0",
"i18next": "25.5.2",
"jimp": "1.6.0",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
@ -133,14 +134,14 @@
"virtua": "0.48.5",
"vudio": "2.1.1",
"x11": "2.3.0",
"youtubei.js": "16.0.1",
"zod": "4.3.6"
"youtubei.js": "^16.0.1",
"zod": "4.2.1"
},
"devDependencies": {
"@electron-toolkit/tsconfig": "1.0.1",
"@eslint/js": "9.39.2",
"@malept/flatpak-bundler": "0.4.0",
"@playwright/test": "1.58.1",
"@playwright/test": "1.58.0",
"@stylistic/eslint-plugin": "5.7.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/electron-localshortcut": "3.1.3",
@ -151,11 +152,11 @@
"bufferutil": "4.1.0",
"builtin-modules": "5.0.0",
"cross-env": "10.1.0",
"del-cli": "7.0.0",
"discord-api-types": "0.38.38",
"del-cli": "6.0.0",
"discord-api-types": "0.38.37",
"electron": "40.1.0",
"electron-builder": "26.7.0",
"electron-builder-squirrel-windows": "26.7.0",
"electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.4.0",
"electron-devtools-installer": "4.0.0",
"electron-vite": "5.0.0",
"eslint": "9.39.2",
@ -165,11 +166,11 @@
"eslint-plugin-import": "2.32.0",
"eslint-plugin-prettier": "5.5.5",
"eslint-plugin-solid": "0.14.5",
"glob": "13.0.0",
"node-gyp": "12.2.0",
"glob": "11.1.0",
"node-gyp": "11.5.0",
"ts-morph": "27.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.54.0",
"typescript-eslint": "8.53.1",
"utf-8-validate": "6.0.6",
"vite": "npm:rolldown-vite@7.3.1",
"vite-plugin-inspect": "11.3.3",

835
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -161,8 +161,7 @@
"default": "Par défaut",
"force-show": "Forcer à apparaître",
"hide": "Cacher",
"label": "Boutons « J'aime »",
"swap": "Inverser l'order des boutons like"
"label": "Boutons « J'aime »"
},
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
"theme": {
@ -413,17 +412,6 @@
"no-captions": "Aucun sous-titres disponibles pour cette chanson"
}
},
"clock": {
"description": "Ajoute une horloge a la barre de navigation",
"menu": {
"format": {
"24-hour-format": "Format 24 heures",
"display-seconds": "Afficher les secondes",
"label": "Format"
}
},
"name": "Horloge"
},
"compact-sidebar": {
"description": "Toujours définir la barre latérale en mode compact",
"name": "Barre latérale compacte"

View File

@ -396,17 +396,6 @@
"no-captions": "Pre túto skladbu nie sú dostupné žiadne titulky"
}
},
"clock": {
"description": "Pridať hodiny do navigačnej lišty",
"menu": {
"format": {
"24-hour-format": "24-hodinový formát",
"display-seconds": "Zobraz sekundy",
"label": "Formát"
}
},
"name": "Hodiny"
},
"compact-sidebar": {
"description": "Vždy nastaviť bočný panel do kompaktného režimu",
"name": "Kompaktný bočný panel"
@ -473,8 +462,8 @@
"set-status-display-type": {
"label": "Text stavu",
"submenu": {
"application": "Počúvať {{applicationName}}",
"artist": "Aktuálne si prehráva {artist}",
"application": "Počúvať {{applicationName}}",
"title": "Aktuálne si prehráva {song title}"
}
}

View File

@ -1,9 +1,15 @@
import { type DataConnection, Peer, type PeerError } from 'peerjs';
import {
type DataConnection,
Peer,
type PeerError,
PeerErrorType,
} from 'peerjs';
import delay from 'delay';
import type { Permission, Profile, VideoData } from './types';
export type ConnectionEventMap = {
CLEAR_QUEUE: null;
CLEAR_QUEUE: {};
ADD_SONGS: { videoList: VideoData[]; index?: number };
REMOVE_SONG: { index: number };
MOVE_SONG: { fromIndex: number; toIndex: number };
@ -98,14 +104,16 @@ export class Connection {
this.peer.disconnect();
this.peer.destroy();
});
this.peer.on('error', (err) => {
if (err.type === 'network') {
setTimeout(() => {
this.peer.on('error', async (err) => {
if (err.type === PeerErrorType.Network) {
// retrying after 10 seconds
await delay(10000);
try {
this.peer.reconnect();
} catch {}
}, 10000);
return;
} catch {
//ignored
}
}
this.waitOpen.reject(err);
@ -168,9 +176,7 @@ export class Connection {
after?: ConnectionEventUnion[],
) {
await Promise.all(
this.getConnections().map(
(conn) => conn.send({ type, payload, after }) ?? Promise.resolve(),
),
this.getConnections().map((conn) => conn.send({ type, payload, after })),
);
}

View File

@ -224,7 +224,7 @@ export default createPlugin<
}
this.queue?.clear();
await this.connection?.broadcast('CLEAR_QUEUE', null);
await this.connection?.broadcast('CLEAR_QUEUE', {});
break;
}
case 'SET_INDEX': {
@ -413,7 +413,7 @@ export default createPlugin<
this.ignoreChange = true;
switch (event.type) {
case 'CLEAR_QUEUE': {
await this.connection?.broadcast('CLEAR_QUEUE', null);
await this.connection?.broadcast('CLEAR_QUEUE', {});
break;
}
case 'SET_INDEX': {

View File

@ -316,7 +316,7 @@ export class Queue {
this.ignoreFlag = true;
this.broadcast({
type: 'CLEAR_QUEUE',
payload: null,
payload: {},
});
return;
}