appId: com.aerofetch.app productName: AeroFetch copyright: Copyright © 2026 AeroFetch # Lets a browser/another app hand AeroFetch a link via aerofetch://download?url= # (src/main/deeplink.ts) — the closest Windows analog to Android's share-to-app intent. # The NSIS installer registers this at install time; main/index.ts's # app.setAsDefaultProtocolClient call additionally covers the portable build and dev. protocols: - name: AeroFetch schemes: - aerofetch directories: buildResources: build output: dist # Generate a .exe.sha256 next to every built .exe (H8). The updater # hard-requires this checksum asset or it refuses to install the update. afterAllArtifactBuild: ./scripts/generate-checksums.cjs files: - '!**/.vscode/*' - '!src/*' - '!electron.vite.config.{js,ts,mjs,cjs}' - '!{eslint.config.js,.prettierrc,dev-app-update.yml,CHANGELOG.md,README.md}' - '!{.env,.env.*,.npmrc,pnpm-lock.yaml,package-lock.json}' - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' - '!*.tsbuildinfo' # yt-dlp.exe + ffmpeg.exe ship outside the asar archive so they can be spawned # directly. They land in /resources/bin, reachable via process.resourcesPath. extraResources: - from: resources/bin to: bin filter: - '**/*' # The app icon, copied so the runtime (system tray) can load it at # /icon.ico — build/ itself isn't bundled into the app. - from: build/icon.ico to: icon.ico win: # Two artifacts: # - nsis → regular installer (Start-menu shortcut + uninstaller). Per-user # (installs to %LOCALAPPDATA%), so it needs NO admin rights. # - portable → single self-contained .exe. No install, no admin; runs from a # USB stick / Downloads folder on a locked-down public PC. target: - nsis - portable # Never request admin elevation. requestedExecutionLevel: asInvoker # App icon (audit W14): white download glyph on the teal brand square with a # top-lit gradient. Generated from build/icon.svg as a multi-size .ico # (256/128/64/48/32/16). After editing the SVG, regenerate with: # magick -background none build/icon.svg -define icon:auto-resize=256,128,64,48,32,16 build/icon.ico icon: build/icon.ico portable: artifactName: ${productName}-${version}-portable.${ext} # Fixed extraction dir name so repeated launches reuse it instead of re-extracting. unpackDirName: AeroFetch requestExecutionLevel: user nsis: oneClick: false perMachine: false allowToChangeInstallationDirectory: true deleteAppDataOnUninstall: false # Flip perMachine to true for an all-users install to Program Files (requires admin).