{"version":3,"mappings":"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","names":["__defProp","__defNormalProp","obj","key","value","__publicField","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","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","e","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","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","update_object","object","newValue","stack","key2","walk_and_store_blobs","root","endpoint_info","blob_refs","_","new_path","array_refs","NodeBlob","skip_queue","fn_queue","post_message","message","origin","_rej","channel","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","get_space_reference","regex","match","open_stream","event_callbacks","unclosed_events","pending_stream_messages","stream_status","jwt","stream","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","fetch2","session_hash","post_data2","fn_index","get_endpoint_info","websocket","_endpoint","payload","complete","url_params","cancel_request","resolve_heartbeat","config2","handle_render_config","render_config","render_id","any_state","any_unload","t","_payload","status_code","data2","evt","status2","hostname","is_iframe","is_zerogpu_space","callback","msg","blobParts","init","EventSourceModule","__vitePreload","n","ws","_config","heartbeat_url","client2","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 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.\";\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 };\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?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}\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 const is_image = type === \"Image\";\n return [\n {\n path,\n blob: is_image ? false : new NodeBlob([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}\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 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 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);\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: 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 (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}\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 if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n stream_status.open = true;\n let stream = 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 stream = await this.stream(url);\n if (!stream) {\n console.warn(\"Cannot connect to SSE endpoint: \" + url.toString());\n return;\n }\n stream.onmessage = async function(event) {\n let _data = JSON.parse(event.data);\n if (_data.msg === \"close_stream\") {\n close_stream(stream_status, stream);\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\"].includes(config.protocol)) {\n unclosed_events.delete(event_id);\n if (unclosed_events.size === 0) {\n close_stream(stream_status, stream);\n }\n }\n let fn2 = event_callbacks[event_id];\n if (typeof window !== \"undefined\") {\n window.setTimeout(fn2, 0, _data);\n } else {\n setImmediate(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 stream.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 close_stream(stream_status, stream);\n };\n}\nfunction close_stream(stream_status, stream) {\n if (stream_status && stream) {\n stream_status.open = false;\n stream == null ? void 0 : stream.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: 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 } = 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 stream;\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 stream == null ? void 0 : stream.close();\n cancel_request = { event_id };\n }\n try {\n if (!config) {\n throw new Error(\"Could not resolve app config\");\n }\n await fetch2(`${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 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 _a;\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 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: 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 if (this.jwt) {\n url.searchParams.set(\"__sign\", this.jwt);\n }\n stream = await this.stream(url);\n if (!stream) {\n return Promise.reject(\n new Error(\"Cannot connect to SSE endpoint: \" + url.toString())\n );\n }\n stream.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 stream == null ? void 0 : stream.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 stream == null ? void 0 : stream.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 stream == null ? void 0 : stream.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\") {\n hostname = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a.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\" && 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: data2.data,\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\"].includes(protocol)) {\n close_stream(stream_status, stream);\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 await 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.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 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 __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, \"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 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 async stream(url) {\n if (typeof window === \"undefined\" || typeof EventSource === \"undefined\") {\n try {\n const EventSourceModule = await import(\"eventsource\");\n return new EventSourceModule.default(url.toString());\n } catch (error) {\n console.error(\"Failed to load EventSource module:\", error);\n throw error;\n }\n } else {\n return new EventSource(url.toString());\n }\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 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 var _a;\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 = await this.stream(heartbeat_url);\n } else {\n (_a = this.heartbeat_event) == null ? void 0 : _a.close();\n }\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(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\") {\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 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 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-CmhFtYKU.js"}