15815213711
2024-08-26 67b8b6731811983447e053d4396b3708c14dfe3c
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
/// <reference types="node" />
import { CancellationToken, UpdateFileInfo, UpdateInfo } from "builder-util-runtime";
import { OutgoingHttpHeaders, RequestOptions } from "http";
import { URL } from "url";
import { ElectronHttpExecutor } from "../electronHttpExecutor";
import { ResolvedUpdateFileInfo } from "../main";
export declare type ProviderPlatform = "darwin" | "linux" | "win32";
export interface ProviderRuntimeOptions {
    isUseMultipleRangeRequest: boolean;
    platform: ProviderPlatform;
    executor: ElectronHttpExecutor;
}
export declare abstract class Provider<T extends UpdateInfo> {
    private readonly runtimeOptions;
    private requestHeaders;
    protected readonly executor: ElectronHttpExecutor;
    protected constructor(runtimeOptions: ProviderRuntimeOptions);
    get isUseMultipleRangeRequest(): boolean;
    private getChannelFilePrefix;
    protected getDefaultChannelName(): string;
    protected getCustomChannelName(channel: string): string;
    get fileExtraDownloadHeaders(): OutgoingHttpHeaders | null;
    setRequestHeaders(value: OutgoingHttpHeaders | null): void;
    abstract getLatestVersion(): Promise<T>;
    abstract resolveFiles(updateInfo: T): Array<ResolvedUpdateFileInfo>;
    /**
     * Method to perform API request only to resolve update info, but not to download update.
     */
    protected httpRequest(url: URL, headers?: OutgoingHttpHeaders | null, cancellationToken?: CancellationToken): Promise<string | null>;
    protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions;
}
export declare function findFile(files: Array<ResolvedUpdateFileInfo>, extension: string, not?: Array<string>): ResolvedUpdateFileInfo | null | undefined;
export declare function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo;
export declare function getFileList(updateInfo: UpdateInfo): Array<UpdateFileInfo>;
export declare function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer?: (p: string) => string): Array<ResolvedUpdateFileInfo>;