appId: com.aerofetch.app productName: AeroFetch copyright: yt-dlp frontend # 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 files: - '!**/.vscode/*' - '!src/*' - '!electron.vite.config.{js,ts,mjs,cjs}' - '!{.eslintignore,.eslintrc.cjs,.eslintrc.js,.prettierignore,.prettierrc.yaml,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,tsconfig.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: - '**/*' 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 # Placeholder icon (audit M3): white download glyph on the teal brand square, # mirroring the in-app brand mark. Generated from build/icon.svg as a multi-size # .ico (256/128/64/48/32/16). Replace with a designed asset before v1.0 — re-run # 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).