forked from NeelFrostrain/UnrealLauncher
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
90 lines (90 loc) · 8.6 KB
/
Copy pathpackage.json
File metadata and controls
90 lines (90 loc) · 8.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
"name": "unreal-launcher",
"productName": "Unreal Launcher",
"version": "2.3.2",
"description": "A lightweight Electron desktop app for discovering, launching, and managing Unreal Engine installations and projects",
"main": "./out/main/index.js",
"author": "NeelFrostrain",
"license": "PROPRIETARY SOURCE LICENSE",
"homepage": "https://neelfrostrain.github.io/UnrealLauncher/",
"download:win": "https://github.com/NeelFrostrain/UnrealLauncher/releases/download/v2.3.1/unreal-launcher-2.3.1-setup.exe",
"download:linux": "https://github.com/NeelFrostrain/UnrealLauncher/releases/download/v2.3.1/unreal-launcher-2.3.1-linux.AppImage",
"scripts": {
"format": "prettier --write .",
"lint": "eslint --cache .",
"lint:fix": "eslint --cache --fix .",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "npm run typecheck:node && npm run typecheck:web",
"test": "vitest",
"test:run": "vitest run",
"start": "electron-vite preview",
"dev": "electron-vite dev --mode development -- --no-sandbox",
"dev:prod": "electron-vite dev --mode production",
"build:native": "napi build --platform --release --manifest-path native/Cargo.toml && node -e \"const fs=require('fs'),path=require('path');['index.d.ts','index.win32-x64-msvc.node'].forEach(f=>{const src=path.join('native',f),dst=path.join('native','dist',f);if(!fs.existsSync(path.join('native','dist')))fs.mkdirSync(path.join('native','dist'),{recursive:true});if(fs.existsSync(src))fs.renameSync(src,dst)});const indexJs='const{platform,arch}=process;const path=require(\\\"path\\\");let nativeModule;if(platform===\\\"win32\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-x64-msvc.node\\\"));}else if(arch===\\\"ia32\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-ia32-msvc.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-arm64-msvc.node\\\"));}}else if(platform===\\\"linux\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.linux-x64-gnu.node\\\"));}}else if(platform===\\\"darwin\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-x64.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-arm64.node\\\"));}}if(!nativeModule){throw new Error(`No native module found for ${platform} ${arch}`);}module.exports=nativeModule;';fs.writeFileSync(path.join('native','dist','index.js'),indexJs)\"",
"build:native:linux": "napi build --release --manifest-path native/Cargo.toml && node -e \"const fs=require('fs'),path=require('path');['index.d.ts','index.linux-x64-gnu.node'].forEach(f=>{const src=path.join('native',f),dst=path.join('native','dist',f);if(!fs.existsSync(path.join('native','dist')))fs.mkdirSync(path.join('native','dist'),{recursive:true});if(fs.existsSync(src))fs.renameSync(src,dst)});const indexJs='const{platform,arch}=process;const path=require(\\\"path\\\");let nativeModule;if(platform===\\\"win32\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-x64-msvc.node\\\"));}else if(arch===\\\"ia32\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-ia32-msvc.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-arm64-msvc.node\\\"));}}else if(platform===\\\"linux\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.linux-x64-gnu.node\\\"));}}else if(platform===\\\"darwin\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-x64.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-arm64.node\\\"));}}if(!nativeModule){throw new Error(`No native module found for ${platform} ${arch}`);}module.exports=nativeModule;';fs.writeFileSync(path.join('native','dist','index.js'),indexJs)\"",
"build:native:mac": "napi build --release --manifest-path native/Cargo.toml && node -e \"const fs=require('fs'),path=require('path');['index.d.ts','index.darwin-x64.node'].forEach(f=>{const src=path.join('native',f),dst=path.join('native','dist',f);if(!fs.existsSync(path.join('native','dist')))fs.mkdirSync(path.join('native','dist'),{recursive:true});if(fs.existsSync(src))fs.renameSync(src,dst)});const indexJs='const{platform,arch}=process;const path=require(\\\"path\\\");let nativeModule;if(platform===\\\"win32\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-x64-msvc.node\\\"));}else if(arch===\\\"ia32\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-ia32-msvc.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.win32-arm64-msvc.node\\\"));}}else if(platform===\\\"linux\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.linux-x64-gnu.node\\\"));}}else if(platform===\\\"darwin\\\"){if(arch===\\\"x64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-x64.node\\\"));}else if(arch===\\\"arm64\\\"){nativeModule=require(path.join(__dirname,\\\"index.darwin-arm64.node\\\"));}}if(!nativeModule){throw new Error(`No native module found for ${platform} ${arch}`);}module.exports=nativeModule;';fs.writeFileSync(path.join('native','dist','index.js'),indexJs)\"",
"build:native:all": "npm run build:native && npm run build:native:linux && npm run build:native:mac",
"build:tracer": "cargo build --release --manifest-path tracer/Cargo.toml",
"build:tracer:debug": "cargo build --manifest-path tracer/Cargo.toml",
"build:app": "electron-vite build",
"build:fast": "npm run build:app",
"build:package": "electron-builder --publish=never",
"build": "npm run build:tracer && npm run build:app && npm run copy:tracer",
"copy:tracer": "node -e \"const fs=require('fs'),p=require('path'),src=p.join('tracer','target','release',process.platform==='win32'?'unreal_launcher_tracer.exe':'unreal_launcher_tracer'),dst=p.join('resources',p.basename(src));if(fs.existsSync(src))fs.copyFileSync(src,dst);else console.warn('tracer binary not found:',src)\"",
"copy:tracer:linux": "node -e \"const fs=require('fs'),p=require('path'),src=p.join('tracer','target','release','unreal_launcher_tracer'),dst=p.join('resources','unreal_launcher_tracer');if(fs.existsSync(src))fs.copyFileSync(src,dst);else console.warn('tracer binary not found:',src)\"",
"build:analyze": "npm run build && npx vite-bundle-analyzer out/renderer/assets/*.js",
"postinstall": "electron-builder install-app-deps",
"build:unpack": "npm run build && electron-builder --dir",
"build:win": "npm run build && electron-builder --win --publish=never",
"build:mac": "npm run build && electron-builder --mac --publish=never",
"build:linux": "npm run build:tracer && npm run build:native:linux && npm run build:app && npm run copy:tracer:linux && electron-builder --linux --publish=never",
"build:linux:unpack": "npm run build:tracer && npm run build:native:linux && npm run build:app && npm run copy:tracer:linux && electron-builder --dir",
"build:all": "npm run build && electron-builder --win --mac --linux --publish=never",
"clean": "rimraf out dist node_modules/.vite node_modules/.cache",
"clean:build": "rimraf out dist"
},
"dependencies": {
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"discord-rpc": "^4.0.1",
"dotenv": "^17.4.2",
"electron-updater": "^6.8.3",
"lucide-react": "^1.8.0",
"react-router-dom": "^7.14.0",
"react-virtualized-auto-sizer": "^2.0.3",
"react-window": "^2.2.7"
},
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@electron-toolkit/tsconfig": "^2.0.0",
"@napi-rs/cli": "^3.6.1",
"@tailwindcss/vite": "^4.2.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/node": "^22.19.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/react-window": "^1.8.8",
"@vitejs/plugin-react": "^5.1.1",
"electron": "^39.2.6",
"electron-builder": "^26.0.12",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"framer-motion": "^12.38.0",
"jsdom": "^29.1.1",
"prettier": "^3.7.4",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"tailwindcss": "^4.2.1",
"terser": "^5.46.0",
"typescript": "^5.9.3",
"vite": "^7.2.6",
"vitest": "^4.1.8",
"zustand": "^5.0.11"
}
}