hot-updater
Version:
React Native OTA solution for self-hosted
73 lines (72 loc) • 2.31 kB
text/typescript
import { HotUpdaterConfigOptions } from "@hot-updater/cli-tools";
import { ConfigInput, Platform } from "@hot-updater/plugin-core";
//#region src/utils/fingerprint/common.d.ts
type FingerprintSource = {
type: "file" | "dir";
filePath: string;
reasons: string[];
overrideHashKey?: string;
hash: string | null;
debugInfo?: any;
} | {
type: "contents";
id: string;
contents: string | Buffer;
reasons: string[];
hash: string | null;
debugInfo?: any;
};
type FingerprintResult = {
hash: string;
sources: FingerprintSource[];
};
//#endregion
//#region src/utils/fingerprint/index.d.ts
declare const generateFingerprints: () => Promise<{
ios: FingerprintResult;
android: FingerprintResult;
}>;
declare const generateFingerprint: (platform: "ios" | "android") => Promise<FingerprintResult>;
declare const createAndInjectFingerprintFiles: ({
platform
}?: {
platform?: Platform;
}) => Promise<{
fingerprint: {
ios: FingerprintResult;
android: FingerprintResult;
};
androidPaths: string[];
iosPaths: string[];
}>;
declare const createFingerprintJSON: (fingerprint: {
ios: FingerprintResult;
android: FingerprintResult;
}) => Promise<{
ios: FingerprintResult;
android: FingerprintResult;
}>;
declare const readLocalFingerprint: () => Promise<{
ios: FingerprintResult | null;
android: FingerprintResult | null;
} | null>;
//#endregion
//#region src/utils/signing/keyGeneration.d.ts
/**
* Load private key from PEM file.
* @param privateKeyPath Path to private key file
* @returns Private key in PEM format
* @throws Error if file not found or invalid format
*/
declare function loadPrivateKey(privateKeyPath: string): Promise<string>;
/**
* Extract public key from private key.
* @param privateKeyPEM Private key in PEM format
* @returns Public key in PEM format
*/
declare function getPublicKeyFromPrivate(privateKeyPEM: string): string;
//#endregion
//#region src/config.d.ts
declare const defineConfig: (config: ConfigInput | ((options: HotUpdaterConfigOptions) => ConfigInput)) => ConfigInput | ((options: HotUpdaterConfigOptions) => ConfigInput);
//#endregion
export { createAndInjectFingerprintFiles, createFingerprintJSON, defineConfig, generateFingerprint, generateFingerprints, getPublicKeyFromPrivate, loadPrivateKey, readLocalFingerprint };