Files
Sucukdeluxe e52957a983 fix(extraction): repair missing archives before manual retry
Persist selected manual extraction repair requests, re-download only missing multipart members, and resume extraction after successful repairs across Stop, failures, and application restarts.

Allow complete archive sets and missing sets from the same package to progress together, preserve existing parts, and keep retry generations and run contexts isolated after failed repair downloads.

Expose direct child retries for persisted repair items and validate repair state through storage normalization and renderer deltas.
2026-08-23 11:37:21 +02:00

112 lines
3.7 KiB
JSON

{
"name": "multi-debrid-downloader",
"version": "2.0.64",
"description": "Desktop downloader",
"main": "build/main/main/main.js",
"author": "Sucukdeluxe",
"license": "MIT",
"scripts": {
"dev": "concurrently -k \"npm:dev:main:watch\" \"npm:dev:renderer\" \"npm:dev:electron\"",
"dev:renderer": "vite --port 5180 --strictPort",
"visual:dev": "vite --config tests/visual/vite.config.mts --host 127.0.0.1 --port 5174 --strictPort",
"dev:main:watch": "tsup src/main/main.ts src/preload/preload.ts --out-dir build/main --format cjs --target node20 --external electron --sourcemap --watch",
"dev:electron": "wait-on tcp:5180 file:build/main/main/main.js && cross-env NODE_ENV=development DEV_SERVER_PORT=5180 tsx scripts/run-dev-electron.ts",
"build": "npm run build:main && npm run build:renderer",
"build:extractor-jvm": "node scripts/build-extractor-jvm.mjs",
"build:main": "npm run build:extractor-jvm && tsup src/main/main.ts src/preload/preload.ts --out-dir build/main --format cjs --target node20 --external electron --sourcemap",
"build:renderer": "vite build",
"start": "cross-env NODE_ENV=production electron .",
"test": "npm run test:client && npm run test:backup-api",
"test:client": "vitest run",
"test:backup-api": "npm --prefix services/backup-api test",
"start:backup-api": "npm --prefix services/backup-api start",
"self-check": "tsx tests/self-check.ts",
"release:win": "npm run build && electron-builder --publish never --win nsis portable",
"verify:release": "node scripts/verify_public_release.mjs"
},
"dependencies": {
"adm-zip": "0.6.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"uuid": "11.1.1"
},
"devDependencies": {
"@types/adm-zip": "^0.5.7",
"@types/node": "^24.0.13",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/uuid": "^10.0.0",
"@vitejs/plugin-react": "^4.3.4",
"concurrently": "^9.0.1",
"cross-env": "^7.0.3",
"electron": "^31.7.7",
"electron-builder": "^25.1.8",
"rcedit": "^5.0.2",
"tsup": "^8.3.6",
"tsx": "^4.19.2",
"typescript": "^5.7.3",
"vite": "^6.0.5",
"vitest": "^2.1.8",
"wait-on": "^8.0.1",
"yaml": "^2.9.0"
},
"build": {
"appId": "com.sucukdeluxe.realdebrid",
"productName": "Multi-Debrid-Downloader",
"directories": {
"buildResources": "assets",
"output": "release"
},
"publish": {
"provider": "github",
"owner": "Sucukdeluxe",
"repo": "Multi-Debrid-Downloader"
},
"files": [
"build/main/**/*",
"build/renderer/**/*",
"resources/extractor-jvm/**/*",
"LICENSE",
"THIRD_PARTY_NOTICES.md",
"package.json"
],
"extraResources": [
{
"from": "LICENSE",
"to": "LICENSE"
},
{
"from": "THIRD_PARTY_NOTICES.md",
"to": "THIRD_PARTY_NOTICES.md"
},
{
"from": "assets/app_icon.ico",
"to": "assets/app_icon.ico"
}
],
"asarUnpack": [
"resources/extractor-jvm/**/*"
],
"win": {
"target": [
"nsis",
"portable"
],
"icon": "assets/app_icon.ico",
"signAndEditExecutable": false
},
"nsis": {
"artifactName": "${productName}-Setup-${version}.${ext}",
"include": "resources/installer.nsh",
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true
},
"portable": {
"artifactName": "${productName}-${version}-portable.${ext}"
},
"afterPack": "scripts/afterPack.cjs"
}
}