@gradio/client 0.19.3 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +8 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/helpers/api_info.d.ts +1 -0
- package/dist/helpers/api_info.d.ts.map +1 -1
- package/dist/helpers/data.d.ts.map +1 -1
- package/dist/helpers/init_helpers.d.ts +4 -1
- package/dist/helpers/init_helpers.d.ts.map +1 -1
- package/dist/index.js +236 -75
- package/dist/test/handlers.d.ts.map +1 -1
- package/dist/test/test_data.d.ts.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/duplicate.d.ts.map +1 -1
- package/dist/utils/post_data.d.ts.map +1 -1
- package/dist/utils/predict.d.ts.map +1 -1
- package/dist/utils/submit.d.ts.map +1 -1
- package/dist/utils/upload_files.d.ts.map +1 -1
- package/dist/utils/view_api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +70 -28
- package/src/constants.ts +5 -0
- package/src/helpers/api_info.ts +44 -17
- package/src/helpers/data.ts +9 -22
- package/src/helpers/init_helpers.ts +98 -9
- package/src/test/api_info.test.ts +69 -4
- package/src/test/data.test.ts +13 -16
- package/src/test/handlers.ts +249 -2
- package/src/test/init.test.ts +2 -2
- package/src/test/init_helpers.test.ts +53 -1
- package/src/test/test_data.ts +3 -0
- package/src/types.ts +6 -0
- package/src/utils/duplicate.ts +27 -2
- package/src/utils/post_data.ts +2 -1
- package/src/utils/predict.ts +4 -2
- package/src/utils/submit.ts +42 -9
- package/src/utils/upload_files.ts +2 -1
- package/src/utils/view_api.ts +7 -4
package/src/utils/predict.ts
CHANGED
@@ -15,10 +15,12 @@ export async function predict(
|
|
15
15
|
}
|
16
16
|
|
17
17
|
if (typeof endpoint === "number") {
|
18
|
-
dependency = this.config.dependencies
|
18
|
+
dependency = this.config.dependencies.find((dep) => dep.id == endpoint)!;
|
19
19
|
} else {
|
20
20
|
const trimmed_endpoint = endpoint.replace(/^\//, "");
|
21
|
-
dependency = this.config.dependencies
|
21
|
+
dependency = this.config.dependencies.find(
|
22
|
+
(dep) => dep.id == this.api_map[trimmed_endpoint]
|
23
|
+
)!;
|
22
24
|
}
|
23
25
|
|
24
26
|
if (dependency?.types.continuous) {
|
package/src/utils/submit.ts
CHANGED
@@ -162,6 +162,35 @@ export function submit(
|
|
162
162
|
}
|
163
163
|
}
|
164
164
|
|
165
|
+
const resolve_heartbeat = async (config: Config): Promise<void> => {
|
166
|
+
await this._resolve_hearbeat(config);
|
167
|
+
};
|
168
|
+
|
169
|
+
async function handle_render_config(render_config: any): Promise<void> {
|
170
|
+
if (!config) return;
|
171
|
+
let render_id: number = render_config.render_id;
|
172
|
+
config.components = [
|
173
|
+
...config.components.filter((c) => c.props.rendered_in !== render_id),
|
174
|
+
...render_config.components
|
175
|
+
];
|
176
|
+
config.dependencies = [
|
177
|
+
...config.dependencies.filter((d) => d.rendered_in !== render_id),
|
178
|
+
...render_config.dependencies
|
179
|
+
];
|
180
|
+
const any_state = config.components.some((c) => c.type === "state");
|
181
|
+
const any_unload = config.dependencies.some((d) =>
|
182
|
+
d.targets.some((t) => t[1] === "unload")
|
183
|
+
);
|
184
|
+
config.connect_heartbeat = any_state || any_unload;
|
185
|
+
await resolve_heartbeat(config);
|
186
|
+
fire_event({
|
187
|
+
type: "render",
|
188
|
+
data: render_config,
|
189
|
+
endpoint: _endpoint,
|
190
|
+
fn_index
|
191
|
+
});
|
192
|
+
}
|
193
|
+
|
165
194
|
this.handle_blob(config.root, resolved_data, endpoint_info).then(
|
166
195
|
async (_payload) => {
|
167
196
|
payload = {
|
@@ -201,6 +230,9 @@ export function submit(
|
|
201
230
|
event_data,
|
202
231
|
trigger_id
|
203
232
|
});
|
233
|
+
if (output.render_config) {
|
234
|
+
handle_render_config(output.render_config);
|
235
|
+
}
|
204
236
|
|
205
237
|
fire_event({
|
206
238
|
type: "status",
|
@@ -496,8 +528,12 @@ export function submit(
|
|
496
528
|
const origin = hostname.includes(".dev.")
|
497
529
|
? `https://moon-${hostname.split(".")[1]}.${hfhubdev}`
|
498
530
|
: `https://huggingface.co`;
|
531
|
+
|
532
|
+
const is_iframe =
|
533
|
+
typeof window !== "undefined" && window.parent != window;
|
534
|
+
const is_zerogpu_space = dependency.zerogpu && config.space_id;
|
499
535
|
const zerogpu_auth_promise =
|
500
|
-
|
536
|
+
is_iframe && is_zerogpu_space
|
501
537
|
? post_message<Headers>("zerogpu-headers", origin)
|
502
538
|
: Promise.resolve(null);
|
503
539
|
const post_data_promise = zerogpu_auth_promise.then((headers) => {
|
@@ -602,12 +638,7 @@ export function submit(
|
|
602
638
|
fn_index
|
603
639
|
});
|
604
640
|
if (data.render_config) {
|
605
|
-
|
606
|
-
type: "render",
|
607
|
-
data: data.render_config,
|
608
|
-
endpoint: _endpoint,
|
609
|
-
fn_index
|
610
|
-
});
|
641
|
+
await handle_render_config(data.render_config);
|
611
642
|
}
|
612
643
|
|
613
644
|
if (complete) {
|
@@ -694,13 +725,15 @@ function get_endpoint_info(
|
|
694
725
|
if (typeof endpoint === "number") {
|
695
726
|
fn_index = endpoint;
|
696
727
|
endpoint_info = api_info.unnamed_endpoints[fn_index];
|
697
|
-
dependency = config.dependencies
|
728
|
+
dependency = config.dependencies.find((dep) => dep.id == endpoint)!;
|
698
729
|
} else {
|
699
730
|
const trimmed_endpoint = endpoint.replace(/^\//, "");
|
700
731
|
|
701
732
|
fn_index = api_map[trimmed_endpoint];
|
702
733
|
endpoint_info = api_info.named_endpoints[endpoint.trim()];
|
703
|
-
dependency = config.dependencies
|
734
|
+
dependency = config.dependencies.find(
|
735
|
+
(dep) => dep.id == api_map[trimmed_endpoint]
|
736
|
+
)!;
|
704
737
|
}
|
705
738
|
|
706
739
|
if (typeof fn_index !== "number") {
|
package/src/utils/view_api.ts
CHANGED
@@ -3,7 +3,7 @@ import semiver from "semiver";
|
|
3
3
|
import { API_INFO_URL, BROKEN_CONNECTION_MSG } from "../constants";
|
4
4
|
import { Client } from "../client";
|
5
5
|
import { SPACE_FETCHER_URL } from "../constants";
|
6
|
-
import { transform_api_info } from "../helpers/api_info";
|
6
|
+
import { join_urls, transform_api_info } from "../helpers/api_info";
|
7
7
|
|
8
8
|
export async function view_api(this: Client): Promise<any> {
|
9
9
|
if (this.api_info) return this.api_info;
|
@@ -34,11 +34,14 @@ export async function view_api(this: Client): Promise<any> {
|
|
34
34
|
serialize: false,
|
35
35
|
config: JSON.stringify(config)
|
36
36
|
}),
|
37
|
-
headers
|
37
|
+
headers,
|
38
|
+
credentials: "include"
|
38
39
|
});
|
39
40
|
} else {
|
40
|
-
|
41
|
-
|
41
|
+
const url = join_urls(config.root, API_INFO_URL);
|
42
|
+
response = await this.fetch(url, {
|
43
|
+
headers,
|
44
|
+
credentials: "include"
|
42
45
|
});
|
43
46
|
}
|
44
47
|
|