{"version":3,"mappings":"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","names":["__defProp","__defNormalProp","obj","key","value","__publicField","__accessCheck","member","msg","__privateGet","getter","__privateAdd","__privateSet","setter","_currentLine","fn","semiver","a","b","bool","HOST_URL","UPLOAD_URL","LOGIN_URL","CONFIG_URL","API_INFO_URL","RUNTIME_URL","SLEEPTIME_URL","SPACE_FETCHER_URL","QUEUE_FULL_MSG","BROKEN_CONNECTION_MSG","CONFIG_ERROR_MSG","SPACE_STATUS_ERROR_MSG","API_INFO_ERROR_MSG","SPACE_METADATA_ERROR_MSG","INVALID_URL_MSG","UNAUTHORIZED_MSG","INVALID_CREDENTIALS_MSG","MISSING_CREDENTIALS_MSG","NODEJS_FS_ERROR_MSG","ROOT_URL_ERROR_MSG","FILE_PROCESSING_ERROR_MSG","resolve_root","base_url","root_path","prioritize_base","get_jwt","space","token","cookies","map_names_to_ids","fns","apis","api_name","id","resolve_config","endpoint","_a","headers","path","config","config_root","config_url","join_urls","response","dep","i","resolve_cookies","http_protocol","host","process_endpoint","cookie_header","get_cookie_header","auth","_fetch","hf_token","formData","res","determine_protocol","protocol","pathname","parse_and_set_cookies","cookie","cookie_name","cookie_value","RE_SPACE_NAME","RE_SPACE_DOMAIN","app_reference","_app_reference","_host","ws_protocol","urls","part","transform_api_info","api_info","api_map","transformed_info","category","parameters","returns","_b","_c","_d","dependencyIndex","dependencyTypes","components","input","_a2","c","comp","idx","new_param","e","transform_type","data","component","serializer","signature_type","get_description","get_type","p","r","type","handle_message","last_status","map_data_to_params","values","resolved_data","provided_keys","param","index","view_api","url","upload_files","root_url","files","upload_id","chunkSize","uploadResponses","chunk","file","upload_url","error_text","output","upload","file_data","max_file_size","file_data2","oversized_files","f","FileData","prepare_files","is_stream","orig_name","size","blob","mime_type","alt_text","Command","command","meta","update_object","object","newValue","stack","key2","walk_and_store_blobs","root","endpoint_info","blob_refs","_","new_path","array_refs","skip_queue","fn_queue","post_message","message","origin","_rej","channel","handle_payload","resolved_payload","dependency","with_null_state","updated_payload","payload_index","input_id","handle_blob","self","process_local_file_commands","blobRefs","file_url","name","client2","recursively_process_commands","process_single_command","cmd_item","fileBuffer","fullPath","fs","__vitePreload","n","fileData","error","post_data","body","additional_headers","status","predict","data_returned","status_complete","trimmed_endpoint","resolve","reject","app","result","check_space_status","status_callback","_status","stage","space_name","discussions_enabled","RE_DISABLED_DISCUSSION","space_id","get_space_hardware","hardware","set_space_timeout","timeout","hardware_types","duplicate","options","_private","v","user","original_hardware","requested_hardware","Client","duplicated_space","get_space_reference","regex","match","TextLineStream","chars","controller","lfIndex","crIndex","endIndex","currentLine","stream$1","decoder","split2","split","fallback","events","signal","iter","line","reader","event","field","stream","init","req","open_stream","event_callbacks","unclosed_events","pending_stream_messages","stream_status","jwt","that","stream2","params","_data","close_stream","event_id","event_id2","fn2","abort_controller","apply_diff_stream","pending_diff_streams","new_data","apply_diff","diff","action","apply_edit","target","current","last_path","readable_stream","instance","submit","event_data","trigger_id","all_events","fire_event","events_to_publish","push_event","close","done","resolvers","push","data2","push_error","thenable_reject","next","fetch2","session_hash","post_data2","fn_index","get_endpoint_info","websocket","_endpoint","payload","complete","url_params","acc","cancel","reset_request","cancel_request","resolve_heartbeat","config2","handle_render_config","render_config","render_id","d","any_state","any_unload","t","_payload","status_code","evt","status2","hostname","is_iframe","is_zerogpu_space","callback","iterator","ws","_config","heartbeat_url","component_id","fn_name","raw_cookies","supports_adopted_stylesheets","mount_css","base","_url","link","rej","prefix_css","string","version","style_element","stylesheet","importString","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 __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _currentLine;\nvar fn = new Intl.Collator(0, { numeric: 1 }).compare;\nfunction semiver(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 HOST_URL = \"host\";\nconst UPLOAD_URL = \"upload\";\nconst LOGIN_URL = \"login\";\nconst CONFIG_URL = \"config\";\nconst API_INFO_URL = \"info\";\nconst RUNTIME_URL = \"runtime\";\nconst SLEEPTIME_URL = \"sleeptime\";\nconst SPACE_FETCHER_URL = \"https://gradio-space-api-fetcher-v2.hf.space/api\";\nconst QUEUE_FULL_MSG = \"This application is currently busy. Please try again. \";\nconst BROKEN_CONNECTION_MSG = \"Connection errored out. \";\nconst CONFIG_ERROR_MSG = \"Could not resolve app config. \";\nconst SPACE_STATUS_ERROR_MSG = \"Could not get space status. \";\nconst API_INFO_ERROR_MSG = \"Could not get API info. \";\nconst SPACE_METADATA_ERROR_MSG = \"Space metadata could not be loaded. \";\nconst INVALID_URL_MSG = \"Invalid URL. A full URL path is required.\";\nconst UNAUTHORIZED_MSG = \"Not authorized to access this space. \";\nconst INVALID_CREDENTIALS_MSG = \"Invalid credentials. Could not login. \";\nconst MISSING_CREDENTIALS_MSG = \"Login credentials are required to access this space.\";\nconst NODEJS_FS_ERROR_MSG = \"File system access is only available in Node.js environments\";\nconst ROOT_URL_ERROR_MSG = \"Root URL not found in client config\";\nconst FILE_PROCESSING_ERROR_MSG = \"Error uploading file\";\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, cookies) {\n try {\n const r = await fetch(`https://huggingface.co/api/spaces/${space}/jwt`, {\n headers: {\n Authorization: `Bearer ${token}`,\n ...cookies ? { Cookie: cookies } : {}\n }\n });\n const jwt = (await r.json()).token;\n return jwt || false;\n } catch (e) {\n return false;\n }\n}\nfunction map_names_to_ids(fns) {\n let apis = {};\n fns.forEach(({ api_name, id }) => {\n if (api_name)\n apis[api_name] = id;\n });\n return apis;\n}\nasync function resolve_config(endpoint) {\n var _a;\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 config_url = join_urls(endpoint, CONFIG_URL);\n const response = await this.fetch(config_url, {\n headers,\n credentials: \"include\"\n });\n if ((response == null ? void 0 : response.status) === 401 && !this.options.auth) {\n throw new Error(MISSING_CREDENTIALS_MSG);\n } else if ((response == null ? void 0 : response.status) === 401 && this.options.auth) {\n throw new Error(INVALID_CREDENTIALS_MSG);\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 (_a = config.dependencies) == null ? void 0 : _a.forEach((dep, i) => {\n if (dep.id === void 0) {\n dep.id = i;\n }\n });\n return config;\n } else if ((response == null ? void 0 : response.status) === 401) {\n throw new Error(UNAUTHORIZED_MSG);\n }\n throw new Error(CONFIG_ERROR_MSG);\n }\n throw new Error(CONFIG_ERROR_MSG);\n}\nasync function resolve_cookies() {\n const { http_protocol, host } = await process_endpoint(\n this.app_reference,\n this.options.hf_token\n );\n try {\n if (this.options.auth) {\n const cookie_header = await get_cookie_header(\n http_protocol,\n host,\n this.options.auth,\n this.fetch,\n this.options.hf_token\n );\n if (cookie_header)\n this.set_cookies(cookie_header);\n }\n } catch (e) {\n throw Error(e.message);\n }\n}\nasync function get_cookie_header(http_protocol, host, auth, _fetch, hf_token) {\n const formData = new FormData();\n formData.append(\"username\", auth == null ? void 0 : auth[0]);\n formData.append(\"password\", auth == null ? void 0 : auth[1]);\n let headers = {};\n if (hf_token) {\n headers.Authorization = `Bearer ${hf_token}`;\n }\n const res = await _fetch(`${http_protocol}//${host}/${LOGIN_URL}`, {\n headers,\n method: \"POST\",\n body: formData,\n credentials: \"include\"\n });\n if (res.status === 200) {\n return res.headers.get(\"set-cookie\");\n } else if (res.status === 401) {\n throw new Error(INVALID_CREDENTIALS_MSG);\n } else {\n throw new Error(SPACE_METADATA_ERROR_MSG);\n }\n}\nfunction determine_protocol(endpoint) {\n if (endpoint.startsWith(\"http\")) {\n const { protocol, host, pathname } = 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: host + (pathname !== \"/\" ? pathname : \"\")\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 parse_and_set_cookies = (cookie_header) => {\n let cookies = [];\n const parts = cookie_header.split(/,(?=\\s*[^\\s=;]+=[^\\s=;]+)/);\n parts.forEach((cookie) => {\n const [cookie_name, cookie_value] = cookie.split(\";\")[0].split(\"=\");\n if (cookie_name && cookie_value) {\n cookies.push(`${cookie_name.trim()}=${cookie_value.trim()}`);\n }\n });\n return cookies;\n};\nconst RE_SPACE_NAME = /^[a-zA-Z0-9_\\-\\.]+\\/[a-zA-Z0-9_\\-\\.]+$/;\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().replace(/\\/$/, \"\");\n if (RE_SPACE_NAME.test(_app_reference)) {\n try {\n const res = await fetch(\n `https://huggingface.co/api/spaces/${_app_reference}/${HOST_URL}`,\n { headers }\n );\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_ERROR_MSG);\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}\nconst join_urls = (...urls) => {\n try {\n return urls.reduce((base_url, part) => {\n base_url = base_url.replace(/\\/+$/, \"\");\n part = part.replace(/^\\/+/, \"\");\n return new URL(part, base_url + \"/\").toString();\n });\n } catch (e) {\n throw new Error(INVALID_URL_MSG);\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 var _a, _b, _c, _d;\n const dependencyIndex = ((_a = config.dependencies.find(\n (dep) => dep.api_name === endpoint || dep.api_name === endpoint.replace(\"/\", \"\")\n )) == null ? void 0 : _a.id) || api_map[endpoint.replace(\"/\", \"\")] || -1;\n const dependencyTypes = dependencyIndex !== -1 ? (_b = config.dependencies.find((dep) => dep.id == dependencyIndex)) == null ? void 0 : _b.types : { continuous: false, generator: false, cancel: false };\n if (dependencyIndex !== -1 && ((_d = (_c = config.dependencies.find((dep) => dep.id == dependencyIndex)) == null ? void 0 : _c.inputs) == null ? void 0 : _d.length) !== parameters.length) {\n const components = config.dependencies.find((dep) => dep.id == dependencyIndex).inputs.map(\n (input) => {\n var _a2;\n return (_a2 = config.components.find((c) => c.id === input)) == null ? void 0 : _a2.type;\n }\n );\n try {\n components.forEach((comp, idx) => {\n if (comp === \"state\") {\n const new_param = {\n component: \"state\",\n example: null,\n parameter_default: null,\n parameter_has_default: true,\n parameter_name: null,\n hidden: true\n };\n parameters.splice(idx, 0, new_param);\n }\n });\n } catch (e) {\n console.error(e);\n }\n }\n const transform_type = (data, component, serializer, signature_type) => ({\n ...data,\n description: get_description(data == null ? void 0 : data.type, serializer),\n type: get_type(data == null ? void 0 : data.type, component, serializer, signature_type) || \"\"\n });\n transformed_info[category][endpoint] = {\n parameters: parameters.map(\n (p) => transform_type(p, p == null ? void 0 : p.component, p == null ? void 0 : p.serializer, \"parameter\")\n ),\n returns: returns.map(\n (r) => transform_type(r, r == null ? void 0 : r.component, r == null ? void 0 : 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 == null ? void 0 : 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 == null ? void 0 : 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 changed_state_ids: data.success ? data.output.changed_state_ids : void 0\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}\nconst map_data_to_params = (data, api_info) => {\n const parameters = Object.values(api_info.named_endpoints).flatMap(\n (values) => values.parameters\n );\n if (Array.isArray(data)) {\n if (data.length > parameters.length) {\n console.warn(\"Too many arguments provided for the endpoint.\");\n }\n return data;\n }\n const resolved_data = [];\n const provided_keys = Object.keys(data);\n parameters.forEach((param, index) => {\n if (data.hasOwnProperty(param.parameter_name)) {\n resolved_data[index] = data[param.parameter_name];\n } else if (param.parameter_has_default) {\n resolved_data[index] = param.parameter_default;\n } else {\n throw new Error(\n `No value provided for required parameter: ${param.parameter_name}`\n );\n }\n });\n provided_keys.forEach((key) => {\n if (!parameters.some((param) => param.parameter_name === key)) {\n throw new Error(\n `Parameter \\`${key}\\` is not a valid keyword argument. Please refer to the API for usage.`\n );\n }\n });\n resolved_data.forEach((value, idx) => {\n if (value === void 0 && !parameters[idx].parameter_has_default) {\n throw new Error(\n `No value provided for required parameter: ${parameters[idx].parameter_name}`\n );\n }\n });\n return resolved_data;\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((config == null ? void 0 : config.version) || \"2.0.0\", \"3.30\") < 0) {\n response = await this.fetch(SPACE_FETCHER_URL, {\n method: \"POST\",\n body: JSON.stringify({\n serialize: false,\n config: JSON.stringify(config)\n }),\n headers,\n credentials: \"include\"\n });\n } else {\n const url = join_urls(config.root, API_INFO_URL);\n response = await this.fetch(url, {\n headers,\n credentials: \"include\"\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 var _a;\n const headers = {};\n if ((_a = this == null ? void 0 : this.options) == null ? void 0 : _a.hf_token) {\n headers.Authorization = `Bearer ${this.options.hf_token}`;\n }\n const chunkSize = 1e3;\n const uploadResponses = [];\n let response;\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_URL}?upload_id=${upload_id}` : `${root_url}/${UPLOAD_URL}`;\n response = await this.fetch(upload_url, {\n method: \"POST\",\n body: formData,\n headers,\n credentials: \"include\"\n });\n } catch (e) {\n throw new Error(BROKEN_CONNECTION_MSG + e.message);\n }\n if (!response.ok) {\n const error_text = await response.text();\n return { error: `HTTP ${response.status}: ${error_text}` };\n }\n const output = await response.json();\n if (output) {\n uploadResponses.push(...output);\n }\n }\n return { files: uploadResponses };\n}\nasync function upload(file_data, root_url, upload_id, max_file_size) {\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 this.upload_files(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}\nclass Command {\n constructor(command, meta) {\n __publicField(this, \"type\");\n __publicField(this, \"command\");\n __publicField(this, \"meta\");\n __publicField(this, \"fileData\");\n this.type = \"command\";\n this.command = command;\n this.meta = meta;\n }\n}\nconst is_node = typeof process !== \"undefined\" && process.versions && process.versions.node;\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(data, type = void 0, path = [], root = false, endpoint_info = void 0) {\n if (Array.isArray(data)) {\n let blob_refs = [];\n await Promise.all(\n data.map(async (_, index) => {\n var _a;\n let new_path = path.slice();\n new_path.push(String(index));\n const array_refs = await walk_and_store_blobs(\n data[index],\n root ? ((_a = endpoint_info == null ? void 0 : endpoint_info.parameters[index]) == 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 && data instanceof globalThis.Buffer || data instanceof Blob) {\n return [\n {\n path,\n blob: new Blob([data]),\n type\n }\n ];\n } else if (typeof data === \"object\" && data !== null) {\n let blob_refs = [];\n for (const key of Object.keys(data)) {\n const new_path = [...path, key];\n const value = data[key];\n blob_refs = blob_refs.concat(\n await walk_and_store_blobs(\n value,\n void 0,\n new_path,\n false,\n endpoint_info\n )\n );\n }\n return blob_refs;\n }\n return [];\n}\nfunction skip_queue(id, config) {\n var _a, _b;\n let fn_queue = (_b = (_a = config == null ? void 0 : config.dependencies) == null ? void 0 : _a.find((dep) => dep.id == id)) == null ? void 0 : _b.queue;\n if (fn_queue != null) {\n return !fn_queue;\n }\n return !config.enable_queue;\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}\nfunction handle_file(file_or_url) {\n if (typeof file_or_url === \"string\") {\n if (file_or_url.startsWith(\"http://\") || file_or_url.startsWith(\"https://\")) {\n return {\n path: file_or_url,\n url: file_or_url,\n orig_name: file_or_url.split(\"/\").pop() ?? \"unknown\",\n meta: { _type: \"gradio.FileData\" }\n };\n }\n if (is_node) {\n return new Command(\"upload_file\", {\n path: file_or_url,\n name: file_or_url,\n orig_path: file_or_url\n });\n }\n } else if (typeof File !== \"undefined\" && file_or_url instanceof File) {\n return {\n path: file_or_url instanceof File ? file_or_url.name : \"blob\",\n orig_name: file_or_url instanceof File ? file_or_url.name : \"unknown\",\n // @ts-ignore\n blob: file_or_url instanceof File ? file_or_url : new Blob([file_or_url]),\n size: file_or_url instanceof Blob ? file_or_url.size : Buffer.byteLength(file_or_url),\n mime_type: file_or_url instanceof File ? file_or_url.type : \"application/octet-stream\",\n // Default MIME type for buffers\n meta: { _type: \"gradio.FileData\" }\n };\n } else if (file_or_url instanceof Buffer) {\n return new Blob([file_or_url]);\n } else if (file_or_url instanceof Blob) {\n return file_or_url;\n }\n throw new Error(\n \"Invalid input: must be a URL, File, Blob, or Buffer object.\"\n );\n}\nfunction handle_payload(resolved_payload, dependency, components, type, with_null_state = false) {\n if (type === \"input\" && !with_null_state) {\n throw new Error(\"Invalid code path. Cannot skip state inputs for input.\");\n }\n if (type === \"output\" && with_null_state) {\n return resolved_payload;\n }\n let updated_payload = [];\n let payload_index = 0;\n for (let i = 0; i < dependency.inputs.length; i++) {\n const input_id = dependency.inputs[i];\n const component = components.find((c) => c.id === input_id);\n if ((component == null ? void 0 : component.type) === \"state\") {\n if (with_null_state) {\n if (resolved_payload.length === dependency.inputs.length) {\n const value = resolved_payload[payload_index];\n updated_payload.push(value);\n payload_index++;\n } else {\n updated_payload.push(null);\n }\n } else {\n payload_index++;\n continue;\n }\n continue;\n } else {\n const value = resolved_payload[payload_index];\n updated_payload.push(value);\n payload_index++;\n }\n }\n return updated_payload;\n}\nasync function handle_blob(endpoint, data, api_info) {\n const self = this;\n await process_local_file_commands(self, data);\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 instanceof File ? blob == null ? void 0 : blob.name : void 0\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 process_local_file_commands(client2, data) {\n var _a, _b;\n const root = ((_a = client2.config) == null ? void 0 : _a.root) || ((_b = client2.config) == null ? void 0 : _b.root_url);\n if (!root) {\n throw new Error(ROOT_URL_ERROR_MSG);\n }\n await recursively_process_commands(client2, data);\n}\nasync function recursively_process_commands(client2, data, path = []) {\n for (const key in data) {\n if (data[key] instanceof Command) {\n await process_single_command(client2, data, key);\n } else if (typeof data[key] === \"object\" && data[key] !== null) {\n await recursively_process_commands(client2, data[key], [...path, key]);\n }\n }\n}\nasync function process_single_command(client2, data, key) {\n var _a, _b;\n let cmd_item = data[key];\n const root = ((_a = client2.config) == null ? void 0 : _a.root) || ((_b = client2.config) == null ? void 0 : _b.root_url);\n if (!root) {\n throw new Error(ROOT_URL_ERROR_MSG);\n }\n try {\n let fileBuffer;\n let fullPath;\n if (typeof process !== \"undefined\" && process.versions && process.versions.node) {\n const fs = await import(\"fs/promises\");\n const path = await import(\"path\");\n fullPath = path.resolve(process.cwd(), cmd_item.meta.path);\n fileBuffer = await fs.readFile(fullPath);\n } else {\n throw new Error(NODEJS_FS_ERROR_MSG);\n }\n const file = new Blob([fileBuffer], { type: \"application/octet-stream\" });\n const response = await client2.upload_files(root, [file]);\n const file_url = response.files && response.files[0];\n if (file_url) {\n const fileData = new FileData({\n path: file_url,\n orig_name: cmd_item.meta.name || \"\"\n });\n data[key] = fileData;\n }\n } catch (error) {\n console.error(FILE_PROCESSING_ERROR_MSG, error);\n }\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(url, {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: { ...headers, ...additional_headers },\n credentials: \"include\"\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.find((dep) => dep.id == endpoint);\n } else {\n const trimmed_endpoint = endpoint.replace(/^\\//, \"\");\n dependency = this.config.dependencies.find(\n (dep) => dep.id == this.api_map[trimmed_endpoint]\n );\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, null, null, true);\n let result;\n for await (const message of app) {\n if (message.type === \"data\") {\n if (status_complete) {\n resolve(result);\n }\n data_returned = true;\n result = message;\n }\n if (message.type === \"status\") {\n if (message.stage === \"error\")\n reject(message);\n if (message.stage === \"complete\") {\n status_complete = true;\n if (data_returned) {\n resolve(result);\n }\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: SPACE_STATUS_ERROR_MSG,\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 (!r.ok || 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_URL}`,\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_URL}`,\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, auth } = 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 { http_protocol, host } = await process_endpoint(\n app_reference,\n hf_token\n );\n let cookies = null;\n if (auth) {\n const cookie_header = await get_cookie_header(\n http_protocol,\n host,\n auth,\n fetch\n );\n if (cookie_header)\n cookies = parse_and_set_cookies(cookie_header);\n }\n const headers = {\n Authorization: `Bearer ${hf_token}`,\n \"Content-Type\": \"application/json\",\n ...cookies ? { Cookie: cookies.join(\"; \") } : {}\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 try {\n if (!hardware) {\n original_hardware = await get_space_hardware(app_reference, hf_token);\n }\n } catch (e) {\n throw Error(SPACE_METADATA_ERROR_MSG + e.message);\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(\n get_space_reference(duplicated_space.url),\n options\n );\n } catch (e) {\n throw new Error(e);\n }\n}\nfunction get_space_reference(url) {\n const regex = /https:\\/\\/huggingface.co\\/spaces\\/([^/]+\\/[^/]+)/;\n const match = url.match(regex);\n if (match) {\n return match[1];\n }\n}\nclass TextLineStream extends TransformStream {\n /** Constructs a new instance. */\n constructor(options = { allowCR: false }) {\n super({\n transform: (chars, controller) => {\n chars = __privateGet(this, _currentLine) + chars;\n while (true) {\n const lfIndex = chars.indexOf(\"\\n\");\n const crIndex = options.allowCR ? chars.indexOf(\"\\r\") : -1;\n if (crIndex !== -1 && crIndex !== chars.length - 1 && (lfIndex === -1 || lfIndex - 1 > crIndex)) {\n controller.enqueue(chars.slice(0, crIndex));\n chars = chars.slice(crIndex + 1);\n continue;\n }\n if (lfIndex === -1)\n break;\n const endIndex = chars[lfIndex - 1] === \"\\r\" ? lfIndex - 1 : lfIndex;\n controller.enqueue(chars.slice(0, endIndex));\n chars = chars.slice(lfIndex + 1);\n }\n __privateSet(this, _currentLine, chars);\n },\n flush: (controller) => {\n if (__privateGet(this, _currentLine) === \"\")\n return;\n const currentLine = options.allowCR && __privateGet(this, _currentLine).endsWith(\"\\r\") ? __privateGet(this, _currentLine).slice(0, -1) : __privateGet(this, _currentLine);\n controller.enqueue(currentLine);\n }\n });\n __privateAdd(this, _currentLine, \"\");\n }\n}\n_currentLine = new WeakMap();\nfunction stream$1(input) {\n let decoder = new TextDecoderStream();\n let split2 = new TextLineStream({ allowCR: true });\n return input.pipeThrough(decoder).pipeThrough(split2);\n}\nfunction split(input) {\n let rgx = /[:]\\s*/;\n let match = rgx.exec(input);\n let idx = match && match.index;\n if (idx) {\n return [\n input.substring(0, idx),\n input.substring(idx + match[0].length)\n ];\n }\n}\nfunction fallback(headers, key, value) {\n let tmp = headers.get(key);\n if (!tmp)\n headers.set(key, value);\n}\nasync function* events(res, signal) {\n if (!res.body)\n return;\n let iter = stream$1(res.body);\n let line, reader = iter.getReader();\n let event;\n for (; ; ) {\n if (signal && signal.aborted) {\n return reader.cancel();\n }\n line = await reader.read();\n if (line.done)\n return;\n if (!line.value) {\n if (event)\n yield event;\n event = void 0;\n continue;\n }\n let [field, value] = split(line.value) || [];\n if (!field)\n continue;\n if (field === \"data\") {\n event || (event = {});\n event[field] = event[field] ? event[field] + \"\\n\" + value : value;\n } else if (field === \"event\") {\n event || (event = {});\n event[field] = value;\n } else if (field === \"id\") {\n event || (event = {});\n event[field] = +value || value;\n } else if (field === \"retry\") {\n event || (event = {});\n event[field] = +value || void 0;\n }\n }\n}\nasync function stream(input, init) {\n let req = new Request(input, init);\n fallback(req.headers, \"Accept\", \"text/event-stream\");\n fallback(req.headers, \"Content-Type\", \"application/json\");\n let r = await fetch(req);\n if (!r.ok)\n throw r;\n return events(r, req.signal);\n}\nasync function open_stream() {\n let {\n event_callbacks,\n unclosed_events,\n pending_stream_messages,\n stream_status,\n config,\n jwt\n } = this;\n const that = this;\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n stream_status.open = true;\n let stream2 = 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 if (jwt) {\n url.searchParams.set(\"__sign\", jwt);\n }\n stream2 = this.stream(url);\n if (!stream2) {\n console.warn(\"Cannot connect to SSE endpoint: \" + url.toString());\n return;\n }\n stream2.onmessage = async function(event) {\n let _data = JSON.parse(event.data);\n if (_data.msg === \"close_stream\") {\n close_stream(stream_status, that.abort_controller);\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) => event_callbacks[event_id2](_data)\n )\n );\n } else if (event_callbacks[event_id] && config) {\n if (_data.msg === \"process_completed\" && [\"sse\", \"sse_v1\", \"sse_v2\", \"sse_v2.1\", \"sse_v3\"].includes(\n config.protocol\n )) {\n unclosed_events.delete(event_id);\n }\n let fn2 = event_callbacks[event_id];\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n setTimeout(fn2, 0, _data);\n } else {\n fn2(_data);\n }\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 stream2.onerror = async function() {\n await Promise.all(\n Object.keys(event_callbacks).map(\n (event_id) => event_callbacks[event_id]({\n msg: \"unexpected_error\",\n message: BROKEN_CONNECTION_MSG\n })\n )\n );\n };\n}\nfunction close_stream(stream_status, abort_controller) {\n if (stream_status) {\n stream_status.open = false;\n abort_controller == null ? void 0 : abort_controller.abort();\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 readable_stream(input, init = {}) {\n const instance = {\n close: () => {\n throw new Error(\"Method not implemented.\");\n },\n onerror: null,\n onmessage: null,\n onopen: null,\n readyState: 0,\n url: input.toString(),\n withCredentials: false,\n CONNECTING: 0,\n OPEN: 1,\n CLOSED: 2,\n addEventListener: () => {\n throw new Error(\"Method not implemented.\");\n },\n dispatchEvent: () => {\n throw new Error(\"Method not implemented.\");\n },\n removeEventListener: () => {\n throw new Error(\"Method not implemented.\");\n }\n };\n stream(input, init).then(async (res) => {\n instance.readyState = instance.OPEN;\n try {\n for await (const chunk of res) {\n instance.onmessage && instance.onmessage(chunk);\n }\n instance.readyState = instance.CLOSED;\n } catch (e) {\n instance.onerror && instance.onerror(e);\n instance.readyState = instance.CLOSED;\n }\n }).catch((e) => {\n console.error(e);\n instance.onerror && instance.onerror(e);\n instance.readyState = instance.CLOSED;\n });\n return instance;\n}\nfunction submit(endpoint, data, event_data, trigger_id, all_events) {\n var _a;\n try {\n let fire_event = function(event) {\n if (all_events || events_to_publish[event.type]) {\n push_event(event);\n }\n }, close = function() {\n done = true;\n while (resolvers.length > 0)\n resolvers.shift()({\n value: void 0,\n done: true\n });\n }, push = function(data2) {\n if (done)\n return;\n if (resolvers.length > 0) {\n resolvers.shift()(data2);\n } else {\n values.push(data2);\n }\n }, push_error = function(error) {\n push(thenable_reject(error));\n close();\n }, push_event = function(event) {\n push({ value: event, done: false });\n }, next = function() {\n if (values.length > 0)\n return Promise.resolve(values.shift());\n if (done)\n return Promise.resolve({ value: void 0, done: true });\n return new Promise((resolve) => resolvers.push(resolve));\n };\n const { hf_token } = this.options;\n const {\n fetch: fetch2,\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 options\n } = this;\n const that = 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 resolved_data = map_data_to_params(data, api_info);\n let websocket;\n let stream2;\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 let last_status = {};\n let url_params = typeof window !== \"undefined\" && typeof document !== \"undefined\" ? new URLSearchParams(window.location.search).toString() : \"\";\n const events_to_publish = ((_a = options == null ? void 0 : options.events) == null ? void 0 : _a.reduce(\n (acc, event) => {\n acc[event] = true;\n return acc;\n },\n {}\n )) || {};\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 reset_request = {};\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 reset_request = { fn_index, session_hash };\n } else {\n close_stream(stream_status, that.abort_controller);\n close();\n reset_request = { event_id };\n cancel_request = { event_id, session_hash, fn_index };\n }\n try {\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n if (\"event_id\" in cancel_request) {\n await fetch2(`${config.root}/cancel`, {\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n body: JSON.stringify(cancel_request)\n });\n }\n await fetch2(`${config.root}/reset`, {\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n body: JSON.stringify(reset_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 const resolve_heartbeat = async (config2) => {\n await this._resolve_hearbeat(config2);\n };\n async function handle_render_config(render_config) {\n if (!config)\n return;\n let render_id = render_config.render_id;\n config.components = [\n ...config.components.filter((c) => c.props.rendered_in !== render_id),\n ...render_config.components\n ];\n config.dependencies = [\n ...config.dependencies.filter((d) => d.rendered_in !== render_id),\n ...render_config.dependencies\n ];\n const any_state = config.components.some((c) => c.type === \"state\");\n const any_unload = config.dependencies.some(\n (d) => d.targets.some((t) => t[1] === \"unload\")\n );\n config.connect_heartbeat = any_state || any_unload;\n await resolve_heartbeat(config);\n fire_event({\n type: \"render\",\n data: render_config,\n endpoint: _endpoint,\n fn_index\n });\n }\n this.handle_blob(config.root, resolved_data, endpoint_info).then(\n async (_payload) => {\n var _a2;\n let input_data = handle_payload(\n _payload,\n dependency,\n config.components,\n \"input\",\n true\n );\n payload = {\n data: input_data || [],\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: handle_payload(\n data2,\n dependency,\n config.components,\n \"output\",\n options.with_null_state\n ),\n time: /* @__PURE__ */ new Date(),\n event_data,\n trigger_id\n });\n if (output.render_config) {\n handle_render_config(output.render_config);\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: handle_payload(\n data2.data,\n dependency,\n config.components,\n \"output\",\n options.with_null_state\n ),\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 if (this.jwt) {\n url.searchParams.set(\"__sign\", this.jwt);\n }\n stream2 = this.stream(url);\n if (!stream2) {\n return Promise.reject(\n new Error(\"Cannot connect to SSE endpoint: \" + url.toString())\n );\n }\n stream2.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 stream2 == null ? void 0 : stream2.close();\n 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 stream2 == null ? void 0 : stream2.close();\n 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: handle_payload(\n data2.data,\n dependency,\n config.components,\n \"output\",\n options.with_null_state\n ),\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 stream2 == null ? void 0 : stream2.close();\n 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 = \"\";\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n hostname = (_a2 = window == null ? void 0 : window.location) == null ? void 0 : _a2.hostname;\n }\n let hfhubdev = \"dev.spaces.huggingface.tech\";\n const origin = hostname.includes(\".dev.\") ? `https://moon-${hostname.split(\".\")[1]}.${hfhubdev}` : `https://huggingface.co`;\n const is_iframe = typeof window !== \"undefined\" && typeof document !== \"undefined\" && window.parent != window;\n const is_zerogpu_space = dependency.zerogpu && config.space_id;\n const zerogpu_auth_promise = is_iframe && is_zerogpu_space ? 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(async ([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: handle_payload(\n data2.data,\n dependency,\n config.components,\n \"output\",\n options.with_null_state\n ),\n endpoint: _endpoint,\n fn_index\n });\n if (data2.render_config) {\n await handle_render_config(data2.render_config);\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\", \"sse_v3\"].includes(protocol)) {\n close_stream(stream_status, that.abort_controller);\n stream_status.open = false;\n close();\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 await this.open_stream();\n }\n }\n });\n }\n }\n );\n let done = false;\n const values = [];\n const resolvers = [];\n const iterator = {\n [Symbol.asyncIterator]: () => iterator,\n next,\n throw: async (value) => {\n push_error(value);\n return next();\n },\n return: async () => {\n close();\n return next();\n },\n cancel\n };\n return iterator;\n } catch (error) {\n console.error(\"Submit function encountered an error:\", error);\n throw error;\n }\n}\nfunction thenable_reject(error) {\n return {\n then: (resolve, reject) => reject(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.find((dep) => dep.id == 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.find(\n (dep) => dep.id == api_map[trimmed_endpoint]\n );\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 Client {\n constructor(app_reference, options = { events: [\"data\"] }) {\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 __publicField(this, \"cookies\", null);\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, \"abort_controller\", null);\n __publicField(this, \"stream_instance\", null);\n __publicField(this, \"view_api\");\n __publicField(this, \"upload_files\");\n __publicField(this, \"upload\");\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 __publicField(this, \"resolve_cookies\");\n this.app_reference = app_reference;\n if (!options.events) {\n options.events = [\"data\"];\n }\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 this.resolve_cookies = resolve_cookies.bind(this);\n this.upload = upload.bind(this);\n }\n fetch(input, init) {\n const headers = new Headers((init == null ? void 0 : init.headers) || {});\n if (this && this.cookies) {\n headers.append(\"Cookie\", this.cookies);\n }\n return fetch(input, { ...init, headers });\n }\n stream(url) {\n this.abort_controller = new AbortController();\n this.stream_instance = readable_stream(url.toString(), {\n signal: this.abort_controller.signal\n });\n return this.stream_instance;\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 global.WebSocket = ws.WebSocket;\n }\n try {\n if (this.options.auth) {\n await this.resolve_cookies();\n }\n await this._resolve_config().then(\n ({ config }) => this._resolve_hearbeat(config)\n );\n } catch (e) {\n throw Error(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 async _resolve_hearbeat(_config) {\n if (_config) {\n this.config = _config;\n if (this.config && this.config.connect_heartbeat) {\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 this.cookies\n );\n }\n }\n }\n if (_config.space_id && this.options.hf_token) {\n this.jwt = await get_jwt(_config.space_id, this.options.hf_token);\n }\n if (this.config && this.config.connect_heartbeat) {\n const heartbeat_url = new URL(\n `${this.config.root}/heartbeat/${this.session_hash}`\n );\n if (this.jwt) {\n heartbeat_url.searchParams.set(\"__sign\", this.jwt);\n }\n if (!this.heartbeat_event) {\n this.heartbeat_event = this.stream(heartbeat_url);\n }\n }\n }\n static async connect(app_reference, options = {\n events: [\"data\"]\n }) {\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 events: [\"data\"]\n }) {\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(CONFIG_ERROR_MSG);\n }\n return this.config_success(config);\n } catch (e) {\n if (space_id && status_callback) {\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 throw Error(e);\n }\n }\n }\n async config_success(_config) {\n this.config = _config;\n if (typeof window !== \"undefined\" && typeof document !== \"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(API_INFO_ERROR_MSG + e.message);\n }\n return this.prepare_return_obj();\n }\n async handle_space_success(status) {\n if (!this) {\n throw new Error(CONFIG_ERROR_MSG);\n }\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(CONFIG_ERROR_MSG);\n }\n const _config = await this.config_success(this.config);\n return _config;\n } catch (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 throw e;\n }\n }\n }\n async component_server(component_id, fn_name, data) {\n var _a;\n if (!this.config) {\n throw new Error(CONFIG_ERROR_MSG);\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(`${root_url}/component_server/`, {\n method: \"POST\",\n body,\n headers,\n credentials: \"include\"\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 set_cookies(raw_cookies) {\n this.cookies = parse_and_set_cookies(raw_cookies).join(\"; \");\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 events: [\"data\"]\n}) {\n return await Client.connect(app_reference, options);\n}\nasync function duplicate_space(app_reference, options) {\n return await Client.duplicate(app_reference, options);\n}\nexport {\n Client,\n FileData,\n client,\n duplicate_space as duplicate,\n handle_file,\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-DmVQEACr.js"}