@capgo/cli
Version:
A CLI to upload to capgo servers
76 lines (75 loc) • 2.83 kB
TypeScript
import type { CapgoCliInvokeOptions } from '../utils';
import { invokeCapgoCliApi } from '../utils';
export declare const MANIFEST_UPLOAD_PROTOCOL_VERSION: 1;
export type ManifestUploadAction = 'upload_if_doesnt_exist' | 'reuse' | 'upload';
export type ManifestUploadFileHashFormat = 'sha256_hex' | 'rsa_v2_base64' | 'rsa_v3_hex';
export interface ManifestUploadRequestEntry {
id: number;
file_name: string;
compression: 'none' | 'brotli';
file_hash: string;
uploaded_bytes_sha256: string;
uploaded_bytes_size: number;
}
export interface ManifestUploadRequest {
protocol_version: typeof MANIFEST_UPLOAD_PROTOCOL_VERSION;
version_id: number;
delta_encryption: {
enabled: boolean;
};
manifest_upload_auto_enabled: boolean;
file_hash_format: ManifestUploadFileHashFormat;
entries: ManifestUploadRequestEntry[];
}
interface ManifestUploadAuthorization {
type: 'header';
header_name: string;
token_prefix: string;
expires_at: number;
}
export interface ManifestUploadTarget {
id: string;
protocol: 'tus';
upload_url: string;
existence_check_url_prefix: string;
authorization: ManifestUploadAuthorization;
}
interface ManifestUploadResponseEntry {
id: number;
action?: ManifestUploadAction;
upload_target?: string;
s3_path?: string;
s3_path_suffix?: string;
upload_token?: string;
file_size_receipt?: string;
}
export interface ManifestUploadResponse {
protocol_version: number;
version_id: number;
default_action: ManifestUploadAction;
default_s3_path_prefix?: string;
default_upload_target?: string;
upload_targets: ManifestUploadTarget[];
entries: ManifestUploadResponseEntry[];
}
export interface ResolvedManifestUploadEntry {
request: ManifestUploadRequestEntry;
action: ManifestUploadAction;
s3Path: string;
uploadTarget?: ManifestUploadTarget;
uploadAuthorization?: {
headerName: string;
value: string;
};
fileSizeReceipt?: string;
}
export interface ResolvedManifestUpload {
response: ManifestUploadResponse;
entries: ResolvedManifestUploadEntry[];
}
export declare function manifestUploadFileHashFormat(encryptionEnabled: boolean, supportsHexChecksum: boolean): ManifestUploadFileHashFormat;
export declare function isManifestUploadAutoEnabled(userRequestedDelta: boolean, fullZipEnabled: boolean): boolean;
type ManifestUploadInvoke = typeof invokeCapgoCliApi;
export declare function resolveManifestUploadResponse(request: ManifestUploadRequest, input: unknown): ResolvedManifestUpload;
export declare function requestManifestUpload(apikey: string, request: ManifestUploadRequest, options?: Pick<CapgoCliInvokeOptions, 'supaHost' | 'supaAnon'>, invoke?: ManifestUploadInvoke): Promise<ResolvedManifestUpload>;
export {};