@gradio/client 0.20.0 → 1.1.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 +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/init_helpers.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 +496 -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 +93 -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/init_helpers.ts +5 -0
- 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 +110 -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;
|
@@ -107,6 +128,40 @@ export interface Config {
|
|
107
128
|
protocol: "sse_v3" | "sse_v2.1" | "sse_v2" | "sse_v1" | "sse" | "ws";
|
108
129
|
max_file_size?: number;
|
109
130
|
}
|
131
|
+
export interface ComponentMeta {
|
132
|
+
type: string;
|
133
|
+
id: number;
|
134
|
+
has_modes: boolean;
|
135
|
+
props: SharedProps;
|
136
|
+
instance: SvelteComponent;
|
137
|
+
component: ComponentType<SvelteComponent>;
|
138
|
+
documentation?: Documentation;
|
139
|
+
children?: ComponentMeta[];
|
140
|
+
parent?: ComponentMeta;
|
141
|
+
value?: any;
|
142
|
+
component_class_id: string;
|
143
|
+
key: string | number | null;
|
144
|
+
rendered_in?: number;
|
145
|
+
}
|
146
|
+
interface SharedProps {
|
147
|
+
elem_id?: string;
|
148
|
+
elem_classes?: string[];
|
149
|
+
components?: string[];
|
150
|
+
server_fns?: string[];
|
151
|
+
interactive: boolean;
|
152
|
+
[key: string]: unknown;
|
153
|
+
root_url?: string;
|
154
|
+
}
|
155
|
+
export interface Documentation {
|
156
|
+
type?: TypeDescription;
|
157
|
+
description?: TypeDescription;
|
158
|
+
example_data?: string;
|
159
|
+
}
|
160
|
+
interface TypeDescription {
|
161
|
+
input_payload?: string;
|
162
|
+
response_object?: string;
|
163
|
+
payload?: string;
|
164
|
+
}
|
110
165
|
export interface Dependency {
|
111
166
|
id: number;
|
112
167
|
targets: [number, string][];
|
@@ -139,6 +194,7 @@ export interface Dependency {
|
|
139
194
|
export interface DependencyTypes {
|
140
195
|
continuous: boolean;
|
141
196
|
generator: boolean;
|
197
|
+
cancel: boolean;
|
142
198
|
}
|
143
199
|
export interface Payload {
|
144
200
|
fn_index: number;
|
@@ -164,6 +220,8 @@ export interface ClientOptions {
|
|
164
220
|
hf_token?: `hf_${string}`;
|
165
221
|
status_callback?: SpaceStatusCallback | null;
|
166
222
|
auth?: [string, string] | null;
|
223
|
+
with_null_state?: boolean;
|
224
|
+
events?: EventType[];
|
167
225
|
}
|
168
226
|
export interface FileData {
|
169
227
|
name: string;
|
@@ -177,28 +235,19 @@ export interface FileData {
|
|
177
235
|
}
|
178
236
|
export type EventType = "data" | "status" | "log" | "render";
|
179
237
|
export interface EventMap {
|
180
|
-
data:
|
181
|
-
status:
|
238
|
+
data: PayloadMessage;
|
239
|
+
status: StatusMessage;
|
182
240
|
log: LogMessage;
|
183
241
|
render: RenderMessage;
|
184
242
|
}
|
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 {
|
243
|
+
export type GradioEvent = {
|
244
|
+
[P in EventType]: EventMap[P];
|
245
|
+
}[EventType];
|
246
|
+
export interface Log {
|
197
247
|
log: string;
|
198
248
|
level: "warning" | "info";
|
199
249
|
}
|
200
|
-
export interface
|
201
|
-
fn_index: number;
|
250
|
+
export interface Render {
|
202
251
|
data: {
|
203
252
|
components: any[];
|
204
253
|
layout: any;
|
@@ -226,5 +275,25 @@ export interface Status {
|
|
226
275
|
time?: Date;
|
227
276
|
changed_state_ids?: number[];
|
228
277
|
}
|
278
|
+
export interface StatusMessage extends Status {
|
279
|
+
type: "status";
|
280
|
+
endpoint: string;
|
281
|
+
fn_index: number;
|
282
|
+
}
|
283
|
+
export interface PayloadMessage extends Payload {
|
284
|
+
type: "data";
|
285
|
+
endpoint: string;
|
286
|
+
fn_index: number;
|
287
|
+
}
|
288
|
+
export interface LogMessage extends Log {
|
289
|
+
type: "log";
|
290
|
+
endpoint: string;
|
291
|
+
fn_index: number;
|
292
|
+
}
|
293
|
+
export interface RenderMessage extends Render {
|
294
|
+
type: "render";
|
295
|
+
endpoint: string;
|
296
|
+
fn_index: number;
|
297
|
+
}
|
229
298
|
export {};
|
230
299
|
//# 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.0",
|
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 &&
|