UNPKG

@huggingface/hub

Version:

Utilities to interact with the Hugging Face hub

1,218 lines (1,196 loc) 148 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/vendor/hash-wasm/sha256.js var import_meta, Module, sha256_default; var init_sha256 = __esm({ "src/vendor/hash-wasm/sha256.js"() { "use strict"; import_meta = {}; Module = (() => { var _unused = import_meta.url; return function(moduleArg = {}) { var Module2 = moduleArg; var readyPromiseResolve, readyPromiseReject; Module2["ready"] = new Promise((resolve3, reject) => { readyPromiseResolve = resolve3; readyPromiseReject = reject; }); var moduleOverrides = Object.assign({}, Module2); var arguments_ = []; var thisProgram = "./this.program"; var quit_ = (status, toThrow) => { throw toThrow; }; var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; var scriptDirectory = ""; function locateFile(path2) { if (Module2["locateFile"]) { return Module2["locateFile"](path2, scriptDirectory); } return scriptDirectory + path2; } var read_, readAsync, readBinary; if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (false) { scriptDirectory = false; } if (scriptDirectory.startsWith("blob:")) { scriptDirectory = ""; } else { scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); } { read_ = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array( /** @type{!ArrayBuffer} */ xhr.response ); }; } readAsync = (url, onload, onerror) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { onload(xhr.response); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; } } else { } var out = Module2["print"] || console.log.bind(console); var err = Module2["printErr"] || console.error.bind(console); Object.assign(Module2, moduleOverrides); moduleOverrides = null; if (Module2["arguments"]) arguments_ = Module2["arguments"]; if (Module2["thisProgram"]) thisProgram = Module2["thisProgram"]; if (Module2["quit"]) quit_ = Module2["quit"]; var wasmBinary; if (Module2["wasmBinary"]) wasmBinary = Module2["wasmBinary"]; if (typeof WebAssembly != "object") { abort("no native wasm support detected"); } function intArrayFromBase64(s) { var decoded = atob(s); var bytes = new Uint8Array(decoded.length); for (var i = 0; i < decoded.length; ++i) { bytes[i] = decoded.charCodeAt(i); } return bytes; } function tryParseAsDataURI(filename) { if (!isDataURI(filename)) { return; } return intArrayFromBase64(filename.slice(dataURIPrefix.length)); } var wasmMemory; var ABORT = false; var EXITSTATUS; function assert(condition, text) { if (!condition) { abort(text); } } var HEAP, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { var b = wasmMemory.buffer; Module2["HEAP8"] = HEAP8 = new Int8Array(b); Module2["HEAP16"] = HEAP16 = new Int16Array(b); Module2["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module2["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module2["HEAP32"] = HEAP32 = new Int32Array(b); Module2["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module2["HEAPF32"] = HEAPF32 = new Float32Array(b); Module2["HEAPF64"] = HEAPF64 = new Float64Array(b); } var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATEXIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; function preRun() { if (Module2["preRun"]) { if (typeof Module2["preRun"] == "function") Module2["preRun"] = [Module2["preRun"]]; while (Module2["preRun"].length) { addOnPreRun(Module2["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function postRun() { if (Module2["postRun"]) { if (typeof Module2["postRun"] == "function") Module2["postRun"] = [Module2["postRun"]]; while (Module2["postRun"].length) { addOnPostRun(Module2["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnExit(cb) { } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; Module2["monitorRunDependencies"]?.(runDependencies); } function removeRunDependency(id) { runDependencies--; Module2["monitorRunDependencies"]?.(runDependencies); if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { Module2["onAbort"]?.(what); what = "Aborted(" + what + ")"; err(what); ABORT = true; EXITSTATUS = 1; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var dataURIPrefix = "data:application/octet-stream;base64,"; var isDataURI = (filename) => filename.startsWith(dataURIPrefix); var isFileURI = (filename) => filename.startsWith("file://"); var wasmBinaryFile; wasmBinaryFile = "data:application/octet-stream;base64,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"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } function getBinarySync(file) { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } var binary = tryParseAsDataURI(file); if (binary) { return binary; } if (readBinary) { return readBinary(file); } throw "both async and sync fetching of the wasm failed"; } function getBinaryPromise(binaryFile) { return Promise.resolve().then(() => getBinarySync(binaryFile)); } function instantiateArrayBuffer(binaryFile, imports, receiver) { return getBinaryPromise(binaryFile).then((binary) => { return WebAssembly.instantiate(binary, imports); }).then(receiver, (reason) => { err(`failed to asynchronously prepare wasm: ${reason}`); abort(reason); }); } function instantiateAsync(binary, binaryFile, imports, callback) { return instantiateArrayBuffer(binaryFile, imports, callback); } function createWasm() { var info = { "env": wasmImports, "wasi_snapshot_preview1": wasmImports }; function receiveInstance(instance, module2) { wasmExports = instance.exports; wasmMemory = wasmExports["memory"]; updateMemoryViews(); addOnInit(wasmExports["__wasm_call_ctors"]); removeRunDependency("wasm-instantiate"); return wasmExports; } addRunDependency("wasm-instantiate"); function receiveInstantiationResult(result) { receiveInstance(result["instance"]); } if (Module2["instantiateWasm"]) { try { return Module2["instantiateWasm"](info, receiveInstance); } catch (e) { err(`Module.instantiateWasm callback failed with error: ${e}`); readyPromiseReject(e); } } instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; function ExitStatus(status) { this.name = "ExitStatus"; this.message = `Program terminated with exit(${status})`; this.status = status; } var callRuntimeCallbacks = (callbacks) => { while (callbacks.length > 0) { callbacks.shift()(Module2); } }; function getValue(ptr, type = "i8") { if (type.endsWith("*")) type = "*"; switch (type) { case "i1": return HEAP8[ptr]; case "i8": return HEAP8[ptr]; case "i16": return HEAP16[ptr >> 1]; case "i32": return HEAP32[ptr >> 2]; case "i64": abort("to do getValue(i64) use WASM_BIGINT"); case "float": return HEAPF32[ptr >> 2]; case "double": return HEAPF64[ptr >> 3]; case "*": return HEAPU32[ptr >> 2]; default: abort(`invalid type for getValue: ${type}`); } } var noExitRuntime = Module2["noExitRuntime"] || true; function setValue(ptr, value, type = "i8") { if (type.endsWith("*")) type = "*"; switch (type) { case "i1": HEAP8[ptr] = value; break; case "i8": HEAP8[ptr] = value; break; case "i16": HEAP16[ptr >> 1] = value; break; case "i32": HEAP32[ptr >> 2] = value; break; case "i64": abort("to do setValue(i64) use WASM_BIGINT"); case "float": HEAPF32[ptr >> 2] = value; break; case "double": HEAPF64[ptr >> 3] = value; break; case "*": HEAPU32[ptr >> 2] = value; break; default: abort(`invalid type for setValue: ${type}`); } } var wasmImports = {}; var wasmExports = createWasm(); var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["__wasm_call_ctors"])(); var _Hash_Update = Module2["_Hash_Update"] = (a0) => (_Hash_Update = Module2["_Hash_Update"] = wasmExports["Hash_Update"])(a0); var _Hash_Final = Module2["_Hash_Final"] = () => (_Hash_Final = Module2["_Hash_Final"] = wasmExports["Hash_Final"])(); var _Hash_Init = Module2["_Hash_Init"] = (a0) => (_Hash_Init = Module2["_Hash_Init"] = wasmExports["Hash_Init"])(a0); var _GetBufferPtr = Module2["_GetBufferPtr"] = () => (_GetBufferPtr = Module2["_GetBufferPtr"] = wasmExports["GetBufferPtr"])(); var stackSave = () => (stackSave = wasmExports["stackSave"])(); var stackRestore = (a0) => (stackRestore = wasmExports["stackRestore"])(a0); var stackAlloc = (a0) => (stackAlloc = wasmExports["stackAlloc"])(a0); var calledRun; dependenciesFulfilled = function runCaller() { if (!calledRun) run(); if (!calledRun) dependenciesFulfilled = runCaller; }; function run() { if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) { return; } function doRun() { if (calledRun) return; calledRun = true; Module2["calledRun"] = true; if (ABORT) return; initRuntime(); readyPromiseResolve(Module2); if (Module2["onRuntimeInitialized"]) Module2["onRuntimeInitialized"](); postRun(); } if (Module2["setStatus"]) { Module2["setStatus"]("Running..."); setTimeout(function() { setTimeout(function() { Module2["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } if (Module2["preInit"]) { if (typeof Module2["preInit"] == "function") Module2["preInit"] = [Module2["preInit"]]; while (Module2["preInit"].length > 0) { Module2["preInit"].pop()(); } } run(); return moduleArg.ready; }; })(); sha256_default = Module; } }); // src/vendor/hash-wasm/sha256-wrapper.ts var sha256_wrapper_exports = {}; __export(sha256_wrapper_exports, { createSHA256: () => createSHA256, createSHA256WorkerCode: () => createSHA256WorkerCode }); async function createSHA256(isInsideWorker = false) { const BUFFER_MAX_SIZE = 8 * 1024 * 1024; const wasm = isInsideWorker ? ( // @ts-expect-error WasmModule will be populated inside self object await self["SHA256WasmModule"]() ) : await sha256_default(); const heap = wasm.HEAPU8.subarray(wasm._GetBufferPtr()); return { init() { wasm._Hash_Init(256); }, update(data) { let byteUsed = 0; while (byteUsed < data.byteLength) { const bytesLeft = data.byteLength - byteUsed; const length = Math.min(bytesLeft, BUFFER_MAX_SIZE); heap.set(data.subarray(byteUsed, byteUsed + length)); wasm._Hash_Update(length); byteUsed += length; } }, digest(method) { if (method !== "hex") { throw new Error("Only digest hex is supported"); } wasm._Hash_Final(); const result = Array.from(heap.slice(0, 32)); return result.map((b) => b.toString(16).padStart(2, "0")).join(""); } }; } function createSHA256WorkerCode() { return ` self.addEventListener('message', async (event) => { const { file } = event.data; const sha256 = await self.createSHA256(true); sha256.init(); const reader = file.stream().getReader(); const total = file.size; let bytesDone = 0; while (true) { const { done, value } = await reader.read(); if (done) { break; } sha256.update(value); bytesDone += value.length; postMessage({ progress: bytesDone / total }); } postMessage({ sha256: sha256.digest('hex') }); }); self.SHA256WasmModule = ${sha256_default.toString()}; self.createSHA256 = ${createSHA256.toString()}; `; } var init_sha256_wrapper = __esm({ "src/vendor/hash-wasm/sha256-wrapper.ts"() { "use strict"; init_sha256(); } }); // src/utils/sha256-node.ts var sha256_node_exports = {}; __export(sha256_node_exports, { sha256Node: () => sha256Node }); async function* sha256Node(buffer, opts) { const sha256Stream = (0, import_node_crypto.createHash)("sha256"); const size = buffer instanceof Blob ? buffer.size : buffer.byteLength; let done = 0; const readable = buffer instanceof Blob ? import_node_stream.Readable.fromWeb(buffer.stream()) : import_node_stream.Readable.from(Buffer.from(buffer)); for await (const buffer2 of readable) { sha256Stream.update(buffer2); done += buffer2.length; yield done / size; opts?.abortSignal?.throwIfAborted(); } return sha256Stream.digest("hex"); } var import_node_stream, import_node_crypto; var init_sha256_node = __esm({ "src/utils/sha256-node.ts"() { "use strict"; import_node_stream = require("stream"); import_node_crypto = require("crypto"); } }); // src/utils/FileBlob.ts var FileBlob_exports = {}; __export(FileBlob_exports, { FileBlob: () => FileBlob }); var import_node_fs, import_promises2, import_node_stream2, import_node_url, FileBlob; var init_FileBlob = __esm({ "src/utils/FileBlob.ts"() { "use strict"; import_node_fs = require("fs"); import_promises2 = require("fs/promises"); import_node_stream2 = require("stream"); import_node_url = require("url"); FileBlob = class extends Blob { /** * Creates a new FileBlob on the provided file. * * @param path Path to the file to be lazy readed */ static async create(path2) { path2 = path2 instanceof URL ? (0, import_node_url.fileURLToPath)(path2) : path2; const { size } = await (0, import_promises2.stat)(path2); const fileBlob = new FileBlob(path2, 0, size); return fileBlob; } path; start; end; constructor(path2, start, end) { super(); this.path = path2; this.start = start; this.end = end; } /** * Returns the size of the blob. */ get size() { return this.end - this.start; } /** * Returns a new instance of FileBlob that is a slice of the current one. * * The slice is inclusive of the start and exclusive of the end. * * The slice method does not supports negative start/end. * * @param start beginning of the slice * @param end end of the slice */ slice(start = 0, end = this.size) { if (start < 0 || end < 0) { new TypeError("Unsupported negative start/end on FileBlob.slice"); } const slice = new FileBlob(this.path, this.start + start, Math.min(this.start + end, this.end)); return slice; } /** * Read the part of the file delimited by the FileBlob and returns it as an ArrayBuffer. */ async arrayBuffer() { const slice = await this.execute((file) => file.read(Buffer.alloc(this.size), 0, this.size, this.start)); return slice.buffer; } /** * Read the part of the file delimited by the FileBlob and returns it as a string. */ async text() { const buffer = await this.arrayBuffer(); return buffer.toString("utf8"); } /** * Returns a stream around the part of the file delimited by the FileBlob. */ stream() { return import_node_stream2.Readable.toWeb((0, import_node_fs.createReadStream)(this.path, { start: this.start, end: this.end - 1 })); } /** * We are opening and closing the file for each action to prevent file descriptor leaks. * * It is an intended choice of developer experience over performances. */ async execute(action) { const file = await (0, import_promises2.open)(this.path, "r"); try { return await action(file); } finally { await file.close(); } } }; } }); // src/utils/sub-paths.ts var sub_paths_exports = {}; __export(sub_paths_exports, { subPaths: () => subPaths }); async function subPaths(path2, maxDepth = 10) { const state = await (0, import_promises3.stat)(path2); if (!state.isDirectory()) { return [{ path: path2, relativePath: "." }]; } const files = await (0, import_promises3.readdir)(path2, { withFileTypes: true }); const ret = []; for (const file of files) { const filePath = (0, import_node_url2.pathToFileURL)((0, import_node_url2.fileURLToPath)(path2) + "/" + file.name); if (file.isDirectory()) { ret.push( ...(await subPaths(filePath, maxDepth - 1)).map((subPath) => ({ ...subPath, relativePath: `${file.name}/${subPath.relativePath}` })) ); } else { ret.push({ path: filePath, relativePath: file.name }); } } return ret; } var import_promises3, import_node_url2; var init_sub_paths = __esm({ "src/utils/sub-paths.ts"() { "use strict"; import_promises3 = require("fs/promises"); import_node_url2 = require("url"); } }); // index.ts var hub_exports = {}; __export(hub_exports, { DATASET_EXPANDABLE_KEYS: () => DATASET_EXPANDABLE_KEYS, DATASET_EXPAND_KEYS: () => DATASET_EXPAND_KEYS, DEFAULT_REVISION: () => DEFAULT_REVISION, HUB_URL: () => HUB_URL, HubApiError: () => HubApiError, InvalidApiResponseFormatError: () => InvalidApiResponseFormatError, MODEL_EXPANDABLE_KEYS: () => MODEL_EXPANDABLE_KEYS, MODEL_EXPAND_KEYS: () => MODEL_EXPAND_KEYS, REGEX_COMMIT_HASH: () => REGEX_COMMIT_HASH, REPO_ID_SEPARATOR: () => REPO_ID_SEPARATOR, RE_SAFETENSORS_FILE: () => RE_SAFETENSORS_FILE, RE_SAFETENSORS_INDEX_FILE: () => RE_SAFETENSORS_INDEX_FILE, RE_SAFETENSORS_SHARD_FILE: () => RE_SAFETENSORS_SHARD_FILE, SAFETENSORS_FILE: () => SAFETENSORS_FILE, SAFETENSORS_INDEX_FILE: () => SAFETENSORS_INDEX_FILE, SPACE_EXPANDABLE_KEYS: () => SPACE_EXPANDABLE_KEYS, SPACE_EXPAND_KEYS: () => SPACE_EXPAND_KEYS, __internal_XetBlob: () => XetBlob, __internal_sha256: () => sha256, checkRepoAccess: () => checkRepoAccess, commit: () => commit, commitIter: () => commitIter, countCommits: () => countCommits, createBranch: () => createBranch, createCollection: () => createCollection, createRepo: () => createRepo, datasetInfo: () => datasetInfo, deleteBranch: () => deleteBranch, deleteCollection: () => deleteCollection, deleteFile: () => deleteFile, deleteFiles: () => deleteFiles, deleteRepo: () => deleteRepo, downloadFile: () => downloadFile, downloadFileToCacheDir: () => downloadFileToCacheDir, fileDownloadInfo: () => fileDownloadInfo, fileExists: () => fileExists, getBlobStat: () => getBlobStat, getHFHubCachePath: () => getHFHubCachePath, getRepoFolderName: () => getRepoFolderName, listCollections: () => listCollections, listCommits: () => listCommits, listDatasets: () => listDatasets, listFiles: () => listFiles, listModels: () => listModels, listSpaces: () => listSpaces, modelInfo: () => modelInfo, oauthHandleRedirect: () => oauthHandleRedirect, oauthHandleRedirectIfPresent: () => oauthHandleRedirectIfPresent, oauthLoginUrl: () => oauthLoginUrl, parseRepoType: () => parseRepoType, parseSafetensorsMetadata: () => parseSafetensorsMetadata, parseSafetensorsShardFilename: () => parseSafetensorsShardFilename, pathsInfo: () => pathsInfo, repoExists: () => repoExists, scanCacheDir: () => scanCacheDir, scanCachedRepo: () => scanCachedRepo, scanRefsDir: () => scanRefsDir, scanSnapshotDir: () => scanSnapshotDir, snapshotDownload: () => snapshotDownload, spaceInfo: () => spaceInfo, uploadFile: () => uploadFile, uploadFiles: () => uploadFiles, uploadFilesWithProgress: () => uploadFilesWithProgress, whoAmI: () => whoAmI }); module.exports = __toCommonJS(hub_exports); // src/lib/cache-management.ts var import_node_os = require("os"); var import_node_path = require("path"); var import_promises = require("fs/promises"); function getDefaultHome() { return (0, import_node_path.join)((0, import_node_os.homedir)(), ".cache"); } function getDefaultCachePath() { return (0, import_node_path.join)(process.env["HF_HOME"] ?? (0, import_node_path.join)(process.env["XDG_CACHE_HOME"] ?? getDefaultHome(), "huggingface"), "hub"); } function getHuggingFaceHubCache() { return process.env["HUGGINGFACE_HUB_CACHE"] ?? getDefaultCachePath(); } function getHFHubCachePath() { return process.env["HF_HUB_CACHE"] ?? getHuggingFaceHubCache(); } var FILES_TO_IGNORE = [".DS_Store"]; var REPO_ID_SEPARATOR = "--"; function getRepoFolderName({ name, type }) { const parts = [`${type}s`, ...name.split("/")]; return parts.join(REPO_ID_SEPARATOR); } async function scanCacheDir(cacheDir = void 0) { if (!cacheDir) cacheDir = getHFHubCachePath(); const s = await (0, import_promises.stat)(cacheDir); if (!s.isDirectory()) { throw new Error( `Scan cache expects a directory but found a file: ${cacheDir}. Please use \`cacheDir\` argument or set \`HF_HUB_CACHE\` environment variable.` ); } const repos = []; const warnings = []; const directories = await (0, import_promises.readdir)(cacheDir); for (const repo of directories) { if (repo === ".locks") continue; const absolute = (0, import_node_path.join)(cacheDir, repo); const s2 = await (0, import_promises.stat)(absolute); if (!s2.isDirectory()) { continue; } try { const cached = await scanCachedRepo(absolute); repos.push(cached); } catch (err) { warnings.push(err); } } return { repos, size: [...repos.values()].reduce((sum, repo) => sum + repo.size, 0), warnings }; } async function scanCachedRepo(repoPath) { const name = (0, import_node_path.basename)(repoPath); if (!name.includes(REPO_ID_SEPARATOR)) { throw new Error(`Repo path is not a valid HuggingFace cache directory: ${name}`); } const [type, ...remaining] = name.split(REPO_ID_SEPARATOR); const repoType = parseRepoType(type); const repoId = remaining.join("/"); const snapshotsPath = (0, import_node_path.join)(repoPath, "snapshots"); const refsPath = (0, import_node_path.join)(repoPath, "refs"); const snapshotStat = await (0, import_promises.stat)(snapshotsPath); if (!snapshotStat.isDirectory()) { throw new Error(`Snapshots dir doesn't exist in cached repo ${snapshotsPath}`); } const refsByHash = /* @__PURE__ */ new Map(); const refsStat = await (0, import_promises.stat)(refsPath); if (refsStat.isDirectory()) { await scanRefsDir(refsPath, refsByHash); } const cachedRevisions = []; const blobStats = /* @__PURE__ */ new Map(); const snapshotDirs = await (0, import_promises.readdir)(snapshotsPath); for (const dir of snapshotDirs) { if (FILES_TO_IGNORE.includes(dir)) continue; const revisionPath = (0, import_node_path.join)(snapshotsPath, dir); const revisionStat = await (0, import_promises.stat)(revisionPath); if (!revisionStat.isDirectory()) { throw new Error(`Snapshots folder corrupted. Found a file: ${revisionPath}`); } const cachedFiles = []; await scanSnapshotDir(revisionPath, cachedFiles, blobStats); const revisionLastModified = cachedFiles.length > 0 ? Math.max(...[...cachedFiles].map((file) => file.blob.lastModifiedAt.getTime())) : revisionStat.mtimeMs; cachedRevisions.push({ commitOid: dir, files: cachedFiles, refs: refsByHash.get(dir) || [], size: [...cachedFiles].reduce((sum, file) => sum + file.blob.size, 0), path: revisionPath, lastModifiedAt: new Date(revisionLastModified) }); refsByHash.delete(dir); } if (refsByHash.size > 0) { throw new Error( `Reference(s) refer to missing commit hashes: ${JSON.stringify(Object.fromEntries(refsByHash))} (${repoPath})` ); } const repoStats = await (0, import_promises.stat)(repoPath); const repoLastAccessed = blobStats.size > 0 ? Math.max(...[...blobStats.values()].map((stat5) => stat5.atimeMs)) : repoStats.atimeMs; const repoLastModified = blobStats.size > 0 ? Math.max(...[...blobStats.values()].map((stat5) => stat5.mtimeMs)) : repoStats.mtimeMs; return { id: { name: repoId, type: repoType }, path: repoPath, filesCount: blobStats.size, revisions: cachedRevisions, size: [...blobStats.values()].reduce((sum, stat5) => sum + stat5.size, 0), lastAccessedAt: new Date(repoLastAccessed), lastModifiedAt: new Date(repoLastModified) }; } async function scanRefsDir(refsPath, refsByHash) { const refFiles = await (0, import_promises.readdir)(refsPath, { withFileTypes: true }); for (const refFile of refFiles) { const refFilePath = (0, import_node_path.join)(refsPath, refFile.name); if (refFile.isDirectory()) continue; const commitHash = await (0, import_promises.readFile)(refFilePath, "utf-8"); const refName = refFile.name; if (!refsByHash.has(commitHash)) { refsByHash.set(commitHash, []); } refsByHash.get(commitHash)?.push(refName); } } async function scanSnapshotDir(revisionPath, cachedFiles, blobStats) { const files = await (0, import_promises.readdir)(revisionPath, { withFileTypes: true }); for (const file of files) { if (file.isDirectory()) continue; const filePath = (0, import_node_path.join)(revisionPath, file.name); const blobPath = await (0, import_promises.realpath)(filePath); const blobStat = await getBlobStat(blobPath, blobStats); cachedFiles.push({ path: filePath, blob: { path: blobPath, size: blobStat.size, lastAccessedAt: new Date(blobStat.atimeMs), lastModifiedAt: new Date(blobStat.mtimeMs) } }); } } async function getBlobStat(blobPath, blobStats) { const blob = blobStats.get(blobPath); if (!blob) { const statResult = await (0, import_promises.lstat)(blobPath); blobStats.set(blobPath, statResult); return statResult; } return blob; } function parseRepoType(type) { switch (type) { case "models": return "model"; case "datasets": return "dataset"; case "spaces": return "space"; default: throw new TypeError(`Invalid repo type: ${type}`); } } // src/consts.ts var HUB_URL = "https://huggingface.co"; // src/error.ts async function createApiError(response, opts) { const error = new HubApiError(response.url, response.status, response.headers.get("X-Request-Id") ?? opts?.requestId); error.message = `Api error with status ${error.statusCode}${opts?.message ? `. ${opts.message}` : ""}`; const trailer = [`URL: ${error.url}`, error.requestId ? `Request ID: ${error.requestId}` : void 0].filter(Boolean).join(". "); if (response.headers.get("Content-Type")?.startsWith("application/json")) { const json = await response.json(); error.message = json.error || json.message || error.message; if (json.error_description) { error.message = error.message ? error.message + `: ${json.error_description}` : json.error_description; } error.data = json; } else { error.data = { message: await response.text() }; } error.message += `. ${trailer}`; throw error; } var HubApiError = class extends Error { statusCode; url; requestId; data; constructor(url, statusCode, requestId, message) { super(message); this.statusCode = statusCode; this.requestId = requestId; this.url = url; } }; var InvalidApiResponseFormatError = class extends Error { }; // src/utils/checkCredentials.ts function checkAccessToken(accessToken) { if (!accessToken.startsWith("hf_")) { throw new TypeError("Your access token must start with 'hf_'"); } } function checkCredentials(params) { if (params.accessToken) { checkAccessToken(params.accessToken); return params.accessToken; } if (params.credentials?.accessToken) { checkAccessToken(params.credentials.accessToken); return params.credentials.accessToken; } } // src/utils/toRepoId.ts function toRepoId(repo) { if (typeof repo !== "string") { return repo; } if (repo.startsWith("model/") || repo.startsWith("models/")) { throw new TypeError( "A repo designation for a model should not start with 'models/', directly specify the model namespace / name" ); } if (repo.startsWith("space/")) { throw new TypeError("Spaces should start with 'spaces/', plural, not 'space/'"); } if (repo.startsWith("dataset/")) { throw new TypeError("Datasets should start with 'dataset/', plural, not 'dataset/'"); } const slashes = repo.split("/").length - 1; if (repo.startsWith("spaces/")) { if (slashes !== 2) { throw new TypeError("Space Id must include namespace and name of the space"); } return { type: "space", name: repo.slice("spaces/".length) }; } if (repo.startsWith("datasets/")) { if (slashes > 2) { throw new TypeError("Too many slashes in repo designation: " + repo); } return { type: "dataset", name: repo.slice("datasets/".length) }; } if (slashes > 1) { throw new TypeError("Too many slashes in repo designation: " + repo); } return { type: "model", name: repo }; } // src/lib/check-repo-access.ts async function checkRepoAccess(params) { const accessToken = params && checkCredentials(params); const repoId = toRepoId(params.repo); const response = await (params.fetch || fetch)(`${params?.hubUrl || HUB_URL}/api/${repoId.type}s/${repoId.name}`, { headers: { ...accessToken ? { Authorization: `Bearer ${accessToken}` } : {} } }); if (!response.ok) { throw await createApiError(response); } } // src/utils/range.ts function range(n, b) { return b ? Array(b - n).fill(0).map((_, i) => n + i) : Array(n).fill(0).map((_, i) => i); } // src/utils/chunk.ts function chunk(arr, chunkSize) { if (isNaN(chunkSize) || chunkSize < 1) { throw new RangeError("Invalid chunk size: " + chunkSize); } if (!arr.length) { return []; } if (arr.length <= chunkSize) { return [arr]; } return range(Math.ceil(arr.length / chunkSize)).map((i) => { return arr.slice(i * chunkSize, (i + 1) * chunkSize); }); } // src/utils/promisesQueue.ts async function promisesQueue(factories, concurrency) { const results = []; const executing = /* @__PURE__ */ new Set(); let index = 0; for (const factory of factories) { const closureIndex = index++; const e = factory().then((r) => { results[closureIndex] = r; executing.delete(e); }); executing.add(e); if (executing.size >= concurrency) { await Promise.race(executing); } } await Promise.all(executing); return results; } // src/utils/promisesQueueStreaming.ts async function promisesQueueStreaming(factories, concurrency) { const executing = []; for await (const factory of factories) { const e = factory().then(() => { executing.splice(executing.indexOf(e), 1); }); executing.push(e); if (executing.length >= concurrency) { await Promise.race(executing); } } await Promise.all(executing); } // src/utils/eventToGenerator.ts async function* eventToGenerator(cb) { const promises = []; function addPromise() { let resolve3; let reject; const p = new Promise((res, rej) => { resolve3 = res; reject = rej; }); promises.push({ p, resolve: resolve3, reject }); } addPromise(); const callbackRes = Promise.resolve().then( () => cb( (y) => { addPromise(); promises.at(-2)?.resolve({ done: false, value: y }); }, (r) => { addPromise(); promises.at(-2)?.resolve({ done: true, value: r }); }, (err) => promises.shift()?.reject(err) ) ).catch((err) => promises.shift()?.reject(err)); while (1) { const p = promises[0]; if (!p) { throw new Error("Logic error in eventGenerator, promises should never be empty"); } const result = await p.p; promises.shift(); if (result.done) { await callbackRes; return result.value; } yield result.value; } throw new Error("Unreachable"); } // src/utils/hexFromBytes.ts function hexFromBytes(arr) { if (globalThis.Buffer) { return globalThis.Buffer.from(arr).toString("hex"); } else { const bin = []; arr.forEach((byte) => { bin.push(byte.toString(16).padStart(2, "0")); }); return bin.join(""); } } // src/utils/isBackend.ts var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined"; var isWebWorker = typeof self === "object" && self.constructor && self.constructor.name === "DedicatedWorkerGlobalScope"; var isBackend = !isBrowser && !isWebWorker; // src/utils/isFrontend.ts var isFrontend = !isBackend; // src/utils/sha256.ts async function getWebWorkerCode() { const sha256Module = await Promise.resolve().then(() => (init_sha256_wrapper(), sha256_wrapper_exports)); return URL.createObjectURL(new Blob([sha256Module.createSHA256WorkerCode()])); } var pendingWorkers = []; var runningWorkers = /* @__PURE__ */ new Set(); var resolve; var waitPromise = new Promise((r) => { resolve = r; }); async function getWorker(poolSize) { { const worker2 = pendingWorkers.pop(); if (worker2) { runningWorkers.add(worker2); return worker2; } } if (!poolSize) { const worker2 = new Worker(await getWebWorkerCode()); runningWorkers.add(worker2); return worker2; } if (poolSize <= 0) { throw new TypeError("Invalid webworker pool size: " + poolSize); } while (runningWorkers.size >= poolSize) { await waitPromise; } const worker = new Worker(await getWebWorkerCode()); runningWorkers.add(worker); return worker; } async function freeWorker(worker, poolSize) { if (!poolSize) { return destroyWorker(worker); } runningWorkers.delete(worker); pendingWorkers.push(worker); const r = resolve; waitPromise = new Promise((r2) => { resolve = r2; }); r(); } function destroyWorker(worker) { runningWorkers.delete(worker); worker.terminate(); const r = resolve; waitPromise = new Promise((r2) => { resolve = r2; }); r(); } async function* sha256(buffer, opts) { yield 0; const maxCryptoSize = typeof opts?.useWebWorker === "object" && opts?.useWebWorker.minSize !== void 0 ? opts.useWebWorker.minSize : 1e7; if (buffer.size < maxCryptoSize && globalThis.crypto?.subtle) { const res = hexFromBytes( new Uint8Array( await globalThis.crypto.subtle.digest("SHA-256", buffer instanceof Blob ? await buffer.arrayBuffer() : buffer) ) ); yield 1; return res; } if (isFrontend) { if (opts?.useWebWorker) { try { const poolSize = typeof opts?.useWebWorker === "object" ? opts.useWebWorker.poolSize : void 0; const worker = await getWorker(poolSize); let messageHandler; let errorHandler; const cleanup = () => { worker.removeEventListener("message", messageHandler); worker.removeEventListener("error", errorHandler); }; return yield* eventToGenerator((yieldCallback, returnCallback, rejectCallback) => { messageHandler = (event) => { if (event.data.sha256) {