@gradio/client 2.1.0 → 2.2.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 +16 -0
- package/dist/browser.js +363 -343
- package/dist/client.d.ts.map +1 -1
- package/dist/helpers/api_info.d.ts.map +1 -1
- package/dist/helpers/zerogpu.d.ts +3 -0
- package/dist/helpers/zerogpu.d.ts.map +1 -0
- package/dist/index.js +39 -4
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/submit.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/client.ts +3 -0
- package/src/helpers/api_info.ts +4 -1
- package/src/helpers/zerogpu.ts +40 -0
- package/src/test/api_info.test.ts +12 -5
- package/src/test/apply_diff.test.ts +1 -0
- package/src/test/data.test.ts +194 -118
- package/src/test/handlers.ts +0 -6
- package/src/test/init.test.ts +6 -3
- package/src/test/init_helpers.test.ts +7 -4
- package/src/test/mock_eventsource.ts +1 -1
- package/src/test/post_data.test.ts +7 -3
- package/src/test/server.ts +28 -3
- package/src/test/spaces.test.ts +6 -3
- package/src/test/stream.test.ts +17 -11
- package/src/test/submit.test.ts +92 -0
- package/src/test/upload_files.test.ts +7 -4
- package/src/test/view_api.test.ts +6 -3
- package/src/types.ts +3 -0
- package/src/utils/submit.ts +6 -4
- package/vite.config.ts +104 -0
- package/vite.config.js +0 -52
|
@@ -3,18 +3,21 @@ import { describe, it, expect, afterEach, beforeAll, afterAll } from "vitest";
|
|
|
3
3
|
import { Client } from "..";
|
|
4
4
|
import { initialise_server } from "./server";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
let server: Awaited<ReturnType<typeof initialise_server>>;
|
|
7
7
|
|
|
8
|
-
beforeAll(() =>
|
|
8
|
+
beforeAll(async () => {
|
|
9
|
+
server = await initialise_server();
|
|
10
|
+
await server.start({ quiet: true });
|
|
11
|
+
});
|
|
9
12
|
afterEach(() => server.resetHandlers());
|
|
10
|
-
afterAll(() => server.
|
|
13
|
+
afterAll(() => server.stop());
|
|
11
14
|
|
|
12
15
|
describe("upload_files", () => {
|
|
13
16
|
it("should upload files successfully", async () => {
|
|
14
17
|
const root_url = "https://hmb-hello-world.hf.space";
|
|
15
18
|
|
|
16
19
|
const client = await Client.connect("hmb/hello_world", {
|
|
17
|
-
|
|
20
|
+
token: "hf_token"
|
|
18
21
|
});
|
|
19
22
|
|
|
20
23
|
const files = [new Blob([], { type: "image/jpeg" })];
|
|
@@ -8,11 +8,14 @@ const app_reference = "hmb/hello_world";
|
|
|
8
8
|
const secret_app_reference = "hmb/secret_world";
|
|
9
9
|
const secret_direct_app_reference = "https://hmb-secret-world.hf.space";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
let server: Awaited<ReturnType<typeof initialise_server>>;
|
|
12
12
|
|
|
13
|
-
beforeAll(() =>
|
|
13
|
+
beforeAll(async () => {
|
|
14
|
+
server = await initialise_server();
|
|
15
|
+
await server.start({ quiet: true });
|
|
16
|
+
});
|
|
14
17
|
afterEach(() => server.resetHandlers());
|
|
15
|
-
afterAll(() => server.
|
|
18
|
+
afterAll(() => server.stop());
|
|
16
19
|
|
|
17
20
|
describe("view_api", () => {
|
|
18
21
|
test("viewing the api of a running, public app", async () => {
|
package/src/types.ts
CHANGED
|
@@ -402,6 +402,9 @@ export interface Status {
|
|
|
402
402
|
changed_state_ids?: number[];
|
|
403
403
|
time_limit?: number;
|
|
404
404
|
session_not_found?: boolean;
|
|
405
|
+
used_cache?: "full" | "partial" | null;
|
|
406
|
+
cache_duration?: number;
|
|
407
|
+
avg_time?: number;
|
|
405
408
|
}
|
|
406
409
|
|
|
407
410
|
export interface StatusMessage extends Status {
|
package/src/utils/submit.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
} from "../types";
|
|
13
13
|
|
|
14
14
|
import { skip_queue, post_message, handle_payload } from "../helpers/data";
|
|
15
|
+
import { get_zerogpu_origin } from "../helpers/zerogpu";
|
|
15
16
|
import {
|
|
16
17
|
handle_message,
|
|
17
18
|
map_data_to_params,
|
|
@@ -412,15 +413,13 @@ export function submit(
|
|
|
412
413
|
hostname = window?.location?.hostname;
|
|
413
414
|
}
|
|
414
415
|
|
|
415
|
-
|
|
416
|
-
const origin = hostname.includes(".dev.")
|
|
417
|
-
? `https://moon-${hostname.split(".")[1]}.${hfhubdev}`
|
|
418
|
-
: `https://huggingface.co`;
|
|
416
|
+
const origin = get_zerogpu_origin(hostname);
|
|
419
417
|
|
|
420
418
|
const is_zerogpu_iframe =
|
|
421
419
|
typeof window !== "undefined" &&
|
|
422
420
|
typeof document !== "undefined" &&
|
|
423
421
|
window.parent != window &&
|
|
422
|
+
!!origin &&
|
|
424
423
|
window.supports_zerogpu_headers;
|
|
425
424
|
const zerogpu_auth_promise = is_zerogpu_iframe
|
|
426
425
|
? post_message<Map<string, string>>("zerogpu-headers", origin)
|
|
@@ -667,6 +666,9 @@ export function submit(
|
|
|
667
666
|
if (values.length > 0) {
|
|
668
667
|
return Promise.resolve(values.shift() as (typeof values)[0]);
|
|
669
668
|
}
|
|
669
|
+
if (done) {
|
|
670
|
+
return Promise.resolve({ value: undefined, done: true });
|
|
671
|
+
}
|
|
670
672
|
return new Promise((resolve) => resolvers.push(resolve));
|
|
671
673
|
}
|
|
672
674
|
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { defineConfig, createLogger } from "vite";
|
|
2
|
+
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
3
|
+
import { playwright } from "@vitest/browser-playwright";
|
|
4
|
+
|
|
5
|
+
const TEST_MODE = process.env.TEST_MODE || "browser";
|
|
6
|
+
|
|
7
|
+
const logger = createLogger();
|
|
8
|
+
const originalWarning = logger.warn;
|
|
9
|
+
|
|
10
|
+
logger.warn = (log, options) => {
|
|
11
|
+
if (log.includes("was created with unknown prop")) return false;
|
|
12
|
+
if (log.includes("https://svelte.dev")) return false;
|
|
13
|
+
if (log.includes("[vite-plugin-svelte]")) return false;
|
|
14
|
+
if (log && log.includes("[MSW]")) return false;
|
|
15
|
+
if (log && log.includes("node:")) return false;
|
|
16
|
+
originalWarning(log, options);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const originalError = logger.error;
|
|
20
|
+
|
|
21
|
+
logger.error = (log, options) => {
|
|
22
|
+
if (log.includes("was created with unknown prop")) return false;
|
|
23
|
+
if (log.includes("https://svelte.dev")) return false;
|
|
24
|
+
if (log.includes("[vite-plugin-svelte]")) return false;
|
|
25
|
+
if (log && log.includes("[MSW]")) return false;
|
|
26
|
+
if (log && log.includes("(node:")) return false;
|
|
27
|
+
originalError(log, options);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const original_info = logger.info;
|
|
31
|
+
logger.info = (log, options) => {
|
|
32
|
+
if (log.includes("was created with unknown prop")) return false;
|
|
33
|
+
if (log.includes("https://svelte.dev")) return false;
|
|
34
|
+
if (log.includes("[vite-plugin-svelte]")) return false;
|
|
35
|
+
if (log && log.includes("[MSW]")) return false;
|
|
36
|
+
if (log && log.includes("node:")) return false;
|
|
37
|
+
original_info(log, options);
|
|
38
|
+
};
|
|
39
|
+
export default defineConfig(({ mode }) => {
|
|
40
|
+
const production = mode === "production";
|
|
41
|
+
const isBrowserBuild = process.env.BROWSER_BUILD === "true";
|
|
42
|
+
|
|
43
|
+
if (mode === "preview") {
|
|
44
|
+
return {
|
|
45
|
+
entry: "index.html"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
customLogger: logger,
|
|
51
|
+
build: {
|
|
52
|
+
emptyOutDir: false,
|
|
53
|
+
lib: {
|
|
54
|
+
entry: "src/index.ts",
|
|
55
|
+
formats: ["es"],
|
|
56
|
+
fileName: isBrowserBuild ? `browser` : `index`
|
|
57
|
+
},
|
|
58
|
+
rollupOptions: {
|
|
59
|
+
input: "src/index.ts",
|
|
60
|
+
output: {
|
|
61
|
+
dir: "dist"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
plugins: [svelte()],
|
|
66
|
+
define: {
|
|
67
|
+
BROWSER_BUILD: JSON.stringify(isBrowserBuild)
|
|
68
|
+
},
|
|
69
|
+
mode: process.env.MODE || "development",
|
|
70
|
+
test: {
|
|
71
|
+
include: ["./src/test/*.test.*"],
|
|
72
|
+
onConsoleLog(log) {
|
|
73
|
+
if (log.includes("[MSW]")) return false;
|
|
74
|
+
if (log.includes("node:")) return false;
|
|
75
|
+
if (log.includes("data: '\"404\"'")) return false;
|
|
76
|
+
if (log.includes("Too many arguments")) return false;
|
|
77
|
+
},
|
|
78
|
+
...(TEST_MODE === "node"
|
|
79
|
+
? { environment: "node" }
|
|
80
|
+
: {
|
|
81
|
+
browser: {
|
|
82
|
+
enabled: true,
|
|
83
|
+
provider: playwright(),
|
|
84
|
+
instances: [
|
|
85
|
+
{
|
|
86
|
+
browser: "chromium"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
},
|
|
92
|
+
ssr: {
|
|
93
|
+
target: "node",
|
|
94
|
+
format: "esm",
|
|
95
|
+
noExternal: [
|
|
96
|
+
"ws",
|
|
97
|
+
"semiver",
|
|
98
|
+
"bufferutil",
|
|
99
|
+
"@gradio/upload",
|
|
100
|
+
"fetch-event-stream"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
});
|
package/vite.config.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "vite";
|
|
2
|
-
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
3
|
-
|
|
4
|
-
const TEST_MODE = process.env.TEST_MODE || "happy-dom";
|
|
5
|
-
|
|
6
|
-
export default defineConfig(({ mode }) => {
|
|
7
|
-
const production = mode === "production";
|
|
8
|
-
const isBrowserBuild = process.env.BROWSER_BUILD === "true";
|
|
9
|
-
|
|
10
|
-
if (mode === "preview") {
|
|
11
|
-
return {
|
|
12
|
-
entry: "index.html"
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
build: {
|
|
18
|
-
emptyOutDir: false,
|
|
19
|
-
lib: {
|
|
20
|
-
entry: "src/index.ts",
|
|
21
|
-
formats: ["es"],
|
|
22
|
-
fileName: isBrowserBuild ? `browser` : `index`
|
|
23
|
-
},
|
|
24
|
-
rollupOptions: {
|
|
25
|
-
input: "src/index.ts",
|
|
26
|
-
output: {
|
|
27
|
-
dir: "dist"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
plugins: [svelte()],
|
|
32
|
-
define: {
|
|
33
|
-
BROWSER_BUILD: JSON.stringify(isBrowserBuild)
|
|
34
|
-
},
|
|
35
|
-
mode: process.env.MODE || "development",
|
|
36
|
-
test: {
|
|
37
|
-
include: ["./src/test/*.test.*"],
|
|
38
|
-
environment: TEST_MODE
|
|
39
|
-
},
|
|
40
|
-
ssr: {
|
|
41
|
-
target: "node",
|
|
42
|
-
format: "esm",
|
|
43
|
-
noExternal: [
|
|
44
|
-
"ws",
|
|
45
|
-
"semiver",
|
|
46
|
-
"bufferutil",
|
|
47
|
-
"@gradio/upload",
|
|
48
|
-
"fetch-event-stream"
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
});
|