mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 14:22:28 +08:00
* feat(electron): add desktop application support with electron - implement complete Electron main process architecture with window management, app menu, IPC handlers, and settings window - integrate Next.js server for production builds with embedded standalone server - add configuration management with persistent storage and env file support - create preload scripts with secure context bridge for renderer communication - set up electron-builder configuration for multi-platform packaging (macOS, Windows, Linux) - add GitHub Actions workflow for automated release builds - include development scripts for hot-reload during Electron development * feat(electron): enhance security and stability - encrypt API keys using Electron safeStorage API before persisting to disk - add error handling and rollback for preset switching failures - extract inline styles to external CSS file and remove unsafe-inline from CSP - implement dynamic port allocation with automatic fallback for production builds * fix(electron): add maintainer field for Linux .deb package - add maintainer email to linux configuration in electron-builder.yml - required for building .deb packages * fix(electron): use shx for cross-platform file copying - replace Unix-only cp -r with npx shx cp -r - add shx as devDependency for Windows compatibility * fix(electron): fix runtime icon path for all platforms - use icon.png directly instead of platform-specific formats - electron-builder handles icon conversion during packaging - macOS uses embedded icon from app bundle, no explicit path needed - add icon.png to extraResources for Windows/Linux runtime access * fix(electron): add security warning for plaintext API key storage - warn user when safeStorage is unavailable (Linux without keyring) - fail secure: throw error if encryption fails instead of storing plaintext - prevent duplicate warnings with hasWarnedAboutPlaintext flag * fix(electron): add remaining review fixes - Add Windows ARM64 architecture support - Add IPC input validation with config key whitelist - Add server.js existence check before starting Next.js server - Make afterPack throw error on missing directories - Add workflow permissions for release job --------- Co-authored-by: dayuan.jiang <jdy.toh@gmail.com>
97 lines
1.8 KiB
YAML
97 lines
1.8 KiB
YAML
appId: com.nextaidrawio.app
|
|
productName: Next AI Draw.io
|
|
copyright: Copyright © 2024 Next AI Draw.io
|
|
electronVersion: 39.2.7
|
|
|
|
directories:
|
|
output: release
|
|
buildResources: resources
|
|
|
|
afterPack: ./scripts/afterPack.cjs
|
|
|
|
files:
|
|
- dist-electron/**/*
|
|
- "!node_modules"
|
|
|
|
asarUnpack:
|
|
- "**/*.node"
|
|
|
|
extraResources:
|
|
# Copy prepared standalone directory (includes node_modules)
|
|
- from: electron-standalone/
|
|
to: standalone/
|
|
# Copy icon for runtime use (Windows/Linux)
|
|
- from: resources/icon.png
|
|
to: icon.png
|
|
|
|
# macOS configuration
|
|
mac:
|
|
category: public.app-category.productivity
|
|
icon: resources/icon.png
|
|
target:
|
|
- target: dmg
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
- target: zip
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
hardenedRuntime: true
|
|
gatekeeperAssess: false
|
|
entitlements: resources/entitlements.mac.plist
|
|
entitlementsInherit: resources/entitlements.mac.plist
|
|
|
|
dmg:
|
|
contents:
|
|
- x: 130
|
|
y: 220
|
|
- x: 410
|
|
y: 220
|
|
type: link
|
|
path: /Applications
|
|
window:
|
|
width: 540
|
|
height: 380
|
|
|
|
# Windows configuration
|
|
win:
|
|
icon: resources/icon.png
|
|
target:
|
|
- target: nsis
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
- target: portable
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
|
|
nsis:
|
|
oneClick: false
|
|
perMachine: false
|
|
allowToChangeInstallationDirectory: true
|
|
deleteAppDataOnUninstall: false
|
|
createDesktopShortcut: true
|
|
createStartMenuShortcut: true
|
|
|
|
# Linux configuration
|
|
linux:
|
|
icon: resources/icon.png
|
|
category: Office
|
|
maintainer: Next AI Draw.io <nextaidrawio@users.noreply.github.com>
|
|
target:
|
|
- target: AppImage
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
- target: deb
|
|
arch:
|
|
- x64
|
|
- arm64
|
|
|
|
# Publish configuration (optional)
|
|
publish:
|
|
provider: github
|
|
releaseType: release
|