@gradio/client 0.20.1 → 1.1.1
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 +201 -0
- package/README.md +21 -36
- package/dist/client.d.ts +6 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/helpers/data.d.ts +15 -1
- package/dist/helpers/data.d.ts.map +1 -1
- package/dist/helpers/spaces.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +490 -114
- package/dist/test/handlers.d.ts +1 -0
- package/dist/test/handlers.d.ts.map +1 -1
- package/dist/test/test_data.d.ts.map +1 -1
- package/dist/types.d.ts +94 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/handle_blob.d.ts +2 -1
- package/dist/utils/handle_blob.d.ts.map +1 -1
- package/dist/utils/predict.d.ts +2 -2
- package/dist/utils/predict.d.ts.map +1 -1
- package/dist/utils/stream.d.ts +2 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/submit.d.ts +2 -2
- package/dist/utils/submit.d.ts.map +1 -1
- package/index.html +39 -0
- package/package.json +5 -2
- package/src/client.ts +40 -35
- package/src/constants.ts +4 -0
- package/src/helpers/api_info.ts +1 -1
- package/src/helpers/data.ts +124 -10
- package/src/helpers/spaces.ts +2 -1
- package/src/index.ts +6 -1
- package/src/test/api_info.test.ts +0 -1
- package/src/test/data.test.ts +201 -26
- package/src/test/handlers.ts +9 -1
- package/src/test/stream.test.ts +12 -10
- package/src/test/test_data.ts +8 -5
- package/src/test/upload_files.test.ts +1 -1
- package/src/types.ts +111 -26
- package/src/utils/handle_blob.ts +91 -1
- package/src/utils/predict.ts +15 -16
- package/src/utils/stream.ts +66 -13
- package/src/utils/submit.ts +156 -63
- package/src/utils/upload_files.ts +1 -1
- package/vite.config.js +37 -24
package/dist/test/handlers.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/test/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,KAAK,CAAC;
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/test/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,KAAK,CAAC;AAuBzD,eAAO,MAAM,gBAAgB,qCAAqC,CAAC;AAqBnE,eAAO,MAAM,QAAQ,EAAE,cAAc,EAwoBpC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test_data.d.ts","sourceRoot":"","sources":["../../src/test/test_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAuB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,OAAO,CA6CjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAiC9C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,
|
1
|
+
{"version":3,"file":"test_data.d.ts","sourceRoot":"","sources":["../../src/test/test_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAuB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,OAAO,CA6CjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAiC9C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAkW7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;CAoBvC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,OAAO,CA0C/C,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAC"}
|
package/dist/types.d.ts
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
/// <reference types="node" />
|
2
2
|
import { hardware_types } from "./helpers/spaces";
|
3
|
+
import type { SvelteComponent } from "svelte";
|
4
|
+
import type { ComponentType } from "svelte";
|
3
5
|
export interface ApiData {
|
4
6
|
label: string;
|
5
7
|
parameter_name: string;
|
@@ -47,9 +49,23 @@ export interface BlobRef {
|
|
47
49
|
blob: Blob | File | false;
|
48
50
|
}
|
49
51
|
export type DataType = string | Buffer | Record<string, any> | any[];
|
50
|
-
export
|
51
|
-
|
52
|
-
|
52
|
+
export declare class Command {
|
53
|
+
type: string;
|
54
|
+
command: string;
|
55
|
+
meta: {
|
56
|
+
path: string;
|
57
|
+
name: string;
|
58
|
+
orig_path: string;
|
59
|
+
};
|
60
|
+
fileData?: FileData;
|
61
|
+
constructor(command: string, meta: {
|
62
|
+
path: string;
|
63
|
+
name: string;
|
64
|
+
orig_path: string;
|
65
|
+
});
|
66
|
+
}
|
67
|
+
export type SubmitFunction = (endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown, trigger_id?: number | null) => SubmitIterable<GradioEvent>;
|
68
|
+
export type PredictFunction = (endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown) => Promise<PredictReturn>;
|
53
69
|
export type client_return = {
|
54
70
|
config: Config | undefined;
|
55
71
|
predict: PredictFunction;
|
@@ -57,11 +73,16 @@ export type client_return = {
|
|
57
73
|
component_server: (component_id: number, fn_name: string, data: unknown[]) => any;
|
58
74
|
view_api: (_fetch: typeof fetch) => Promise<ApiInfo<JsApiData>>;
|
59
75
|
};
|
60
|
-
export
|
61
|
-
|
62
|
-
off: event;
|
76
|
+
export interface SubmitIterable<T> extends AsyncIterable<T> {
|
77
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
63
78
|
cancel: () => Promise<void>;
|
64
|
-
|
79
|
+
}
|
80
|
+
export type PredictReturn = {
|
81
|
+
type: EventType;
|
82
|
+
time: Date;
|
83
|
+
data: unknown;
|
84
|
+
endpoint: string;
|
85
|
+
fn_index: number;
|
65
86
|
};
|
66
87
|
export type SpaceStatus = SpaceStatusNormal | SpaceStatusError;
|
67
88
|
export interface SpaceStatusNormal {
|
@@ -83,7 +104,7 @@ export interface Config {
|
|
83
104
|
analytics_enabled: boolean;
|
84
105
|
connect_heartbeat: boolean;
|
85
106
|
auth_message: string;
|
86
|
-
components:
|
107
|
+
components: ComponentMeta[];
|
87
108
|
css: string | null;
|
88
109
|
js: string | null;
|
89
110
|
head: string | null;
|
@@ -106,6 +127,41 @@ export interface Config {
|
|
106
127
|
path: string;
|
107
128
|
protocol: "sse_v3" | "sse_v2.1" | "sse_v2" | "sse_v1" | "sse" | "ws";
|
108
129
|
max_file_size?: number;
|
130
|
+
theme_hash?: number;
|
131
|
+
}
|
132
|
+
export interface ComponentMeta {
|
133
|
+
type: string;
|
134
|
+
id: number;
|
135
|
+
has_modes: boolean;
|
136
|
+
props: SharedProps;
|
137
|
+
instance: SvelteComponent;
|
138
|
+
component: ComponentType<SvelteComponent>;
|
139
|
+
documentation?: Documentation;
|
140
|
+
children?: ComponentMeta[];
|
141
|
+
parent?: ComponentMeta;
|
142
|
+
value?: any;
|
143
|
+
component_class_id: string;
|
144
|
+
key: string | number | null;
|
145
|
+
rendered_in?: number;
|
146
|
+
}
|
147
|
+
interface SharedProps {
|
148
|
+
elem_id?: string;
|
149
|
+
elem_classes?: string[];
|
150
|
+
components?: string[];
|
151
|
+
server_fns?: string[];
|
152
|
+
interactive: boolean;
|
153
|
+
[key: string]: unknown;
|
154
|
+
root_url?: string;
|
155
|
+
}
|
156
|
+
export interface Documentation {
|
157
|
+
type?: TypeDescription;
|
158
|
+
description?: TypeDescription;
|
159
|
+
example_data?: string;
|
160
|
+
}
|
161
|
+
interface TypeDescription {
|
162
|
+
input_payload?: string;
|
163
|
+
response_object?: string;
|
164
|
+
payload?: string;
|
109
165
|
}
|
110
166
|
export interface Dependency {
|
111
167
|
id: number;
|
@@ -139,6 +195,7 @@ export interface Dependency {
|
|
139
195
|
export interface DependencyTypes {
|
140
196
|
continuous: boolean;
|
141
197
|
generator: boolean;
|
198
|
+
cancel: boolean;
|
142
199
|
}
|
143
200
|
export interface Payload {
|
144
201
|
fn_index: number;
|
@@ -164,6 +221,8 @@ export interface ClientOptions {
|
|
164
221
|
hf_token?: `hf_${string}`;
|
165
222
|
status_callback?: SpaceStatusCallback | null;
|
166
223
|
auth?: [string, string] | null;
|
224
|
+
with_null_state?: boolean;
|
225
|
+
events?: EventType[];
|
167
226
|
}
|
168
227
|
export interface FileData {
|
169
228
|
name: string;
|
@@ -177,28 +236,19 @@ export interface FileData {
|
|
177
236
|
}
|
178
237
|
export type EventType = "data" | "status" | "log" | "render";
|
179
238
|
export interface EventMap {
|
180
|
-
data:
|
181
|
-
status:
|
239
|
+
data: PayloadMessage;
|
240
|
+
status: StatusMessage;
|
182
241
|
log: LogMessage;
|
183
242
|
render: RenderMessage;
|
184
243
|
}
|
185
|
-
export type
|
186
|
-
[P in
|
187
|
-
|
188
|
-
|
189
|
-
fn_index: number;
|
190
|
-
};
|
191
|
-
}[K];
|
192
|
-
export type EventListener<K extends EventType> = (event: Event<K>) => void;
|
193
|
-
export type ListenerMap<K extends EventType> = {
|
194
|
-
[P in K]?: EventListener<K>[];
|
195
|
-
};
|
196
|
-
export interface LogMessage {
|
244
|
+
export type GradioEvent = {
|
245
|
+
[P in EventType]: EventMap[P];
|
246
|
+
}[EventType];
|
247
|
+
export interface Log {
|
197
248
|
log: string;
|
198
249
|
level: "warning" | "info";
|
199
250
|
}
|
200
|
-
export interface
|
201
|
-
fn_index: number;
|
251
|
+
export interface Render {
|
202
252
|
data: {
|
203
253
|
components: any[];
|
204
254
|
layout: any;
|
@@ -226,5 +276,25 @@ export interface Status {
|
|
226
276
|
time?: Date;
|
227
277
|
changed_state_ids?: number[];
|
228
278
|
}
|
279
|
+
export interface StatusMessage extends Status {
|
280
|
+
type: "status";
|
281
|
+
endpoint: string;
|
282
|
+
fn_index: number;
|
283
|
+
}
|
284
|
+
export interface PayloadMessage extends Payload {
|
285
|
+
type: "data";
|
286
|
+
endpoint: string;
|
287
|
+
fn_index: number;
|
288
|
+
}
|
289
|
+
export interface LogMessage extends Log {
|
290
|
+
type: "log";
|
291
|
+
endpoint: string;
|
292
|
+
fn_index: number;
|
293
|
+
}
|
294
|
+
export interface RenderMessage extends Render {
|
295
|
+
type: "render";
|
296
|
+
endpoint: string;
|
297
|
+
fn_index: number;
|
298
|
+
}
|
229
299
|
export {};
|
230
300
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import type
|
1
|
+
import { type ApiData, type EndpointInfo, type JsApiData } from "../types";
|
2
2
|
import type { Client } from "..";
|
3
3
|
export declare function handle_blob(this: Client, endpoint: string, data: unknown[], api_info: EndpointInfo<JsApiData | ApiData>): Promise<unknown[]>;
|
4
|
+
export declare function process_local_file_commands(client: Client, data: unknown[]): Promise<void>;
|
4
5
|
//# sourceMappingURL=handle_blob.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handle_blob.d.ts","sourceRoot":"","sources":["../../src/utils/handle_blob.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"handle_blob.d.ts","sourceRoot":"","sources":["../../src/utils/handle_blob.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAOjC,wBAAsB,WAAW,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,EAAE,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,GACzC,OAAO,CAAC,OAAO,EAAE,CAAC,CAsCpB;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
package/dist/utils/predict.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
import { Client } from "../client";
|
2
|
-
import type {
|
3
|
-
export declare function predict(this: Client, endpoint: string | number, data: unknown[] | Record<string, unknown>): Promise<
|
2
|
+
import type { PredictReturn } from "../types";
|
3
|
+
export declare function predict(this: Client, endpoint: string | number, data: unknown[] | Record<string, unknown>): Promise<PredictReturn>;
|
4
4
|
//# sourceMappingURL=predict.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/utils/predict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAc,
|
1
|
+
{"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/utils/predict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1D,wBAAsB,OAAO,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CAiDxB"}
|
package/dist/utils/stream.d.ts
CHANGED
@@ -2,7 +2,8 @@ import type { Client } from "../client";
|
|
2
2
|
export declare function open_stream(this: Client): Promise<void>;
|
3
3
|
export declare function close_stream(stream_status: {
|
4
4
|
open: boolean;
|
5
|
-
},
|
5
|
+
}, abort_controller: AbortController | null): void;
|
6
6
|
export declare function apply_diff_stream(pending_diff_streams: Record<string, any[][]>, event_id: string, data: any): void;
|
7
7
|
export declare function apply_diff(obj: any, diff: [string, (number | string)[], any][]): any;
|
8
|
+
export declare function readable_stream(input: RequestInfo | URL, init?: RequestInit): EventSource;
|
8
9
|
//# sourceMappingURL=stream.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF7D;AAED,wBAAgB,YAAY,CAC3B,aAAa,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAChC,gBAAgB,EAAE,eAAe,GAAG,IAAI,GACtC,IAAI,CAKN;AAED,wBAAgB,iBAAiB,CAChC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,EAC7C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,GACP,IAAI,CAcN;AAED,wBAAgB,UAAU,CACzB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GACxC,GAAG,CAML;AAkDD,wBAAgB,eAAe,CAC9B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,GAAE,WAAgB,GACpB,WAAW,CA8Cb"}
|
package/dist/utils/submit.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type {
|
1
|
+
import type { GradioEvent, SubmitIterable } from "../types";
|
2
2
|
import { Client } from "../client";
|
3
|
-
export declare function submit(this: Client, endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown, trigger_id?: number | null):
|
3
|
+
export declare function submit(this: Client, endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown, trigger_id?: number | null, all_events?: boolean): SubmitIterable<GradioEvent>;
|
4
4
|
//# sourceMappingURL=submit.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/utils/submit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/utils/submit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGX,WAAW,EAMX,cAAc,EACd,MAAM,UAAU,CAAC;AAYlB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,wBAAgB,MAAM,CACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,UAAU,CAAC,EAAE,OAAO,GAClB,cAAc,CAAC,WAAW,CAAC,CAwvB7B"}
|
package/index.html
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
+
<title>Client</title>
|
8
|
+
<script type="module">
|
9
|
+
import { Client } from "./dist/index.js";
|
10
|
+
console.log(Client);
|
11
|
+
|
12
|
+
const client = await Client.connect("pngwn/chatinterface_streaming_echo");
|
13
|
+
async function run(message, n) {
|
14
|
+
// console.log(client);
|
15
|
+
const req = client.submit("/chat", {
|
16
|
+
message
|
17
|
+
});
|
18
|
+
console.log("start");
|
19
|
+
for await (const c of req) {
|
20
|
+
if (c.type === "data") {
|
21
|
+
console.log(`${n}: ${c.data[0]}`);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
console.log("end");
|
26
|
+
|
27
|
+
return "hi";
|
28
|
+
}
|
29
|
+
|
30
|
+
run("My name is frank", 1);
|
31
|
+
run("Hello there", 2);
|
32
|
+
|
33
|
+
console.log("boo");
|
34
|
+
</script>
|
35
|
+
</head>
|
36
|
+
<body>
|
37
|
+
<div id="app"></div>
|
38
|
+
</body>
|
39
|
+
</html>
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gradio/client",
|
3
|
-
"version": "
|
3
|
+
"version": "1.1.1",
|
4
4
|
"description": "Gradio API client",
|
5
5
|
"type": "module",
|
6
6
|
"main": "dist/index.js",
|
@@ -16,8 +16,10 @@
|
|
16
16
|
"@types/eventsource": "^1.1.15",
|
17
17
|
"bufferutil": "^4.0.7",
|
18
18
|
"eventsource": "^2.0.2",
|
19
|
+
"fetch-event-stream": "^0.1.5",
|
19
20
|
"msw": "^2.2.1",
|
20
21
|
"semiver": "^1.1.0",
|
22
|
+
"textlinestream": "^1.1.1",
|
21
23
|
"typescript": "^5.0.0",
|
22
24
|
"ws": "^8.13.0"
|
23
25
|
},
|
@@ -35,6 +37,7 @@
|
|
35
37
|
"build": "pnpm bundle && pnpm generate_types",
|
36
38
|
"test": "pnpm test:client && pnpm test:client:node",
|
37
39
|
"test:client": "vitest run -c vite.config.js",
|
38
|
-
"test:client:node": "TEST_MODE=node vitest run -c vite.config.js"
|
40
|
+
"test:client:node": "TEST_MODE=node vitest run -c vite.config.js",
|
41
|
+
"preview:browser": "vite dev --mode=preview"
|
39
42
|
}
|
40
43
|
}
|
package/src/client.ts
CHANGED
@@ -6,11 +6,13 @@ import type {
|
|
6
6
|
DuplicateOptions,
|
7
7
|
EndpointInfo,
|
8
8
|
JsApiData,
|
9
|
+
PredictReturn,
|
9
10
|
SpaceStatus,
|
10
11
|
Status,
|
11
|
-
SubmitReturn,
|
12
12
|
UploadResponse,
|
13
|
-
client_return
|
13
|
+
client_return,
|
14
|
+
SubmitIterable,
|
15
|
+
GradioEvent
|
14
16
|
} from "./types";
|
15
17
|
import { view_api } from "./utils/view_api";
|
16
18
|
import { upload_files } from "./utils/upload_files";
|
@@ -29,15 +31,9 @@ import {
|
|
29
31
|
parse_and_set_cookies
|
30
32
|
} from "./helpers/init_helpers";
|
31
33
|
import { check_space_status } from "./helpers/spaces";
|
32
|
-
import { open_stream } from "./utils/stream";
|
34
|
+
import { open_stream, readable_stream } from "./utils/stream";
|
33
35
|
import { API_INFO_ERROR_MSG, CONFIG_ERROR_MSG } from "./constants";
|
34
36
|
|
35
|
-
export class NodeBlob extends Blob {
|
36
|
-
constructor(blobParts?: BlobPart[], options?: BlobPropertyBag) {
|
37
|
-
super(blobParts, options);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
37
|
export class Client {
|
42
38
|
app_reference: string;
|
43
39
|
options: ClientOptions;
|
@@ -58,6 +54,8 @@ export class Client {
|
|
58
54
|
event_callbacks: Record<string, (data?: unknown) => Promise<void>> = {};
|
59
55
|
unclosed_events: Set<string> = new Set();
|
60
56
|
heartbeat_event: EventSource | null = null;
|
57
|
+
abort_controller: AbortController | null = null;
|
58
|
+
stream_instance: EventSource | null = null;
|
61
59
|
|
62
60
|
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {
|
63
61
|
const headers = new Headers(init?.headers || {});
|
@@ -68,18 +66,14 @@ export class Client {
|
|
68
66
|
return fetch(input, { ...init, headers });
|
69
67
|
}
|
70
68
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
}
|
80
|
-
} else {
|
81
|
-
return new EventSource(url.toString());
|
82
|
-
}
|
69
|
+
stream(url: URL): EventSource {
|
70
|
+
this.abort_controller = new AbortController();
|
71
|
+
|
72
|
+
this.stream_instance = readable_stream(url.toString(), {
|
73
|
+
signal: this.abort_controller.signal
|
74
|
+
});
|
75
|
+
|
76
|
+
return this.stream_instance;
|
83
77
|
}
|
84
78
|
|
85
79
|
view_api: () => Promise<ApiInfo<JsApiData>>;
|
@@ -108,18 +102,26 @@ export class Client {
|
|
108
102
|
endpoint: string | number,
|
109
103
|
data: unknown[] | Record<string, unknown>,
|
110
104
|
event_data?: unknown,
|
111
|
-
trigger_id?: number | null
|
112
|
-
|
105
|
+
trigger_id?: number | null,
|
106
|
+
all_events?: boolean
|
107
|
+
) => SubmitIterable<GradioEvent>;
|
113
108
|
predict: (
|
114
109
|
endpoint: string | number,
|
115
110
|
data: unknown[] | Record<string, unknown>,
|
116
111
|
event_data?: unknown
|
117
|
-
) => Promise<
|
112
|
+
) => Promise<PredictReturn>;
|
118
113
|
open_stream: () => Promise<void>;
|
119
114
|
private resolve_config: (endpoint: string) => Promise<Config | undefined>;
|
120
115
|
private resolve_cookies: () => Promise<void>;
|
121
|
-
constructor(
|
116
|
+
constructor(
|
117
|
+
app_reference: string,
|
118
|
+
options: ClientOptions = { events: ["data"] }
|
119
|
+
) {
|
122
120
|
this.app_reference = app_reference;
|
121
|
+
if (!options.events) {
|
122
|
+
options.events = ["data"];
|
123
|
+
}
|
124
|
+
|
123
125
|
this.options = options;
|
124
126
|
|
125
127
|
this.view_api = view_api.bind(this);
|
@@ -140,8 +142,6 @@ export class Client {
|
|
140
142
|
!global.WebSocket
|
141
143
|
) {
|
142
144
|
const ws = await import("ws");
|
143
|
-
// @ts-ignore
|
144
|
-
NodeBlob = (await import("node:buffer")).Blob;
|
145
145
|
global.WebSocket = ws.WebSocket as unknown as typeof WebSocket;
|
146
146
|
}
|
147
147
|
|
@@ -191,16 +191,17 @@ export class Client {
|
|
191
191
|
}
|
192
192
|
|
193
193
|
// Just connect to the endpoint without parsing the response. Ref: https://github.com/gradio-app/gradio/pull/7974#discussion_r1557717540
|
194
|
-
if (!this.heartbeat_event)
|
195
|
-
this.heartbeat_event =
|
196
|
-
|
197
|
-
this.heartbeat_event?.close();
|
194
|
+
if (!this.heartbeat_event) {
|
195
|
+
this.heartbeat_event = this.stream(heartbeat_url);
|
196
|
+
}
|
198
197
|
}
|
199
198
|
}
|
200
199
|
|
201
200
|
static async connect(
|
202
201
|
app_reference: string,
|
203
|
-
options: ClientOptions = {
|
202
|
+
options: ClientOptions = {
|
203
|
+
events: ["data"]
|
204
|
+
}
|
204
205
|
): Promise<Client> {
|
205
206
|
const client = new this(app_reference, options); // this refers to the class itself, not the instance
|
206
207
|
await client.init();
|
@@ -213,7 +214,9 @@ export class Client {
|
|
213
214
|
|
214
215
|
static async duplicate(
|
215
216
|
app_reference: string,
|
216
|
-
options: DuplicateOptions = {
|
217
|
+
options: DuplicateOptions = {
|
218
|
+
events: ["data"]
|
219
|
+
}
|
217
220
|
): Promise<Client> {
|
218
221
|
return duplicate(app_reference, options);
|
219
222
|
}
|
@@ -260,7 +263,7 @@ export class Client {
|
|
260
263
|
): Promise<Config | client_return> {
|
261
264
|
this.config = _config;
|
262
265
|
|
263
|
-
if (typeof window !== "undefined") {
|
266
|
+
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
264
267
|
if (window.location.protocol === "https:") {
|
265
268
|
this.config.root = this.config.root.replace("http://", "https://");
|
266
269
|
}
|
@@ -412,7 +415,9 @@ export class Client {
|
|
412
415
|
*/
|
413
416
|
export async function client(
|
414
417
|
app_reference: string,
|
415
|
-
options: ClientOptions = {
|
418
|
+
options: ClientOptions = {
|
419
|
+
events: ["data"]
|
420
|
+
}
|
416
421
|
): Promise<Client> {
|
417
422
|
return await Client.connect(app_reference, options);
|
418
423
|
}
|
package/src/constants.ts
CHANGED
@@ -30,3 +30,7 @@ export const UNAUTHORIZED_MSG = "Not authorized to access this space. ";
|
|
30
30
|
export const INVALID_CREDENTIALS_MSG = "Invalid credentials. Could not login. ";
|
31
31
|
export const MISSING_CREDENTIALS_MSG =
|
32
32
|
"Login credentials are required to access this space.";
|
33
|
+
export const NODEJS_FS_ERROR_MSG =
|
34
|
+
"File system access is only available in Node.js environments";
|
35
|
+
export const ROOT_URL_ERROR_MSG = "Root URL not found in client config";
|
36
|
+
export const FILE_PROCESSING_ERROR_MSG = "Error uploading file";
|
package/src/helpers/api_info.ts
CHANGED
@@ -106,7 +106,7 @@ export function transform_api_info(
|
|
106
106
|
dependencyIndex !== -1
|
107
107
|
? config.dependencies.find((dep) => dep.id == dependencyIndex)
|
108
108
|
?.types
|
109
|
-
: { continuous: false, generator: false };
|
109
|
+
: { continuous: false, generator: false, cancel: false };
|
110
110
|
|
111
111
|
if (
|
112
112
|
dependencyIndex !== -1 &&
|