Spaces:
Sleeping
Sleeping
File size: 4,062 Bytes
0865492 | 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | import type { CredentialsParams, RepoDesignation } from "../types/public";
export interface CommitDeletedEntry {
operation: "delete";
path: string;
}
export type ContentSource = Blob | URL;
export interface CommitFile {
operation: "addOrUpdate";
path: string;
content: ContentSource;
}
/**
* Opitmized when only the beginning or the end of the file is replaced
*
* todo: handle other cases
*/
export interface CommitEditFile {
operation: "edit";
path: string;
/** Later, will be ContentSource. For now simpler to just handle blobs */
originalContent: Blob;
edits: Array<{
/**
* Later, will be ContentSource. For now simpler to just handle blobs
*
* originalContent from [start, end) will be replaced by this
*/
content: Blob;
/**
* The start position of the edit in the original content
*/
start: number;
/**
* The end position of the edit in the original content
*
* originalContent from [start, end) will be replaced by the edit
*/
end: number;
}>;
}
/**
* Server-side copy of a file from a source repo/bucket to the destination repo.
*
* Only supported when the destination repo is a bucket. The source file must be xet-backed,
* so the caller is responsible for resolving the source path to its {@link sourceXetHash}
* (typically via {@link pathsInfo} or {@link listFiles}).
*
* For higher-level helpers that perform the resolution and handle non-xet source files,
* see {@link copyFile}, {@link copyFiles} and {@link copyFolder}.
*/
export interface CommitCopyFile {
operation: "copy";
path: string;
sourceXetHash: string;
sourceRepo: RepoDesignation;
}
export type CommitOperation = CommitDeletedEntry | CommitFile | CommitEditFile | CommitCopyFile;
export type CommitParams = {
title: string;
description?: string;
repo: RepoDesignation;
operations: CommitOperation[];
/** @default "main" */
branch?: string;
/**
* Parent commit. Optional
*
* - When opening a PR: will use parentCommit as the parent commit
* - When committing on a branch: Will make sure that there were no intermediate commits
*/
parentCommit?: string;
isPullRequest?: boolean;
hubUrl?: string;
/**
* Whether to use web workers to compute SHA256 hashes.
*
* @default false
*/
useWebWorkers?: boolean | {
minSize?: number;
poolSize?: number;
};
/**
* Maximum depth of folders to upload. Files deeper than this will be ignored
*
* @default 5
*/
maxFolderDepth?: number;
/**
* Custom fetch function to use instead of the default one, for example to use a proxy or edit headers.
*/
fetch?: typeof fetch;
abortSignal?: AbortSignal;
/**
* @default true
*
* Use xet protocol: https://huggingface.co/blog/xet-on-the-hub to upload, rather than a basic S3 PUT
*/
useXet?: boolean;
} & Partial<CredentialsParams>;
export interface CommitOutput {
pullRequestUrl?: string;
commit: {
oid: string;
url: string;
};
hookOutput: string;
}
export type CommitProgressEvent = {
event: "phase";
phase: "preuploading" | "uploadingLargeFiles" | "committing";
} | {
event: "fileProgress";
path: string;
progress: number;
state: "hashing" | "uploading" | "error";
};
/**
* Internal function for now, used by commit.
*
* Can be exposed later to offer fine-tuned progress info
*
* CommitOutput is not present for bucket commits
*/
export declare function commitIter(params: CommitParams): AsyncGenerator<CommitProgressEvent, CommitOutput | undefined>;
export declare function commitIterBucket(params: CommitParams): AsyncGenerator<CommitProgressEvent>;
/**
* @returns undefined for bucket uploads, CommitOutput otherwise
*/
export declare function commit(params: CommitParams): Promise<CommitOutput | undefined>;
//# sourceMappingURL=commit.d.ts.map |