signing-enclave
Version:
A code signing and notarization tool for macOS and Windows applications. Uses Azure Key Vault for secret and certificate management.
52 lines (51 loc) • 2.29 kB
TypeScript
import { macNotarizationOptions } from "./commands/watch";
import { HsmSecretFile } from "./signing/secretClient";
import { EventEmitter } from "events";
type ReceiptStatus = "Pending" | "In Progress" | "Completed" | "Failed";
export type Receipt = {
id: string;
originalFile: string;
receiptFile: string;
requestFile: string;
platform: Request["platform"];
type?: Request["type"];
provisioningProfile?: Request["provisioningProfile"];
status: ReceiptStatus | "Signing" | "Notarizing";
signingStatus?: ReceiptStatus;
notarizationStatus?: ReceiptStatus;
signingError?: string;
notarizationError?: string;
error?: string;
secretName?: string;
createdAt: string;
updatedAt: string;
};
export type Request = {
path: string;
actions: ("sign" | "notarize" | "getCert" | "getSecret" | "getNotarizationCredentials")[];
secretName?: string;
platform?: "mas" | "mac" | "macPkg" | "win";
type?: "distribution" | "development" | "installer";
provisioningProfile?: string;
};
declare function writeReceipt(filePath: string, receipt: Receipt): Promise<void>;
declare let options: {
macCert?: string;
macInstallerCert?: string;
masDevelopmentCert?: string;
masDistributionCert?: string;
masInstallerCert?: string;
macNotarize?: macNotarizationOptions;
windowsCert?: string;
secrets?: Record<string, string>[];
};
export declare const createReceipt: (request: Request, requestPath: string, generateUUID?: () => string, writeReceiptFn?: typeof writeReceipt) => Promise<Receipt>;
export declare const updateReceipt: (receipt: Receipt, updates: Partial<Receipt>) => Promise<Receipt>;
export declare const codeSigningTask: (receipt: Receipt) => Promise<void>;
export declare const notarizationTask: (receipt: Receipt) => Promise<void>;
export declare function getCertTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare function getSecretTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare function getNotarizationCredentialsTask(receipt: Receipt): Promise<HsmSecretFile>;
export declare const handleNewFile: (requestPath: string) => Promise<void>;
export declare function doWatchFolder(_watchFolder: string, _options: typeof options): Promise<EventEmitter>;
export {};