mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-04 14:03:27 +00:00 
			
		
		
		
	Compare commits
	
		
			9 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					b9baf140eb | ||
| 
						 | 
					727c2335f6 | ||
| 
						 | 
					e8173919f8 | ||
| 
						 | 
					cf2f4fe9c9 | ||
| 
						 | 
					47cdd5fa8b | ||
| 
						 | 
					90e76fab6e | ||
| 
						 | 
					193adb1901 | ||
| 
						 | 
					b520e12492 | ||
| 
						 | 
					ae642bc7ba | 
@@ -1,7 +1,14 @@
 | 
			
		||||
import type {Event} from "electron/common";
 | 
			
		||||
import {clipboard} from "electron/common";
 | 
			
		||||
import type {IpcMainEvent, WebContents} from "electron/main";
 | 
			
		||||
import {BrowserWindow, app, dialog, powerMonitor, session} from "electron/main";
 | 
			
		||||
import {
 | 
			
		||||
  BrowserWindow,
 | 
			
		||||
  app,
 | 
			
		||||
  dialog,
 | 
			
		||||
  powerMonitor,
 | 
			
		||||
  session,
 | 
			
		||||
  webContents,
 | 
			
		||||
} from "electron/main";
 | 
			
		||||
import {Buffer} from "node:buffer";
 | 
			
		||||
import crypto from "node:crypto";
 | 
			
		||||
import path from "node:path";
 | 
			
		||||
@@ -389,6 +396,21 @@ ${error}`,
 | 
			
		||||
    },
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  ipcMain.on(
 | 
			
		||||
    "forward-to",
 | 
			
		||||
    <Channel extends keyof RendererMessage>(
 | 
			
		||||
      _event: IpcMainEvent,
 | 
			
		||||
      webContentsId: number,
 | 
			
		||||
      listener: Channel,
 | 
			
		||||
      ...parameters: Parameters<RendererMessage[Channel]>
 | 
			
		||||
    ) => {
 | 
			
		||||
      const contents = webContents.fromId(webContentsId);
 | 
			
		||||
      if (contents !== undefined) {
 | 
			
		||||
        send(contents, listener, ...parameters);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  ipcMain.on("update-menu", (_event, props: MenuProps) => {
 | 
			
		||||
    AppMenu.setMenu(props);
 | 
			
		||||
    if (props.activeTabIndex !== undefined) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import {app} from "electron/main";
 | 
			
		||||
 | 
			
		||||
import * as Sentry from "@sentry/electron/main"; // eslint-disable-line n/file-extension-in-import
 | 
			
		||||
import * as Sentry from "@sentry/electron/main";
 | 
			
		||||
 | 
			
		||||
import {getConfigItem} from "../common/config-util.js";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,15 @@ export const ipcMain: {
 | 
			
		||||
      ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
    ) => void,
 | 
			
		||||
  ): void;
 | 
			
		||||
  on(
 | 
			
		||||
    channel: "forward-to",
 | 
			
		||||
    listener: <Channel extends keyof RendererMessage>(
 | 
			
		||||
      event: IpcMainEvent,
 | 
			
		||||
      webContentsId: number,
 | 
			
		||||
      channel: Channel,
 | 
			
		||||
      ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
    ) => void,
 | 
			
		||||
  ): void;
 | 
			
		||||
  on<Channel extends keyof MainMessage>(
 | 
			
		||||
    channel: Channel,
 | 
			
		||||
    listener: MainListener<Channel>,
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ import type {Html} from "../../../common/html.js";
 | 
			
		||||
import {html} from "../../../common/html.js";
 | 
			
		||||
import type {RendererMessage} from "../../../common/typed-ipc.js";
 | 
			
		||||
import type {TabRole} from "../../../common/types.js";
 | 
			
		||||
import preloadCss from "../../css/preload.css?raw"; // eslint-disable-line n/file-extension-in-import
 | 
			
		||||
import preloadCss from "../../css/preload.css?raw";
 | 
			
		||||
import {ipcRenderer} from "../typed-ipc-renderer.js";
 | 
			
		||||
import * as SystemUtil from "../utils/system-util.js";
 | 
			
		||||
 | 
			
		||||
@@ -226,7 +226,7 @@ export default class WebView {
 | 
			
		||||
    channel: Channel,
 | 
			
		||||
    ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
  ): void {
 | 
			
		||||
    ipcRenderer.sendTo(this.webContentsId, channel, ...args);
 | 
			
		||||
    ipcRenderer.send("forward-to", this.webContentsId, channel, ...args);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private registerListeners(): void {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import {EventEmitter} from "events"; // eslint-disable-line unicorn/prefer-node-protocol
 | 
			
		||||
import {EventEmitter} from "node:events";
 | 
			
		||||
 | 
			
		||||
import type {ClipboardDecrypter} from "./clipboard-decrypter.js";
 | 
			
		||||
import {ClipboardDecrypterImpl} from "./clipboard-decrypter.js";
 | 
			
		||||
 
 | 
			
		||||
@@ -356,7 +356,8 @@ export function initGeneralSection({$root}: GeneralSectionProps): void {
 | 
			
		||||
        const newValue = !ConfigUtil.getConfigItem("silent", true);
 | 
			
		||||
        ConfigUtil.setConfigItem("silent", newValue);
 | 
			
		||||
        updateSilentOption();
 | 
			
		||||
        ipcRenderer.sendTo(
 | 
			
		||||
        ipcRenderer.send(
 | 
			
		||||
          "forward-to",
 | 
			
		||||
          currentBrowserWindow.webContents.id,
 | 
			
		||||
          "toggle-silent",
 | 
			
		||||
          newValue,
 | 
			
		||||
 
 | 
			
		||||
@@ -138,7 +138,7 @@ function sendAction<Channel extends keyof RendererMessage>(
 | 
			
		||||
    win.restore();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ipcRenderer.sendTo(win.webContents.id, channel, ...args);
 | 
			
		||||
  ipcRenderer.send("forward-to", win.webContents.id, channel, ...args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const createTray = function (): void {
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,12 @@ export const ipcRenderer: {
 | 
			
		||||
    rendererChannel: Channel,
 | 
			
		||||
    ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
  ): void;
 | 
			
		||||
  send<Channel extends keyof RendererMessage>(
 | 
			
		||||
    channel: "forward-to",
 | 
			
		||||
    webContentsId: number,
 | 
			
		||||
    rendererChannel: Channel,
 | 
			
		||||
    ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
  ): void;
 | 
			
		||||
  send<Channel extends keyof MainMessage>(
 | 
			
		||||
    channel: Channel,
 | 
			
		||||
    ...args: Parameters<MainMessage[Channel]>
 | 
			
		||||
@@ -56,11 +62,6 @@ export const ipcRenderer: {
 | 
			
		||||
      : never,
 | 
			
		||||
    transfer?: MessagePort[],
 | 
			
		||||
  ): void;
 | 
			
		||||
  sendTo<Channel extends keyof RendererMessage>(
 | 
			
		||||
    webContentsId: number,
 | 
			
		||||
    channel: Channel,
 | 
			
		||||
    ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
  ): void;
 | 
			
		||||
  sendToHost<Channel extends keyof RendererMessage>(
 | 
			
		||||
    channel: Channel,
 | 
			
		||||
    ...args: Parameters<RendererMessage[Channel]>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								changelog.md
									
									
									
									
									
								
							@@ -2,6 +2,28 @@
 | 
			
		||||
 | 
			
		||||
All notable changes to the Zulip desktop app are documented in this file.
 | 
			
		||||
 | 
			
		||||
### v5.10.4 --2024-01-09
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Upgraded all dependencies, including Electron 28.1.1.
 | 
			
		||||
 | 
			
		||||
### v5.10.3 --2023-09-30
 | 
			
		||||
 | 
			
		||||
**Fixes**:
 | 
			
		||||
 | 
			
		||||
- Fixed an error in the third-party `gatemaker` library that broke the display of notifications for completed downloads.
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Upgraded all dependencies, including Electron 25.8.4.
 | 
			
		||||
 | 
			
		||||
### v5.10.2 --2023-09-14
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Downgraded Electron to 25.8.1 to avoid a renderer process crash on Linux.
 | 
			
		||||
 | 
			
		||||
### v5.10.1 --2023-09-13
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3452
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3452
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										20
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								package.json
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "zulip",
 | 
			
		||||
  "productName": "Zulip",
 | 
			
		||||
  "version": "5.10.1",
 | 
			
		||||
  "version": "5.10.4",
 | 
			
		||||
  "main": "./dist-electron",
 | 
			
		||||
  "description": "Zulip Desktop App",
 | 
			
		||||
  "license": "Apache-2.0",
 | 
			
		||||
@@ -143,7 +143,7 @@
 | 
			
		||||
    "InstantMessaging"
 | 
			
		||||
  ],
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "gatemaker": "^1.0.0"
 | 
			
		||||
    "gatemaker": "https://github.com/andersk/gatemaker/archive/d31890ae1cb293faabcb1e4e465c673458f6eed2.tar.gz"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@electron/remote": "^2.0.8",
 | 
			
		||||
@@ -152,16 +152,16 @@
 | 
			
		||||
    "@types/auto-launch": "^5.0.2",
 | 
			
		||||
    "@types/backoff": "^2.5.2",
 | 
			
		||||
    "@types/i18n": "^0.13.1",
 | 
			
		||||
    "@types/node": "^18.16.5",
 | 
			
		||||
    "@types/node": "~18.17.19",
 | 
			
		||||
    "@types/requestidlecallback": "^0.3.4",
 | 
			
		||||
    "@types/yaireo__tagify": "^4.3.2",
 | 
			
		||||
    "@yaireo/tagify": "^4.5.0",
 | 
			
		||||
    "adm-zip": "^0.5.5",
 | 
			
		||||
    "auto-launch": "^5.0.5",
 | 
			
		||||
    "backoff": "^2.5.0",
 | 
			
		||||
    "electron": "^26.2.1",
 | 
			
		||||
    "electron": "^28.1.1",
 | 
			
		||||
    "electron-builder": "^24.6.4",
 | 
			
		||||
    "electron-log": "^4.3.5",
 | 
			
		||||
    "electron-log": "^5.0.3",
 | 
			
		||||
    "electron-updater": "^6.1.4",
 | 
			
		||||
    "electron-window-state": "^5.0.3",
 | 
			
		||||
    "escape-goat": "^4.0.0",
 | 
			
		||||
@@ -170,17 +170,17 @@
 | 
			
		||||
    "iso-639-1": "^3.1.0",
 | 
			
		||||
    "medium": "^1.2.0",
 | 
			
		||||
    "node-json-db": "^1.3.0",
 | 
			
		||||
    "playwright-core": "^1.30.0-alpha-jan-3-2023",
 | 
			
		||||
    "playwright-core": "^1.41.0-alpha-jan-9-2024",
 | 
			
		||||
    "pre-commit": "^1.2.2",
 | 
			
		||||
    "prettier": "^3.0.3",
 | 
			
		||||
    "rimraf": "^5.0.0",
 | 
			
		||||
    "semver": "^7.3.5",
 | 
			
		||||
    "stylelint": "^15.6.1",
 | 
			
		||||
    "stylelint-config-standard": "^34.0.0",
 | 
			
		||||
    "stylelint": "^16.1.0",
 | 
			
		||||
    "stylelint-config-standard": "^36.0.0",
 | 
			
		||||
    "tape": "^5.2.2",
 | 
			
		||||
    "typescript": "^5.0.4",
 | 
			
		||||
    "vite": "^4.1.1",
 | 
			
		||||
    "vite-plugin-electron": "^0.14.1",
 | 
			
		||||
    "vite": "^5.0.11",
 | 
			
		||||
    "vite-plugin-electron": "^0.28.0",
 | 
			
		||||
    "xo": "^0.56.0",
 | 
			
		||||
    "zod": "^3.5.1"
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -5,15 +5,6 @@ import * as path from "node:path";
 | 
			
		||||
import {defineConfig} from "vite";
 | 
			
		||||
import electron from "vite-plugin-electron";
 | 
			
		||||
 | 
			
		||||
let resolvePreload: () => void;
 | 
			
		||||
let resolveRenderer: () => void;
 | 
			
		||||
const whenPreload = new Promise<void>((resolve) => {
 | 
			
		||||
  resolvePreload = resolve;
 | 
			
		||||
});
 | 
			
		||||
const whenRenderer = new Promise<void>((resolve) => {
 | 
			
		||||
  resolveRenderer = resolve;
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export default defineConfig({
 | 
			
		||||
  plugins: [
 | 
			
		||||
    electron([
 | 
			
		||||
@@ -21,11 +12,6 @@ export default defineConfig({
 | 
			
		||||
        entry: {
 | 
			
		||||
          index: "app/main",
 | 
			
		||||
        },
 | 
			
		||||
        async onstart({startup}) {
 | 
			
		||||
          await whenPreload;
 | 
			
		||||
          await whenRenderer;
 | 
			
		||||
          await startup();
 | 
			
		||||
        },
 | 
			
		||||
        vite: {
 | 
			
		||||
          build: {
 | 
			
		||||
            sourcemap: true,
 | 
			
		||||
@@ -48,9 +34,6 @@ export default defineConfig({
 | 
			
		||||
        entry: {
 | 
			
		||||
          preload: "app/renderer/js/preload.ts",
 | 
			
		||||
        },
 | 
			
		||||
        onstart() {
 | 
			
		||||
          resolvePreload();
 | 
			
		||||
        },
 | 
			
		||||
        vite: {
 | 
			
		||||
          build: {
 | 
			
		||||
            sourcemap: "inline",
 | 
			
		||||
@@ -64,9 +47,6 @@ export default defineConfig({
 | 
			
		||||
        entry: {
 | 
			
		||||
          renderer: "app/renderer/js/main.ts",
 | 
			
		||||
        },
 | 
			
		||||
        onstart() {
 | 
			
		||||
          resolveRenderer();
 | 
			
		||||
        },
 | 
			
		||||
        vite: {
 | 
			
		||||
          build: {
 | 
			
		||||
            sourcemap: true,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user