{"version":3,"mappings":"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","names":["__defProp","__defNormalProp","obj","key","value","__publicField","fn","semiver$1","a","b","bool","CONFIG_URL","API_INFO_URL","SPACE_FETCHER_URL","QUEUE_FULL_MSG","BROKEN_CONNECTION_MSG","resolve_root","base_url","root_path","prioritize_base","get_jwt","space","token","e","map_names_to_ids","fns","apis","api_name","resolve_config","endpoint","headers","path","config","config_root","response","determine_protocol","protocol","host","RE_SPACE_NAME","RE_SPACE_DOMAIN","process_endpoint","app_reference","hf_token","_app_reference","res","_host","ws_protocol","http_protocol","transform_api_info","api_info","api_map","transformed_info","category","parameters","returns","dependencyIndex","dep","dependencyTypes","transform_type","data","component","serializer","signature_type","get_description","get_type","p","r","type","handle_message","last_status","view_api","upload_files","root_url","files","upload_id","chunkSize","uploadResponses","i","chunk","formData","file","upload_url","output","update_object","object","newValue","stack","key2","walk_and_store_blobs","param","root","endpoint_info","blob_refs","item","_a","new_path","array_refs","NodeBlob","skip_queue","id","_b","_c","_d","post_message","message","origin","_rej","channel","upload","file_data","max_file_size","upload_fn","file_data2","oversized_files","f","FileData","prepare_files","is_stream","url","orig_name","size","blob","mime_type","alt_text","handle_blob","self","blobRefs","file_url","name","post_data","body","additional_headers","status","predict","data_returned","status_complete","dependency","trimmed_endpoint","resolve","reject","app","result","d","check_space_status","status_callback","_status","stage","space_name","discussions_enabled","RE_DISABLED_DISCUSSION","space_id","error","get_space_hardware","hardware","set_space_timeout","timeout","hardware_types","duplicate","options","_private","v","user","original_hardware","requested_hardware","Client","duplicated_space","open_stream","event_callbacks","unclosed_events","pending_stream_messages","stream_status","event_source","params","event","_data","close_stream","event_id","event_id2","fn2","apply_diff_stream","pending_diff_streams","new_data","apply_diff","diff","action","apply_edit","target","current","last_path","submit","event_data","trigger_id","fire_event","listeners","listener_map","l","on","eventType","listener","narrowed_listener_map","off","cancel","destroy","event_type","fetch_implementation","session_hash","post_data2","fn_index","get_endpoint_info","websocket","_endpoint","payload","complete","url_params","cancel_request","_payload","status_code","data2","evt","_","status2","hostname","callback","msg","blobParts","input","init","ws","n","heartbeat_url","client2","_config","component_id","fn_name","comp","supports_adopted_stylesheets","mount_css","base","_url","link","rej","prefix_css","string","version","style_element","stylesheet","importString","match","rules","css_string","gradio_css_infix","rule","is_dark_rule","selector","new_selector","s","mediaCssString","j","innerRule","ENTRY_CSS","FONTS","IndexComponent","_res","pending","get_index","create_custom_element","o","svelte","GradioApp","mutations","old_val","new_val"],"ignoreList":[],"sources":["../../../../client/js/dist/index.js","../../../../js/app/src/css.ts","../../../../js/app/src/main.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar fn = new Intl.Collator(0, { numeric: 1 }).compare;\nfunction semiver$1(a, b, bool) {\n a = a.split(\".\");\n b = b.split(\".\");\n return fn(a[0], b[0]) || fn(a[1], b[1]) || (b[2] = b.slice(2).join(\".\"), bool = /[.-]/.test(a[2] = a.slice(2).join(\".\")), bool == /[.-]/.test(b[2]) ? fn(a[2], b[2]) : bool ? -1 : 1);\n}\nconst CONFIG_URL = \"config\";\nconst API_INFO_URL = \"info\";\nconst SPACE_FETCHER_URL = \"https://gradio-space-api-fetcher-v2.hf.space/api\";\nconst QUEUE_FULL_MSG = \"This application is too busy. Keep trying!\";\nconst BROKEN_CONNECTION_MSG = \"Connection errored out.\";\nfunction resolve_root(base_url, root_path, prioritize_base) {\n if (root_path.startsWith(\"http://\") || root_path.startsWith(\"https://\")) {\n return prioritize_base ? base_url : root_path;\n }\n return base_url + root_path;\n}\nasync function get_jwt(space, token) {\n try {\n const r = await fetch(`https://huggingface.co/api/spaces/${space}/jwt`, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n const jwt = (await r.json()).token;\n return jwt || false;\n } catch (e) {\n console.error(e);\n return false;\n }\n}\nfunction map_names_to_ids(fns) {\n let apis = {};\n fns.forEach(({ api_name }, i) => {\n if (api_name)\n apis[api_name] = i;\n });\n return apis;\n}\nasync function resolve_config(endpoint) {\n const headers = this.options.hf_token ? { Authorization: `Bearer ${this.options.hf_token}` } : {};\n headers[\"Content-Type\"] = \"application/json\";\n if (typeof window !== \"undefined\" && window.gradio_config && location.origin !== \"http://localhost:9876\" && !window.gradio_config.dev_mode) {\n const path = window.gradio_config.root;\n const config = window.gradio_config;\n let config_root = resolve_root(endpoint, config.root, false);\n config.root = config_root;\n return { ...config, path };\n } else if (endpoint) {\n const response = await this.fetch_implementation(\n `${endpoint}/${CONFIG_URL}`,\n {\n headers\n }\n );\n if ((response == null ? void 0 : response.status) === 200) {\n let config = await response.json();\n config.path = config.path ?? \"\";\n config.root = endpoint;\n return config;\n }\n throw new Error(\"Could not get config.\");\n }\n throw new Error(\"No config or app endpoint found\");\n}\nfunction determine_protocol(endpoint) {\n if (endpoint.startsWith(\"http\")) {\n const { protocol, host } = new URL(endpoint);\n if (host.endsWith(\"hf.space\")) {\n return {\n ws_protocol: \"wss\",\n host,\n http_protocol: protocol\n };\n }\n return {\n ws_protocol: protocol === \"https:\" ? \"wss\" : \"ws\",\n http_protocol: protocol,\n host\n };\n } else if (endpoint.startsWith(\"file:\")) {\n return {\n ws_protocol: \"ws\",\n http_protocol: \"http:\",\n host: \"lite.local\"\n // Special fake hostname only used for this case. This matches the hostname allowed in `is_self_host()` in `js/wasm/network/host.ts`.\n };\n }\n return {\n ws_protocol: \"wss\",\n http_protocol: \"https:\",\n host: endpoint\n };\n}\nconst RE_SPACE_NAME = /^[^\\/]*\\/[^\\/]*$/;\nconst RE_SPACE_DOMAIN = /.*hf\\.space\\/{0,1}$/;\nasync function process_endpoint(app_reference, hf_token) {\n const headers = {};\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n const _app_reference = app_reference.trim();\n if (RE_SPACE_NAME.test(_app_reference)) {\n try {\n const res = await fetch(\n `https://huggingface.co/api/spaces/${_app_reference}/host`,\n { headers }\n );\n if (res.status !== 200)\n throw new Error(\"Space metadata could not be loaded.\");\n const _host = (await res.json()).host;\n return {\n space_id: app_reference,\n ...determine_protocol(_host)\n };\n } catch (e) {\n throw new Error(\"Space metadata could not be loaded.\" + e.message);\n }\n }\n if (RE_SPACE_DOMAIN.test(_app_reference)) {\n const { ws_protocol, http_protocol, host } = determine_protocol(_app_reference);\n return {\n space_id: host.replace(\".hf.space\", \"\"),\n ws_protocol,\n http_protocol,\n host\n };\n }\n return {\n space_id: false,\n ...determine_protocol(_app_reference)\n };\n}\nfunction transform_api_info(api_info, config, api_map) {\n const transformed_info = {\n named_endpoints: {},\n unnamed_endpoints: {}\n };\n Object.keys(api_info).forEach((category) => {\n if (category === \"named_endpoints\" || category === \"unnamed_endpoints\") {\n transformed_info[category] = {};\n Object.entries(api_info[category]).forEach(\n ([endpoint, { parameters, returns }]) => {\n const dependencyIndex = config.dependencies.findIndex((dep) => dep.api_name === endpoint) || api_map[endpoint.replace(\"/\", \"\")] || -1;\n const dependencyTypes = dependencyIndex !== -1 ? config.dependencies[dependencyIndex].types : { continuous: false, generator: false };\n const transform_type = (data, component, serializer, signature_type) => ({\n ...data,\n description: get_description(data.type, serializer),\n type: get_type(data.type, component, serializer, signature_type) || \"\"\n });\n transformed_info[category][endpoint] = {\n parameters: parameters.map(\n (p) => transform_type(p, p.component, p.serializer, \"parameter\")\n ),\n returns: returns.map(\n (r) => transform_type(r, r.component, r.serializer, \"return\")\n ),\n type: dependencyTypes\n };\n }\n );\n }\n });\n return transformed_info;\n}\nfunction get_type(type, component, serializer, signature_type) {\n switch (type.type) {\n case \"string\":\n return \"string\";\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n }\n if (serializer === \"JSONSerializable\" || serializer === \"StringSerializable\") {\n return \"any\";\n } else if (serializer === \"ListStringSerializable\") {\n return \"string[]\";\n } else if (component === \"Image\") {\n return signature_type === \"parameter\" ? \"Blob | File | Buffer\" : \"string\";\n } else if (serializer === \"FileSerializable\") {\n if ((type == null ? void 0 : type.type) === \"array\") {\n return signature_type === \"parameter\" ? \"(Blob | File | Buffer)[]\" : `{ name: string; data: string; size?: number; is_file?: boolean; orig_name?: string}[]`;\n }\n return signature_type === \"parameter\" ? \"Blob | File | Buffer\" : `{ name: string; data: string; size?: number; is_file?: boolean; orig_name?: string}`;\n } else if (serializer === \"GallerySerializable\") {\n return signature_type === \"parameter\" ? \"[(Blob | File | Buffer), (string | null)][]\" : `[{ name: string; data: string; size?: number; is_file?: boolean; orig_name?: string}, (string | null))][]`;\n }\n}\nfunction get_description(type, serializer) {\n if (serializer === \"GallerySerializable\") {\n return \"array of [file, label] tuples\";\n } else if (serializer === \"ListStringSerializable\") {\n return \"array of strings\";\n } else if (serializer === \"FileSerializable\") {\n return \"array of files or single file\";\n }\n return type.description;\n}\nfunction handle_message(data, last_status) {\n const queue = true;\n switch (data.msg) {\n case \"send_data\":\n return { type: \"data\" };\n case \"send_hash\":\n return { type: \"hash\" };\n case \"queue_full\":\n return {\n type: \"update\",\n status: {\n queue,\n message: QUEUE_FULL_MSG,\n stage: \"error\",\n code: data.code,\n success: data.success\n }\n };\n case \"heartbeat\":\n return {\n type: \"heartbeat\"\n };\n case \"unexpected_error\":\n return {\n type: \"unexpected_error\",\n status: {\n queue,\n message: data.message,\n stage: \"error\",\n success: false\n }\n };\n case \"estimation\":\n return {\n type: \"update\",\n status: {\n queue,\n stage: last_status || \"pending\",\n code: data.code,\n size: data.queue_size,\n position: data.rank,\n eta: data.rank_eta,\n success: data.success\n }\n };\n case \"progress\":\n return {\n type: \"update\",\n status: {\n queue,\n stage: \"pending\",\n code: data.code,\n progress_data: data.progress_data,\n success: data.success\n }\n };\n case \"log\":\n return { type: \"log\", data };\n case \"process_generating\":\n return {\n type: \"generating\",\n status: {\n queue,\n message: !data.success ? data.output.error : null,\n stage: data.success ? \"generating\" : \"error\",\n code: data.code,\n progress_data: data.progress_data,\n eta: data.average_duration\n },\n data: data.success ? data.output : null\n };\n case \"process_completed\":\n if (\"error\" in data.output) {\n return {\n type: \"update\",\n status: {\n queue,\n message: data.output.error,\n stage: \"error\",\n code: data.code,\n success: data.success\n }\n };\n }\n return {\n type: \"complete\",\n status: {\n queue,\n message: !data.success ? data.output.error : void 0,\n stage: data.success ? \"complete\" : \"error\",\n code: data.code,\n progress_data: data.progress_data\n },\n data: data.success ? data.output : null\n };\n case \"process_starts\":\n return {\n type: \"update\",\n status: {\n queue,\n stage: \"pending\",\n code: data.code,\n size: data.rank,\n position: 0,\n success: data.success,\n eta: data.eta\n }\n };\n }\n return { type: \"none\", status: { stage: \"error\", queue } };\n}\nasync function view_api() {\n if (this.api_info)\n return this.api_info;\n const { hf_token } = this.options;\n const { config } = this;\n const headers = { \"Content-Type\": \"application/json\" };\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n if (!config) {\n return;\n }\n try {\n let response;\n if (semiver$1((config == null ? void 0 : config.version) || \"2.0.0\", \"3.30\") < 0) {\n response = await this.fetch_implementation(SPACE_FETCHER_URL, {\n method: \"POST\",\n body: JSON.stringify({\n serialize: false,\n config: JSON.stringify(config)\n }),\n headers\n });\n } else {\n response = await this.fetch_implementation(\n `${config == null ? void 0 : config.root}/${API_INFO_URL}`,\n {\n headers\n }\n );\n }\n if (!response.ok) {\n throw new Error(BROKEN_CONNECTION_MSG);\n }\n let api_info = await response.json();\n if (\"api\" in api_info) {\n api_info = api_info.api;\n }\n if (api_info.named_endpoints[\"/predict\"] && !api_info.unnamed_endpoints[\"0\"]) {\n api_info.unnamed_endpoints[0] = api_info.named_endpoints[\"/predict\"];\n }\n return transform_api_info(api_info, config, this.api_map);\n } catch (e) {\n \"Could not get API info. \" + e.message;\n }\n}\nasync function upload_files(root_url, files, upload_id) {\n const headers = {};\n if (this.options.hf_token) {\n headers.Authorization = `Bearer ${this.options.hf_token}`;\n }\n const chunkSize = 1e3;\n const uploadResponses = [];\n for (let i = 0; i < files.length; i += chunkSize) {\n const chunk = files.slice(i, i + chunkSize);\n const formData = new FormData();\n chunk.forEach((file) => {\n formData.append(\"files\", file);\n });\n try {\n const upload_url = upload_id ? `${root_url}/upload?upload_id=${upload_id}` : `${root_url}/upload`;\n var response = await this.fetch_implementation(upload_url, {\n method: \"POST\",\n body: formData,\n headers\n });\n } catch (e) {\n return { error: BROKEN_CONNECTION_MSG };\n }\n if (!response.ok) {\n return { error: await response.text() };\n }\n const output = await response.json();\n if (output) {\n uploadResponses.push(...output);\n }\n }\n return { files: uploadResponses };\n}\nfunction update_object(object, newValue, stack) {\n while (stack.length > 1) {\n const key2 = stack.shift();\n if (typeof key2 === \"string\" || typeof key2 === \"number\") {\n object = object[key2];\n } else {\n throw new Error(\"Invalid key type\");\n }\n }\n const key = stack.shift();\n if (typeof key === \"string\" || typeof key === \"number\") {\n object[key] = newValue;\n } else {\n throw new Error(\"Invalid key type\");\n }\n}\nasync function walk_and_store_blobs(param, type = void 0, path = [], root = false, endpoint_info = void 0) {\n if (Array.isArray(param)) {\n let blob_refs = [];\n await Promise.all(\n param.map(async (item) => {\n var _a;\n let new_path = path.slice();\n new_path.push(item);\n const array_refs = await walk_and_store_blobs(\n param[item],\n root ? ((_a = endpoint_info == null ? void 0 : endpoint_info.parameters[item]) == null ? void 0 : _a.component) || void 0 : type,\n new_path,\n false,\n endpoint_info\n );\n blob_refs = blob_refs.concat(array_refs);\n })\n );\n return blob_refs;\n } else if (globalThis.Buffer && param instanceof globalThis.Buffer) {\n const is_image = type === \"Image\";\n return [\n {\n path,\n blob: is_image ? false : new NodeBlob([param]),\n type\n }\n ];\n } else if (typeof param === \"object\") {\n let blob_refs = [];\n for (let key in param) {\n if (param.hasOwnProperty(key)) {\n let new_path = path.slice();\n new_path.push(key);\n blob_refs = blob_refs.concat(\n await walk_and_store_blobs(\n // @ts-ignore\n param[key],\n void 0,\n new_path,\n false,\n endpoint_info\n )\n );\n }\n }\n return blob_refs;\n }\n return [];\n}\nfunction skip_queue(id, config) {\n var _a, _b, _c, _d;\n return !(((_b = (_a = config == null ? void 0 : config.dependencies) == null ? void 0 : _a[id]) == null ? void 0 : _b.queue) === null ? config.enable_queue : (_d = (_c = config == null ? void 0 : config.dependencies) == null ? void 0 : _c[id]) == null ? void 0 : _d.queue) || false;\n}\nfunction post_message(message, origin) {\n return new Promise((res, _rej) => {\n const channel = new MessageChannel();\n channel.port1.onmessage = ({ data }) => {\n channel.port1.close();\n res(data);\n };\n window.parent.postMessage(message, origin, [channel.port2]);\n });\n}\nasync function upload(file_data, root_url, upload_id, max_file_size, upload_fn = upload_files) {\n let files = (Array.isArray(file_data) ? file_data : [file_data]).map(\n (file_data2) => file_data2.blob\n );\n const oversized_files = files.filter(\n (f) => f.size > (max_file_size ?? Infinity)\n );\n if (oversized_files.length) {\n throw new Error(\n `File size exceeds the maximum allowed size of ${max_file_size} bytes: ${oversized_files.map((f) => f.name).join(\", \")}`\n );\n }\n return await Promise.all(\n await upload_fn(root_url, files, upload_id).then(\n async (response) => {\n if (response.error) {\n throw new Error(response.error);\n } else {\n if (response.files) {\n return response.files.map((f, i) => {\n const file = new FileData({\n ...file_data[i],\n path: f,\n url: root_url + \"/file=\" + f\n });\n return file;\n });\n }\n return [];\n }\n }\n )\n );\n}\nasync function prepare_files(files, is_stream) {\n return files.map(\n (f) => new FileData({\n path: f.name,\n orig_name: f.name,\n blob: f,\n size: f.size,\n mime_type: f.type,\n is_stream\n })\n );\n}\nclass FileData {\n constructor({\n path,\n url,\n orig_name,\n size,\n blob,\n is_stream,\n mime_type,\n alt_text\n }) {\n __publicField(this, \"path\");\n __publicField(this, \"url\");\n __publicField(this, \"orig_name\");\n __publicField(this, \"size\");\n __publicField(this, \"blob\");\n __publicField(this, \"is_stream\");\n __publicField(this, \"mime_type\");\n __publicField(this, \"alt_text\");\n __publicField(this, \"meta\", { _type: \"gradio.FileData\" });\n this.path = path;\n this.url = url;\n this.orig_name = orig_name;\n this.size = size;\n this.blob = url ? void 0 : blob;\n this.is_stream = is_stream;\n this.mime_type = mime_type;\n this.alt_text = alt_text;\n }\n}\nasync function handle_blob(endpoint, data, api_info) {\n const self = this;\n const blobRefs = await walk_and_store_blobs(\n data,\n void 0,\n [],\n true,\n api_info\n );\n const results = await Promise.all(\n blobRefs.map(async ({ path, blob, type }) => {\n if (!blob)\n return { path, type };\n const response = await self.upload_files(endpoint, [blob]);\n const file_url = response.files && response.files[0];\n return {\n path,\n file_url,\n type,\n name: blob == null ? void 0 : blob.name\n };\n })\n );\n results.forEach(({ path, file_url, type, name }) => {\n if (type === \"Gallery\") {\n update_object(data, file_url, path);\n } else if (file_url) {\n const file = new FileData({ path: file_url, orig_name: name });\n update_object(data, file, path);\n }\n });\n return data;\n}\nasync function post_data(url, body, additional_headers) {\n const headers = { \"Content-Type\": \"application/json\" };\n if (this.options.hf_token) {\n headers.Authorization = `Bearer ${this.options.hf_token}`;\n }\n try {\n var response = await this.fetch_implementation(url, {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: { ...headers, ...additional_headers }\n });\n } catch (e) {\n return [{ error: BROKEN_CONNECTION_MSG }, 500];\n }\n let output;\n let status;\n try {\n output = await response.json();\n status = response.status;\n } catch (e) {\n output = { error: `Could not parse server response: ${e}` };\n status = 500;\n }\n return [output, status];\n}\nasync function predict(endpoint, data) {\n let data_returned = false;\n let status_complete = false;\n let dependency;\n if (!this.config) {\n throw new Error(\"Could not resolve app config\");\n }\n if (typeof endpoint === \"number\") {\n dependency = this.config.dependencies[endpoint];\n } else {\n const trimmed_endpoint = endpoint.replace(/^\\//, \"\");\n dependency = this.config.dependencies[this.api_map[trimmed_endpoint]];\n }\n if (dependency == null ? void 0 : dependency.types.continuous) {\n throw new Error(\n \"Cannot call predict on this function as it may run forever. Use submit instead\"\n );\n }\n return new Promise(async (resolve, reject) => {\n const app = this.submit(endpoint, data || []);\n let result;\n app.on(\"data\", (d) => {\n if (status_complete) {\n app.destroy();\n resolve(d);\n }\n data_returned = true;\n result = d;\n }).on(\"status\", (status) => {\n if (status.stage === \"error\")\n reject(status);\n if (status.stage === \"complete\") {\n status_complete = true;\n if (data_returned) {\n app.destroy();\n resolve(result);\n }\n }\n });\n });\n}\nasync function check_space_status(id, type, status_callback) {\n let endpoint = type === \"subdomain\" ? `https://huggingface.co/api/spaces/by-subdomain/${id}` : `https://huggingface.co/api/spaces/${id}`;\n let response;\n let _status;\n try {\n response = await fetch(endpoint);\n _status = response.status;\n if (_status !== 200) {\n throw new Error();\n }\n response = await response.json();\n } catch (e) {\n status_callback({\n status: \"error\",\n load_status: \"error\",\n message: \"Could not get space status\",\n detail: \"NOT_FOUND\"\n });\n return;\n }\n if (!response || _status !== 200)\n return;\n const {\n runtime: { stage },\n id: space_name\n } = response;\n switch (stage) {\n case \"STOPPED\":\n case \"SLEEPING\":\n status_callback({\n status: \"sleeping\",\n load_status: \"pending\",\n message: \"Space is asleep. Waking it up...\",\n detail: stage\n });\n setTimeout(() => {\n check_space_status(id, type, status_callback);\n }, 1e3);\n break;\n case \"PAUSED\":\n status_callback({\n status: \"paused\",\n load_status: \"error\",\n message: \"This space has been paused by the author. If you would like to try this demo, consider duplicating the space.\",\n detail: stage,\n discussions_enabled: await discussions_enabled(space_name)\n });\n break;\n case \"RUNNING\":\n case \"RUNNING_BUILDING\":\n status_callback({\n status: \"running\",\n load_status: \"complete\",\n message: \"\",\n detail: stage\n });\n break;\n case \"BUILDING\":\n status_callback({\n status: \"building\",\n load_status: \"pending\",\n message: \"Space is building...\",\n detail: stage\n });\n setTimeout(() => {\n check_space_status(id, type, status_callback);\n }, 1e3);\n break;\n default:\n status_callback({\n status: \"space_error\",\n load_status: \"error\",\n message: \"This space is experiencing an issue.\",\n detail: stage,\n discussions_enabled: await discussions_enabled(space_name)\n });\n break;\n }\n}\nconst RE_DISABLED_DISCUSSION = /^(?=[^]*\\b[dD]iscussions{0,1}\\b)(?=[^]*\\b[dD]isabled\\b)[^]*$/;\nasync function discussions_enabled(space_id) {\n try {\n const r = await fetch(\n `https://huggingface.co/api/spaces/${space_id}/discussions`,\n {\n method: \"HEAD\"\n }\n );\n const error = r.headers.get(\"x-error-message\");\n if (error && RE_DISABLED_DISCUSSION.test(error))\n return false;\n return true;\n } catch (e) {\n return false;\n }\n}\nasync function get_space_hardware(space_id, hf_token) {\n const headers = {};\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n try {\n const res = await fetch(\n `https://huggingface.co/api/spaces/${space_id}/runtime`,\n { headers }\n );\n if (res.status !== 200)\n throw new Error(\"Space hardware could not be obtained.\");\n const { hardware } = await res.json();\n return hardware.current;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function set_space_timeout(space_id, timeout, hf_token) {\n const headers = {};\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n const body = {\n seconds: timeout\n };\n try {\n const res = await fetch(\n `https://huggingface.co/api/spaces/${space_id}/sleeptime`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...headers },\n body: JSON.stringify(body)\n }\n );\n if (res.status !== 200) {\n throw new Error(\n \"Could not set sleep timeout on duplicated Space. Please visit *ADD HF LINK TO SETTINGS* to set a timeout manually to reduce billing charges.\"\n );\n }\n const response = await res.json();\n return response;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nconst hardware_types = [\n \"cpu-basic\",\n \"cpu-upgrade\",\n \"cpu-xl\",\n \"t4-small\",\n \"t4-medium\",\n \"a10g-small\",\n \"a10g-large\",\n \"a10g-largex2\",\n \"a10g-largex4\",\n \"a100-large\",\n \"zero-a10g\",\n \"h100\",\n \"h100x8\"\n];\nasync function duplicate(app_reference, options) {\n const { hf_token, private: _private, hardware, timeout } = options;\n if (hardware && !hardware_types.includes(hardware)) {\n throw new Error(\n `Invalid hardware type provided. Valid types are: ${hardware_types.map((v) => `\"${v}\"`).join(\",\")}.`\n );\n }\n const headers = {\n Authorization: `Bearer ${hf_token}`,\n \"Content-Type\": \"application/json\"\n };\n const user = (await (await fetch(`https://huggingface.co/api/whoami-v2`, {\n headers\n })).json()).name;\n const space_name = app_reference.split(\"/\")[1];\n const body = {\n repository: `${user}/${space_name}`\n };\n if (_private) {\n body.private = true;\n }\n let original_hardware;\n if (!hardware) {\n original_hardware = await get_space_hardware(app_reference, hf_token);\n }\n const requested_hardware = hardware || original_hardware || \"cpu-basic\";\n body.hardware = requested_hardware;\n try {\n const response = await fetch(\n `https://huggingface.co/api/spaces/${app_reference}/duplicate`,\n {\n method: \"POST\",\n headers,\n body: JSON.stringify(body)\n }\n );\n if (response.status === 409) {\n try {\n const client2 = await Client.connect(`${user}/${space_name}`, options);\n return client2;\n } catch (error) {\n console.error(\"Failed to connect Client instance:\", error);\n throw error;\n }\n } else if (response.status !== 200) {\n throw new Error(response.statusText);\n }\n const duplicated_space = await response.json();\n await set_space_timeout(`${user}/${space_name}`, timeout || 300, hf_token);\n return await Client.connect(duplicated_space.url, options);\n } catch (e) {\n throw new Error(e);\n }\n}\nfunction open_stream() {\n let {\n event_callbacks,\n unclosed_events,\n pending_stream_messages,\n stream_status,\n config\n } = this;\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n stream_status.open = true;\n let event_source = null;\n let params = new URLSearchParams({\n session_hash: this.session_hash\n }).toString();\n let url = new URL(`${config.root}/queue/data?${params}`);\n event_source = this.eventSource_factory(url);\n if (!event_source) {\n throw new Error(\"Cannot connect to sse endpoint: \" + url.toString());\n }\n event_source.onmessage = async function(event) {\n let _data = JSON.parse(event.data);\n if (_data.msg === \"close_stream\") {\n close_stream(stream_status, event_source);\n return;\n }\n const event_id = _data.event_id;\n if (!event_id) {\n await Promise.all(\n Object.keys(event_callbacks).map(\n (event_id2) => (\n // @ts-ignore\n event_callbacks[event_id2](_data)\n )\n // todo: check event_callbacks\n )\n );\n } else if (event_callbacks[event_id] && config) {\n if (_data.msg === \"process_completed\" && [\"sse\", \"sse_v1\", \"sse_v2\", \"sse_v2.1\"].includes(config.protocol)) {\n unclosed_events.delete(event_id);\n if (unclosed_events.size === 0) {\n close_stream(stream_status, event_source);\n }\n }\n let fn2 = event_callbacks[event_id];\n window.setTimeout(fn2, 0, _data);\n } else {\n if (!pending_stream_messages[event_id]) {\n pending_stream_messages[event_id] = [];\n }\n pending_stream_messages[event_id].push(_data);\n }\n };\n event_source.onerror = async function() {\n await Promise.all(\n Object.keys(event_callbacks).map(\n (event_id) => (\n // @ts-ignore\n event_callbacks[event_id]({\n msg: \"unexpected_error\",\n message: BROKEN_CONNECTION_MSG\n })\n )\n )\n );\n close_stream(stream_status, event_source);\n };\n}\nfunction close_stream(stream_status, event_source) {\n if (stream_status && event_source) {\n stream_status.open = false;\n event_source == null ? void 0 : event_source.close();\n }\n}\nfunction apply_diff_stream(pending_diff_streams, event_id, data) {\n let is_first_generation = !pending_diff_streams[event_id];\n if (is_first_generation) {\n pending_diff_streams[event_id] = [];\n data.data.forEach((value, i) => {\n pending_diff_streams[event_id][i] = value;\n });\n } else {\n data.data.forEach((value, i) => {\n let new_data = apply_diff(pending_diff_streams[event_id][i], value);\n pending_diff_streams[event_id][i] = new_data;\n data.data[i] = new_data;\n });\n }\n}\nfunction apply_diff(obj, diff) {\n diff.forEach(([action, path, value]) => {\n obj = apply_edit(obj, path, action, value);\n });\n return obj;\n}\nfunction apply_edit(target, path, action, value) {\n if (path.length === 0) {\n if (action === \"replace\") {\n return value;\n } else if (action === \"append\") {\n return target + value;\n }\n throw new Error(`Unsupported action: ${action}`);\n }\n let current = target;\n for (let i = 0; i < path.length - 1; i++) {\n current = current[path[i]];\n }\n const last_path = path[path.length - 1];\n switch (action) {\n case \"replace\":\n current[last_path] = value;\n break;\n case \"append\":\n current[last_path] += value;\n break;\n case \"add\":\n if (Array.isArray(current)) {\n current.splice(Number(last_path), 0, value);\n } else {\n current[last_path] = value;\n }\n break;\n case \"delete\":\n if (Array.isArray(current)) {\n current.splice(Number(last_path), 1);\n } else {\n delete current[last_path];\n }\n break;\n default:\n throw new Error(`Unknown action: ${action}`);\n }\n return target;\n}\nfunction submit(endpoint, data, event_data, trigger_id) {\n try {\n let fire_event = function(event) {\n const narrowed_listener_map = listener_map;\n const listeners = narrowed_listener_map[event.type] || [];\n listeners == null ? void 0 : listeners.forEach((l) => l(event));\n }, on = function(eventType, listener) {\n const narrowed_listener_map = listener_map;\n const listeners = narrowed_listener_map[eventType] || [];\n narrowed_listener_map[eventType] = listeners;\n listeners == null ? void 0 : listeners.push(listener);\n return { on, off, cancel, destroy };\n }, off = function(eventType, listener) {\n const narrowed_listener_map = listener_map;\n let listeners = narrowed_listener_map[eventType] || [];\n listeners = listeners == null ? void 0 : listeners.filter((l) => l !== listener);\n narrowed_listener_map[eventType] = listeners;\n return { on, off, cancel, destroy };\n }, destroy = function() {\n var _a;\n for (const event_type in listener_map) {\n listener_map && ((_a = listener_map[event_type]) == null ? void 0 : _a.forEach((fn2) => {\n off(event_type, fn2);\n }));\n }\n };\n const { hf_token } = this.options;\n const {\n fetch_implementation,\n app_reference,\n config,\n session_hash,\n api_info,\n api_map,\n stream_status,\n pending_stream_messages,\n pending_diff_streams,\n event_callbacks,\n unclosed_events,\n post_data: post_data2\n } = this;\n if (!api_info)\n throw new Error(\"No API found\");\n if (!config)\n throw new Error(\"Could not resolve app config\");\n let { fn_index, endpoint_info, dependency } = get_endpoint_info(\n api_info,\n endpoint,\n api_map,\n config\n );\n let websocket;\n let event_source;\n let protocol = config.protocol ?? \"ws\";\n const _endpoint = typeof endpoint === \"number\" ? \"/predict\" : endpoint;\n let payload;\n let event_id = null;\n let complete = false;\n const listener_map = {};\n let last_status = {};\n let url_params = typeof window !== \"undefined\" ? new URLSearchParams(window.location.search).toString() : \"\";\n async function cancel() {\n const _status = {\n stage: \"complete\",\n queue: false,\n time: /* @__PURE__ */ new Date()\n };\n complete = _status;\n fire_event({\n ..._status,\n type: \"status\",\n endpoint: _endpoint,\n fn_index\n });\n let cancel_request = {};\n if (protocol === \"ws\") {\n if (websocket && websocket.readyState === 0) {\n websocket.addEventListener(\"open\", () => {\n websocket.close();\n });\n } else {\n websocket.close();\n }\n cancel_request = { fn_index, session_hash };\n } else {\n event_source == null ? void 0 : event_source.close();\n cancel_request = { event_id };\n }\n try {\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n await fetch_implementation(`${config.root}/reset`, {\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n body: JSON.stringify(cancel_request)\n });\n } catch (e) {\n console.warn(\n \"The `/reset` endpoint could not be called. Subsequent endpoint results may be unreliable.\"\n );\n }\n }\n this.handle_blob(`${config.root}`, data, endpoint_info).then(\n async (_payload) => {\n payload = {\n data: _payload || [],\n event_data,\n fn_index,\n trigger_id\n };\n if (skip_queue(fn_index, config)) {\n fire_event({\n type: \"status\",\n endpoint: _endpoint,\n stage: \"pending\",\n queue: false,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n post_data2(\n `${config.root}/run${_endpoint.startsWith(\"/\") ? _endpoint : `/${_endpoint}`}${url_params ? \"?\" + url_params : \"\"}`,\n {\n ...payload,\n session_hash\n }\n ).then(([output, status_code]) => {\n const data2 = output.data;\n if (status_code == 200) {\n fire_event({\n type: \"data\",\n endpoint: _endpoint,\n fn_index,\n data: data2,\n time: /* @__PURE__ */ new Date(),\n event_data,\n trigger_id\n });\n fire_event({\n type: \"status\",\n endpoint: _endpoint,\n fn_index,\n stage: \"complete\",\n eta: output.average_duration,\n queue: false,\n time: /* @__PURE__ */ new Date()\n });\n } else {\n fire_event({\n type: \"status\",\n stage: \"error\",\n endpoint: _endpoint,\n fn_index,\n message: output.error,\n queue: false,\n time: /* @__PURE__ */ new Date()\n });\n }\n }).catch((e) => {\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: e.message,\n endpoint: _endpoint,\n fn_index,\n queue: false,\n time: /* @__PURE__ */ new Date()\n });\n });\n } else if (protocol == \"ws\") {\n const { ws_protocol, host } = await process_endpoint(\n app_reference,\n hf_token\n );\n fire_event({\n type: \"status\",\n stage: \"pending\",\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n let url = new URL(\n `${ws_protocol}://${resolve_root(\n host,\n config.path,\n true\n )}/queue/join${url_params ? \"?\" + url_params : \"\"}`\n );\n if (this.jwt) {\n url.searchParams.set(\"__sign\", this.jwt);\n }\n websocket = new WebSocket(url);\n websocket.onclose = (evt) => {\n if (!evt.wasClean) {\n fire_event({\n type: \"status\",\n stage: \"error\",\n broken: true,\n message: BROKEN_CONNECTION_MSG,\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n }\n };\n websocket.onmessage = function(event) {\n const _data = JSON.parse(event.data);\n const { type, status, data: data2 } = handle_message(\n _data,\n last_status[fn_index]\n );\n if (type === \"update\" && status && !complete) {\n fire_event({\n type: \"status\",\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date(),\n ...status\n });\n if (status.stage === \"error\") {\n websocket.close();\n }\n } else if (type === \"hash\") {\n websocket.send(JSON.stringify({ fn_index, session_hash }));\n return;\n } else if (type === \"data\") {\n websocket.send(JSON.stringify({ ...payload, session_hash }));\n } else if (type === \"complete\") {\n complete = status;\n } else if (type === \"log\") {\n fire_event({\n type: \"log\",\n log: data2.log,\n level: data2.level,\n endpoint: _endpoint,\n fn_index\n });\n } else if (type === \"generating\") {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...status,\n stage: status == null ? void 0 : status.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n }\n if (data2) {\n fire_event({\n type: \"data\",\n time: /* @__PURE__ */ new Date(),\n data: data2.data,\n endpoint: _endpoint,\n fn_index,\n event_data,\n trigger_id\n });\n if (complete) {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...complete,\n stage: status == null ? void 0 : status.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n websocket.close();\n }\n }\n };\n if (semiver(config.version || \"2.0.0\", \"3.6\") < 0) {\n addEventListener(\n \"open\",\n () => websocket.send(JSON.stringify({ hash: session_hash }))\n );\n }\n } else if (protocol == \"sse\") {\n fire_event({\n type: \"status\",\n stage: \"pending\",\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n var params = new URLSearchParams({\n fn_index: fn_index.toString(),\n session_hash\n }).toString();\n let url = new URL(\n `${config.root}/queue/join?${url_params ? url_params + \"&\" : \"\"}${params}`\n );\n event_source = this.eventSource_factory(url);\n if (!event_source) {\n throw new Error(\n \"Cannot connect to sse endpoint: \" + url.toString()\n );\n }\n event_source.onmessage = async function(event) {\n const _data = JSON.parse(event.data);\n const { type, status, data: data2 } = handle_message(\n _data,\n last_status[fn_index]\n );\n if (type === \"update\" && status && !complete) {\n fire_event({\n type: \"status\",\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date(),\n ...status\n });\n if (status.stage === \"error\") {\n event_source == null ? void 0 : event_source.close();\n }\n } else if (type === \"data\") {\n event_id = _data.event_id;\n let [_, status2] = await post_data2(`${config.root}/queue/data`, {\n ...payload,\n session_hash,\n event_id\n });\n if (status2 !== 200) {\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: BROKEN_CONNECTION_MSG,\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n event_source == null ? void 0 : event_source.close();\n }\n } else if (type === \"complete\") {\n complete = status;\n } else if (type === \"log\") {\n fire_event({\n type: \"log\",\n log: data2.log,\n level: data2.level,\n endpoint: _endpoint,\n fn_index\n });\n } else if (type === \"generating\") {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...status,\n stage: status == null ? void 0 : status.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n }\n if (data2) {\n fire_event({\n type: \"data\",\n time: /* @__PURE__ */ new Date(),\n data: data2.data,\n endpoint: _endpoint,\n fn_index,\n event_data,\n trigger_id\n });\n if (complete) {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...complete,\n stage: status == null ? void 0 : status.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n event_source == null ? void 0 : event_source.close();\n }\n }\n };\n } else if (protocol == \"sse_v1\" || protocol == \"sse_v2\" || protocol == \"sse_v2.1\" || protocol == \"sse_v3\") {\n fire_event({\n type: \"status\",\n stage: \"pending\",\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n let hostname = window.location.hostname;\n let hfhubdev = \"dev.spaces.huggingface.tech\";\n const origin = hostname.includes(\".dev.\") ? `https://moon-${hostname.split(\".\")[1]}.${hfhubdev}` : `https://huggingface.co`;\n const zerogpu_auth_promise = dependency.zerogpu && window.parent != window && config.space_id ? post_message(\"zerogpu-headers\", origin) : Promise.resolve(null);\n const post_data_promise = zerogpu_auth_promise.then((headers) => {\n return post_data2(\n `${config.root}/queue/join?${url_params}`,\n {\n ...payload,\n session_hash\n },\n headers\n );\n });\n post_data_promise.then(([response, status]) => {\n if (status === 503) {\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: QUEUE_FULL_MSG,\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n } else if (status !== 200) {\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: BROKEN_CONNECTION_MSG,\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n } else {\n event_id = response.event_id;\n let callback = async function(_data) {\n try {\n const { type, status: status2, data: data2 } = handle_message(\n _data,\n last_status[fn_index]\n );\n if (type == \"heartbeat\") {\n return;\n }\n if (type === \"update\" && status2 && !complete) {\n fire_event({\n type: \"status\",\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date(),\n ...status2\n });\n } else if (type === \"complete\") {\n complete = status2;\n } else if (type == \"unexpected_error\") {\n console.error(\"Unexpected error\", status2 == null ? void 0 : status2.message);\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: (status2 == null ? void 0 : status2.message) || \"An Unexpected Error Occurred!\",\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n } else if (type === \"log\") {\n fire_event({\n type: \"log\",\n log: data2.log,\n level: data2.level,\n endpoint: _endpoint,\n fn_index\n });\n return;\n } else if (type === \"generating\") {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...status2,\n stage: status2 == null ? void 0 : status2.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n if (data2 && [\"sse_v2\", \"sse_v2.1\", \"sse_v3\"].includes(protocol)) {\n apply_diff_stream(pending_diff_streams, event_id, data2);\n }\n }\n if (data2) {\n fire_event({\n type: \"data\",\n time: /* @__PURE__ */ new Date(),\n data: data2.data,\n endpoint: _endpoint,\n fn_index\n });\n if (complete) {\n fire_event({\n type: \"status\",\n time: /* @__PURE__ */ new Date(),\n ...complete,\n stage: status2 == null ? void 0 : status2.stage,\n queue: true,\n endpoint: _endpoint,\n fn_index\n });\n }\n }\n if ((status2 == null ? void 0 : status2.stage) === \"complete\" || (status2 == null ? void 0 : status2.stage) === \"error\") {\n if (event_callbacks[event_id]) {\n delete event_callbacks[event_id];\n }\n if (event_id in pending_diff_streams) {\n delete pending_diff_streams[event_id];\n }\n }\n } catch (e) {\n console.error(\"Unexpected client exception\", e);\n fire_event({\n type: \"status\",\n stage: \"error\",\n message: \"An Unexpected Error Occurred!\",\n queue: true,\n endpoint: _endpoint,\n fn_index,\n time: /* @__PURE__ */ new Date()\n });\n if ([\"sse_v2\", \"sse_v2.1\"].includes(protocol)) {\n close_stream(stream_status, event_source);\n stream_status.open = false;\n }\n }\n };\n if (event_id in pending_stream_messages) {\n pending_stream_messages[event_id].forEach(\n (msg) => callback(msg)\n );\n delete pending_stream_messages[event_id];\n }\n event_callbacks[event_id] = callback;\n unclosed_events.add(event_id);\n if (!stream_status.open) {\n this.open_stream();\n }\n }\n });\n }\n }\n );\n return { on, off, cancel, destroy };\n } catch (error) {\n console.error(\"Submit function encountered an error:\", error);\n throw error;\n }\n}\nfunction get_endpoint_info(api_info, endpoint, api_map, config) {\n let fn_index;\n let endpoint_info;\n let dependency;\n if (typeof endpoint === \"number\") {\n fn_index = endpoint;\n endpoint_info = api_info.unnamed_endpoints[fn_index];\n dependency = config.dependencies[endpoint];\n } else {\n const trimmed_endpoint = endpoint.replace(/^\\//, \"\");\n fn_index = api_map[trimmed_endpoint];\n endpoint_info = api_info.named_endpoints[endpoint.trim()];\n dependency = config.dependencies[api_map[trimmed_endpoint]];\n }\n if (typeof fn_index !== \"number\") {\n throw new Error(\n \"There is no endpoint matching that name of fn_index matching that number.\"\n );\n }\n return { fn_index, endpoint_info, dependency };\n}\nclass NodeBlob extends Blob {\n constructor(blobParts, options) {\n super(blobParts, options);\n }\n}\nclass Client {\n constructor(app_reference, options = {}) {\n __publicField(this, \"app_reference\");\n __publicField(this, \"options\");\n __publicField(this, \"config\");\n __publicField(this, \"api_info\");\n __publicField(this, \"api_map\", {});\n __publicField(this, \"session_hash\", Math.random().toString(36).substring(2));\n __publicField(this, \"jwt\", false);\n __publicField(this, \"last_status\", {});\n // streaming\n __publicField(this, \"stream_status\", { open: false });\n __publicField(this, \"pending_stream_messages\", {});\n __publicField(this, \"pending_diff_streams\", {});\n __publicField(this, \"event_callbacks\", {});\n __publicField(this, \"unclosed_events\", /* @__PURE__ */ new Set());\n __publicField(this, \"heartbeat_event\", null);\n __publicField(this, \"view_api\");\n __publicField(this, \"upload_files\");\n __publicField(this, \"handle_blob\");\n __publicField(this, \"post_data\");\n __publicField(this, \"submit\");\n __publicField(this, \"predict\");\n __publicField(this, \"open_stream\");\n __publicField(this, \"resolve_config\");\n this.app_reference = app_reference;\n this.options = options;\n this.view_api = view_api.bind(this);\n this.upload_files = upload_files.bind(this);\n this.handle_blob = handle_blob.bind(this);\n this.post_data = post_data.bind(this);\n this.submit = submit.bind(this);\n this.predict = predict.bind(this);\n this.open_stream = open_stream.bind(this);\n this.resolve_config = resolve_config.bind(this);\n }\n fetch_implementation(input, init) {\n return fetch(input, init);\n }\n eventSource_factory(url) {\n if (typeof window !== void 0 && typeof EventSource !== \"undefined\") {\n return new EventSource(url.toString());\n }\n return null;\n }\n async init() {\n var _a;\n if ((typeof window === \"undefined\" || !(\"WebSocket\" in window)) && !global.WebSocket) {\n const ws = await import(\"./wrapper-CviSselG.js\");\n NodeBlob = (await import(\"node:buffer\")).Blob;\n global.WebSocket = ws.WebSocket;\n }\n try {\n await this._resolve_config().then(async ({ config }) => {\n if (config) {\n this.config = config;\n if (this.config) {\n const heartbeat_url = new URL(\n `${this.config.root}/heartbeat/${this.session_hash}`\n );\n this.heartbeat_event = this.eventSource_factory(heartbeat_url);\n if (this.config.space_id && this.options.hf_token) {\n this.jwt = await get_jwt(\n this.config.space_id,\n this.options.hf_token\n );\n }\n }\n }\n });\n } catch (e) {\n throw Error(`Could not resolve config: ${e}`);\n }\n this.api_info = await this.view_api();\n this.api_map = map_names_to_ids(((_a = this.config) == null ? void 0 : _a.dependencies) || []);\n }\n static async connect(app_reference, options = {}) {\n const client2 = new this(app_reference, options);\n await client2.init();\n return client2;\n }\n close() {\n var _a;\n (_a = this.heartbeat_event) == null ? void 0 : _a.close();\n }\n static async duplicate(app_reference, options = {}) {\n return duplicate(app_reference, options);\n }\n async _resolve_config() {\n const { http_protocol, host, space_id } = await process_endpoint(\n this.app_reference,\n this.options.hf_token\n );\n const { status_callback } = this.options;\n let config;\n try {\n config = await this.resolve_config(`${http_protocol}//${host}`);\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n return this.config_success(config);\n } catch (e) {\n console.error(e);\n if (space_id) {\n check_space_status(\n space_id,\n RE_SPACE_NAME.test(space_id) ? \"space_name\" : \"subdomain\",\n this.handle_space_success\n );\n } else {\n if (status_callback)\n status_callback({\n status: \"error\",\n message: \"Could not load this space.\",\n load_status: \"error\",\n detail: \"NOT_FOUND\"\n });\n }\n }\n }\n async config_success(_config) {\n this.config = _config;\n if (typeof window !== \"undefined\") {\n if (window.location.protocol === \"https:\") {\n this.config.root = this.config.root.replace(\"http://\", \"https://\");\n }\n }\n if (this.config.auth_required) {\n return this.prepare_return_obj();\n }\n try {\n this.api_info = await this.view_api();\n } catch (e) {\n console.error(`Could not get API details: ${e.message}`);\n }\n return this.prepare_return_obj();\n }\n async handle_space_success(status) {\n const { status_callback } = this.options;\n if (status_callback)\n status_callback(status);\n if (status.status === \"running\") {\n try {\n this.config = await this._resolve_config();\n if (!this.config) {\n throw new Error(\"Could not resolve app config\");\n }\n const _config = await this.config_success(this.config);\n return _config;\n } catch (e) {\n console.error(e);\n if (status_callback) {\n status_callback({\n status: \"error\",\n message: \"Could not load this space.\",\n load_status: \"error\",\n detail: \"NOT_FOUND\"\n });\n }\n }\n }\n }\n async component_server(component_id, fn_name, data) {\n var _a;\n if (!this.config) {\n throw new Error(\"Could not resolve app config\");\n }\n const headers = {};\n const { hf_token } = this.options;\n const { session_hash } = this;\n if (hf_token) {\n headers.Authorization = `Bearer ${this.options.hf_token}`;\n }\n let root_url;\n let component = this.config.components.find(\n (comp) => comp.id === component_id\n );\n if ((_a = component == null ? void 0 : component.props) == null ? void 0 : _a.root_url) {\n root_url = component.props.root_url;\n } else {\n root_url = this.config.root;\n }\n let body;\n if (\"binary\" in data) {\n body = new FormData();\n for (const key in data.data) {\n if (key === \"binary\")\n continue;\n body.append(key, data.data[key]);\n }\n body.set(\"component_id\", component_id.toString());\n body.set(\"fn_name\", fn_name);\n body.set(\"session_hash\", session_hash);\n } else {\n body = JSON.stringify({\n data,\n component_id,\n fn_name,\n session_hash\n });\n headers[\"Content-Type\"] = \"application/json\";\n }\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n try {\n const response = await this.fetch_implementation(\n `${root_url}/component_server/`,\n {\n method: \"POST\",\n body,\n headers\n }\n );\n if (!response.ok) {\n throw new Error(\n \"Could not connect to component server: \" + response.statusText\n );\n }\n const output = await response.json();\n return output;\n } catch (e) {\n console.warn(e);\n }\n }\n prepare_return_obj() {\n return {\n config: this.config,\n predict: this.predict,\n submit: this.submit,\n view_api: this.view_api,\n component_server: this.component_server\n };\n }\n}\nasync function client(app_reference, options = {}) {\n return await Client.connect(app_reference, options);\n}\nexport {\n Client,\n FileData,\n client,\n duplicate,\n predict,\n prepare_files,\n submit,\n upload,\n upload_files\n};\n","let supports_adopted_stylesheets = false;\n\nif (\n\t\"attachShadow\" in Element.prototype &&\n\t\"adoptedStyleSheets\" in Document.prototype\n) {\n\t// Both Shadow DOM and adoptedStyleSheets are supported\n\tconst shadow_root_test = document\n\t\t.createElement(\"div\")\n\t\t.attachShadow({ mode: \"open\" });\n\tsupports_adopted_stylesheets = \"adoptedStyleSheets\" in shadow_root_test;\n}\n\nexport function mount_css(url: string, target: HTMLElement): Promise {\n\tconst base = new URL(import.meta.url).origin;\n\tconst _url = new URL(url, base).href;\n\tconst existing_link = document.querySelector(`link[href='${_url}']`);\n\n\tif (existing_link) return Promise.resolve();\n\n\tconst link = document.createElement(\"link\");\n\tlink.rel = \"stylesheet\";\n\tlink.href = _url;\n\n\treturn new Promise((res, rej) => {\n\t\tlink.addEventListener(\"load\", () => res());\n\t\tlink.addEventListener(\"error\", () => {\n\t\t\tconsole.error(`Unable to preload CSS for ${_url}`);\n\t\t\tres();\n\t\t});\n\t\ttarget.appendChild(link);\n\t});\n}\n\nexport function prefix_css(\n\tstring: string,\n\tversion: string,\n\tstyle_element = document.createElement(\"style\")\n): HTMLStyleElement | null {\n\tif (!supports_adopted_stylesheets) return null;\n\tstyle_element.remove();\n\n\tconst stylesheet = new CSSStyleSheet();\n\tstylesheet.replaceSync(string);\n\n\tlet importString = \"\";\n\tstring = string.replace(/@import\\s+url\\((.*?)\\);\\s*/g, (match, url) => {\n\t\timportString += `@import url(${url});\\n`;\n\t\treturn \"\"; // remove and store any @import statements from the CSS\n\t});\n\n\tconst rules = stylesheet.cssRules;\n\n\tlet css_string = \"\";\n\tlet gradio_css_infix = `gradio-app .gradio-container.gradio-container-${version} .contain `;\n\n\tfor (let i = 0; i < rules.length; i++) {\n\t\tconst rule = rules[i];\n\n\t\tlet is_dark_rule = rule.cssText.includes(\".dark\");\n\t\tif (rule instanceof CSSStyleRule) {\n\t\t\tconst selector = rule.selectorText;\n\t\t\tif (selector) {\n\t\t\t\tconst new_selector = selector\n\t\t\t\t\t.replace(\".dark\", \"\")\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t`${is_dark_rule ? \".dark\" : \"\"} ${gradio_css_infix} ${s.trim()} `\n\t\t\t\t\t)\n\t\t\t\t\t.join(\",\");\n\n\t\t\t\tcss_string += rule.cssText;\n\t\t\t\tcss_string += rule.cssText.replace(selector, new_selector);\n\t\t\t}\n\t\t} else if (rule instanceof CSSMediaRule) {\n\t\t\tlet mediaCssString = `@media ${rule.media.mediaText} {`;\n\t\t\tfor (let j = 0; j < rule.cssRules.length; j++) {\n\t\t\t\tconst innerRule = rule.cssRules[j];\n\t\t\t\tif (innerRule instanceof CSSStyleRule) {\n\t\t\t\t\tlet is_dark_rule = innerRule.cssText.includes(\".dark \");\n\t\t\t\t\tconst selector = innerRule.selectorText;\n\t\t\t\t\tconst new_selector = selector\n\t\t\t\t\t\t.replace(\".dark\", \"\")\n\t\t\t\t\t\t.split(\",\")\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\tis_dark_rule ? \".dark\" : \"\"\n\t\t\t\t\t\t\t\t} ${gradio_css_infix} ${s.trim()} `\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\",\");\n\t\t\t\t\tmediaCssString += innerRule.cssText.replace(selector, new_selector);\n\t\t\t\t}\n\t\t\t}\n\t\t\tmediaCssString += \"}\";\n\t\t\tcss_string += mediaCssString;\n\t\t} else if (rule instanceof CSSKeyframesRule) {\n\t\t\tcss_string += `@keyframes ${rule.name} {`;\n\t\t\tfor (let j = 0; j < rule.cssRules.length; j++) {\n\t\t\t\tconst innerRule = rule.cssRules[j];\n\t\t\t\tif (innerRule instanceof CSSKeyframeRule) {\n\t\t\t\t\tcss_string += `${innerRule.keyText} { ${innerRule.style.cssText} }`;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcss_string += \"}\";\n\t\t} else if (rule instanceof CSSFontFaceRule) {\n\t\t\tcss_string += `@font-face { ${rule.style.cssText} }`;\n\t\t}\n\t}\n\tcss_string = importString + css_string;\n\tstyle_element.textContent = css_string;\n\n\tdocument.head.appendChild(style_element);\n\treturn style_element;\n}\n","import \"@gradio/theme/src/reset.css\";\nimport \"@gradio/theme/src/global.css\";\nimport \"@gradio/theme/src/pollen.css\";\nimport \"@gradio/theme/src/typography.css\";\nimport { Client } from \"@gradio/client\";\nimport { mount_css } from \"./css\";\nimport type Index from \"./Index.svelte\";\n\nimport type { ThemeMode } from \"./types\";\n\n//@ts-ignore\nimport * as svelte from \"./svelte/svelte.js\";\n\ndeclare let BUILD_MODE: string;\ndeclare let GRADIO_VERSION: string;\n\nconst ENTRY_CSS = \"__ENTRY_CSS__\";\n\nlet FONTS: string | [];\n\nFONTS = \"__FONTS_CSS__\";\n\nlet IndexComponent: typeof Index;\nlet _res: (value?: unknown) => void;\nlet pending = new Promise((res) => {\n\t_res = res;\n});\nasync function get_index(): Promise {\n\tIndexComponent = (await import(\"./Index.svelte\")).default;\n\t_res();\n}\n\nfunction create_custom_element(): void {\n\tconst o = {\n\t\tSvelteComponent: svelte.SvelteComponent\n\t};\n\tfor (const key in svelte) {\n\t\tif (key === \"SvelteComponent\") continue;\n\t\tif (key === \"SvelteComponentDev\") {\n\t\t\t//@ts-ignore\n\t\t\to[key] = o[\"SvelteComponent\"];\n\t\t} else {\n\t\t\t//@ts-ignore\n\t\t\to[key] = svelte[key];\n\t\t}\n\t}\n\t//@ts-ignore\n\twindow.__gradio__svelte__internal = o;\n\tclass GradioApp extends HTMLElement {\n\t\tcontrol_page_title: string | null;\n\t\tinitial_height: string;\n\t\tis_embed: string;\n\t\tcontainer: string;\n\t\tinfo: string | true;\n\t\tautoscroll: string | null;\n\t\teager: string | null;\n\t\ttheme_mode: ThemeMode | null;\n\t\thost: string | null;\n\t\tspace: string | null;\n\t\tsrc: string | null;\n\t\tapp?: Index;\n\t\tloading: boolean;\n\t\tupdating: { name: string; value: string } | false;\n\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.host = this.getAttribute(\"host\");\n\t\t\tthis.space = this.getAttribute(\"space\");\n\t\t\tthis.src = this.getAttribute(\"src\");\n\n\t\t\tthis.control_page_title = this.getAttribute(\"control_page_title\");\n\t\t\tthis.initial_height = this.getAttribute(\"initial_height\") ?? \"300px\"; // default: 300px\n\t\t\tthis.is_embed = this.getAttribute(\"embed\") ?? \"true\"; // default: true\n\t\t\tthis.container = this.getAttribute(\"container\") ?? \"true\"; // default: true\n\t\t\tthis.info = this.getAttribute(\"info\") ?? true; // default: true\n\t\t\tthis.autoscroll = this.getAttribute(\"autoscroll\");\n\t\t\tthis.eager = this.getAttribute(\"eager\");\n\t\t\tthis.theme_mode = this.getAttribute(\"theme_mode\") as ThemeMode | null;\n\t\t\tthis.updating = false;\n\t\t\tthis.loading = false;\n\t\t}\n\n\t\tasync connectedCallback(): Promise {\n\t\t\tawait get_index();\n\t\t\tthis.loading = true;\n\n\t\t\tif (this.app) {\n\t\t\t\tthis.app.$destroy();\n\t\t\t}\n\n\t\t\tif (typeof FONTS !== \"string\") {\n\t\t\t\tFONTS.forEach((f) => mount_css(f, document.head));\n\t\t\t}\n\n\t\t\tawait mount_css(ENTRY_CSS, document.head);\n\n\t\t\tconst event = new CustomEvent(\"domchange\", {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: false,\n\t\t\t\tcomposed: true\n\t\t\t});\n\n\t\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t});\n\n\t\t\tobserver.observe(this, { childList: true });\n\n\t\t\tthis.app = new IndexComponent({\n\t\t\t\ttarget: this,\n\t\t\t\tprops: {\n\t\t\t\t\t// embed source\n\t\t\t\t\tspace: this.space ? this.space.trim() : this.space,\n\t\t\t\t\tsrc: this.src ? this.src.trim() : this.src,\n\t\t\t\t\thost: this.host ? this.host.trim() : this.host,\n\t\t\t\t\t// embed info\n\t\t\t\t\tinfo: this.info === \"false\" ? false : true,\n\t\t\t\t\tcontainer: this.container === \"false\" ? false : true,\n\t\t\t\t\tis_embed: this.is_embed === \"false\" ? false : true,\n\t\t\t\t\tinitial_height: this.initial_height,\n\t\t\t\t\teager: this.eager === \"true\" ? true : false,\n\t\t\t\t\t// gradio meta info\n\t\t\t\t\tversion: GRADIO_VERSION,\n\t\t\t\t\ttheme_mode: this.theme_mode,\n\t\t\t\t\t// misc global behaviour\n\t\t\t\t\tautoscroll: this.autoscroll === \"true\" ? true : false,\n\t\t\t\t\tcontrol_page_title: this.control_page_title === \"true\" ? true : false,\n\t\t\t\t\t// injectables\n\t\t\t\t\tClient,\n\t\t\t\t\t// for gradio docs\n\t\t\t\t\t// TODO: Remove -- i think this is just for autoscroll behavhiour, app vs embeds\n\t\t\t\t\tapp_mode: window.__gradio_mode__ === \"app\"\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this.updating) {\n\t\t\t\tthis.setAttribute(this.updating.name, this.updating.value);\n\t\t\t}\n\n\t\t\tthis.loading = false;\n\t\t}\n\n\t\tstatic get observedAttributes(): [\"src\", \"space\", \"host\"] {\n\t\t\treturn [\"src\", \"space\", \"host\"];\n\t\t}\n\n\t\tasync attributeChangedCallback(\n\t\t\tname: string,\n\t\t\told_val: string,\n\t\t\tnew_val: string\n\t\t): Promise {\n\t\t\tawait pending;\n\t\t\tif (\n\t\t\t\t(name === \"host\" || name === \"space\" || name === \"src\") &&\n\t\t\t\tnew_val !== old_val\n\t\t\t) {\n\t\t\t\tthis.updating = { name, value: new_val };\n\t\t\t\tif (this.loading) return;\n\n\t\t\t\tif (this.app) {\n\t\t\t\t\tthis.app.$destroy();\n\t\t\t\t}\n\n\t\t\t\tthis.space = null;\n\t\t\t\tthis.host = null;\n\t\t\t\tthis.src = null;\n\n\t\t\t\tif (name === \"host\") {\n\t\t\t\t\tthis.host = new_val;\n\t\t\t\t} else if (name === \"space\") {\n\t\t\t\t\tthis.space = new_val;\n\t\t\t\t} else if (name === \"src\") {\n\t\t\t\t\tthis.src = new_val;\n\t\t\t\t}\n\n\t\t\t\tthis.app = new IndexComponent({\n\t\t\t\t\ttarget: this,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t// embed source\n\t\t\t\t\t\tspace: this.space ? this.space.trim() : this.space,\n\t\t\t\t\t\tsrc: this.src ? this.src.trim() : this.src,\n\t\t\t\t\t\thost: this.host ? this.host.trim() : this.host,\n\t\t\t\t\t\t// embed info\n\t\t\t\t\t\tinfo: this.info === \"false\" ? false : true,\n\t\t\t\t\t\tcontainer: this.container === \"false\" ? false : true,\n\t\t\t\t\t\tis_embed: this.is_embed === \"false\" ? false : true,\n\t\t\t\t\t\tinitial_height: this.initial_height,\n\t\t\t\t\t\teager: this.eager === \"true\" ? true : false,\n\t\t\t\t\t\t// gradio meta info\n\t\t\t\t\t\tversion: GRADIO_VERSION,\n\t\t\t\t\t\ttheme_mode: this.theme_mode,\n\t\t\t\t\t\t// misc global behaviour\n\t\t\t\t\t\tautoscroll: this.autoscroll === \"true\" ? true : false,\n\t\t\t\t\t\tcontrol_page_title:\n\t\t\t\t\t\t\tthis.control_page_title === \"true\" ? true : false,\n\t\t\t\t\t\t// injectables\n\t\t\t\t\t\tClient,\n\t\t\t\t\t\t// for gradio docs\n\t\t\t\t\t\t// TODO: Remove -- i think this is just for autoscroll behavhiour, app vs embeds\n\t\t\t\t\t\tapp_mode: window.__gradio_mode__ === \"app\"\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.updating = false;\n\t\t\t}\n\t\t}\n\t}\n\tif (!customElements.get(\"gradio-app\"))\n\t\tcustomElements.define(\"gradio-app\", GradioApp);\n}\n\ncreate_custom_element();\n"],"file":"assets/index-Xl9iYhYF.js"}