Update Electron main process for production readiness and app protocol handling

- Register `app://` protocol for secure file handling in production.
- Adjust icon paths to support macOS and Windows/Linux distinctions.
- Enhance security by validating file paths under the `out/` directory.
- Replace `file://` accesses with the `app://` protocol.
- Update `package.json` build scripts for platform-specific builds and refined output directory structure.
- Modify main and login window settings for improved compatibility across all platforms.
This commit is contained in:
natreex
2025-11-16 19:18:17 -05:00
parent de03dedaf0
commit a1fcca45cb
3 changed files with 93 additions and 37 deletions

View File

@@ -5,17 +5,11 @@
"type": "module",
"main": "dist/electron/main.js",
"scripts": {
"dev:next": "next dev -p 4000",
"dev:electron": "NODE_ENV=development PORT=4000 electron -r tsx/cjs electron/main.ts",
"dev": "concurrently \"npm run dev:next\" \"wait-on http://localhost:4000 && npm run dev:electron\"",
"build:next": "next build",
"build:electron": "tsc --project tsconfig.electron.json && tsc --project tsconfig.preload.json",
"build": "npm run build:next && npm run build:electron",
"start": "electron .",
"package": "npm run build && electron-builder build --mac --win --linux",
"package:mac": "npm run build && electron-builder build --mac",
"package:win": "npm run build && electron-builder build --win",
"package:linux": "npm run build && electron-builder build --linux"
"dev": "concurrently \"next dev -p 4000\" \"wait-on http://localhost:4000 && electron -r tsx/cjs electron/main.ts\"",
"build:mac": "next build && tsc --project tsconfig.electron.json && tsc --project tsconfig.preload.json && electron-builder build --mac",
"build:win": "next build && tsc --project tsconfig.electron.json && tsc --project tsconfig.preload.json && electron-builder build --win",
"build:linux": "next build && tsc --project tsconfig.electron.json && tsc --project tsconfig.preload.json && electron-builder build --linux",
"build:all": "next build && tsc --project tsconfig.electron.json && tsc --project tsconfig.preload.json && electron-builder build --mac --win --linux"
},
"keywords": [],
"author": "",
@@ -71,17 +65,22 @@
"tailwindcss": "^4.1.17"
},
"build": {
"appId": "com.eritorsscribe.app",
"productName": "EritorsScribe",
"appId": "com.eritors.scribe.desktop",
"productName": "ERitors Scribe",
"files": [
"dist/**/*",
"out/**/*",
"build/**/*",
"package.json"
],
"asarUnpack": [
"out/**/*"
],
"directories": {
"output": "release"
},
"mac": {
"icon": "build/icons/mac/icon.icns",
"target": [
"dmg",
"zip"
@@ -93,6 +92,7 @@
"entitlementsInherit": "build/entitlements.mac.plist"
},
"win": {
"icon": "build/icons/win/icon.ico",
"target": [
{
"target": "nsis",
@@ -104,6 +104,7 @@
]
},
"linux": {
"icon": "build/icons/png",
"target": [
"AppImage",
"deb"