fix(updater): migrate legacy release repositories
Redirect settings that still reference the former private repositories to the public GitHub release source so existing installations can discover v2.0.1 and later updates.
This commit is contained in:
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "real-debrid-downloader",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "real-debrid-downloader",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"adm-zip": "0.6.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "real-debrid-downloader",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"description": "Desktop downloader",
|
||||
"main": "build/main/main/main.js",
|
||||
"author": "Sucukdeluxe",
|
||||
|
||||
+11
-9
@@ -328,15 +328,17 @@ function normalizeProviderOrder(
|
||||
return result;
|
||||
}
|
||||
|
||||
const DEPRECATED_UPDATE_REPOS = new Set([
|
||||
"sucukdeluxe/real-debrid-downloader"
|
||||
]);
|
||||
|
||||
function migrateUpdateRepo(raw: string, fallback: string): string {
|
||||
const trimmed = raw.trim();
|
||||
if (!trimmed || DEPRECATED_UPDATE_REPOS.has(trimmed.toLowerCase())) {
|
||||
return fallback;
|
||||
}
|
||||
const DEPRECATED_UPDATE_REPO_NAMES = new Set([
|
||||
"real-debrid-downloader",
|
||||
"multi-debrid-downloader"
|
||||
]);
|
||||
|
||||
function migrateUpdateRepo(raw: string, fallback: string): string {
|
||||
const trimmed = raw.trim();
|
||||
const repoName = trimmed.split("/").filter(Boolean).pop()?.replace(/\.git$/i, "").toLowerCase() || "";
|
||||
if (!trimmed || (DEPRECATED_UPDATE_REPO_NAMES.has(repoName) && trimmed.toLowerCase() !== fallback.toLowerCase())) {
|
||||
return fallback;
|
||||
}
|
||||
return trimmed;
|
||||
}
|
||||
|
||||
|
||||
+16
-5
@@ -71,7 +71,7 @@ describe("settings storage", () => {
|
||||
expect(loaded.allDebridToken).toBe("all-token");
|
||||
});
|
||||
|
||||
it("normalizes invalid enum and numeric values", () => {
|
||||
it("normalizes invalid enum and numeric values", () => {
|
||||
const normalized = normalizeSettings({
|
||||
...defaultSettings(),
|
||||
providerPrimary: "invalid-provider" as unknown as AppSettings["providerPrimary"],
|
||||
@@ -105,10 +105,21 @@ describe("settings storage", () => {
|
||||
expect(normalized.outputDir).toBe(defaultSettings().outputDir);
|
||||
expect(normalized.extractDir).toBe(defaultSettings().extractDir);
|
||||
expect(normalized.mkvLibraryDir).toBe(defaultSettings().mkvLibraryDir);
|
||||
expect(normalized.updateRepo).toBe(defaultSettings().updateRepo);
|
||||
});
|
||||
|
||||
it("normalizes malformed persisted config on load", () => {
|
||||
expect(normalized.updateRepo).toBe(defaultSettings().updateRepo);
|
||||
});
|
||||
|
||||
it("migrates the previous private update repository to the public release repository", () => {
|
||||
for (const updateRepo of [
|
||||
"legacy-owner/real-debrid-downloader",
|
||||
"legacy-owner/multi-debrid-downloader",
|
||||
"legacy-owner/real-debrid-downloader.git"
|
||||
]) {
|
||||
const normalized = normalizeSettings({ ...defaultSettings(), updateRepo });
|
||||
expect(normalized.updateRepo).toBe(defaultSettings().updateRepo);
|
||||
}
|
||||
});
|
||||
|
||||
it("normalizes malformed persisted config on load", () => {
|
||||
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "rd-store-"));
|
||||
tempDirs.push(dir);
|
||||
const paths = createStoragePaths(dir);
|
||||
|
||||
Reference in New Issue
Block a user