@apicity/kie 0.6.7 → 0.7.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/README.md +61 -1
- package/dist/src/chat.d.ts.map +1 -1
- package/dist/src/chat.js +12 -49
- package/dist/src/chat.js.map +1 -1
- package/dist/src/claude.d.ts.map +1 -1
- package/dist/src/claude.js +15 -51
- package/dist/src/claude.js.map +1 -1
- package/dist/src/example.d.ts.map +1 -1
- package/dist/src/example.js +30 -4
- package/dist/src/example.js.map +1 -1
- package/dist/src/gemini-31-pro.d.ts.map +1 -1
- package/dist/src/gemini-31-pro.js +17 -36
- package/dist/src/gemini-31-pro.js.map +1 -1
- package/dist/src/gemini.d.ts.map +1 -1
- package/dist/src/gemini.js +17 -36
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/kie.d.ts.map +1 -1
- package/dist/src/kie.js +79 -398
- package/dist/src/kie.js.map +1 -1
- package/dist/src/middleware.d.ts +2 -0
- package/dist/src/middleware.d.ts.map +1 -1
- package/dist/src/middleware.js +85 -1
- package/dist/src/middleware.js.map +1 -1
- package/dist/src/model-schemas.d.ts.map +1 -1
- package/dist/src/model-schemas.js +14 -9
- package/dist/src/model-schemas.js.map +1 -1
- package/dist/src/paid-endpoints.d.ts.map +1 -1
- package/dist/src/paid-endpoints.js +12 -0
- package/dist/src/paid-endpoints.js.map +1 -1
- package/dist/src/paygate.d.ts +1 -0
- package/dist/src/paygate.d.ts.map +1 -1
- package/dist/src/paygate.js +12 -0
- package/dist/src/paygate.js.map +1 -1
- package/dist/src/request.d.ts +33 -3
- package/dist/src/request.d.ts.map +1 -1
- package/dist/src/request.js +99 -36
- package/dist/src/request.js.map +1 -1
- package/dist/src/responses.d.ts.map +1 -1
- package/dist/src/responses.js +30 -52
- package/dist/src/responses.js.map +1 -1
- package/dist/src/sse.d.ts +6 -1
- package/dist/src/sse.d.ts.map +1 -1
- package/dist/src/sse.js +51 -5
- package/dist/src/sse.js.map +1 -1
- package/dist/src/suno.d.ts +33 -0
- package/dist/src/suno.d.ts.map +1 -1
- package/dist/src/suno.js +96 -34
- package/dist/src/suno.js.map +1 -1
- package/dist/src/transport.d.ts +40 -0
- package/dist/src/transport.d.ts.map +1 -0
- package/dist/src/transport.js +136 -0
- package/dist/src/transport.js.map +1 -0
- package/dist/src/types.d.ts +11 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/veo.d.ts +62 -0
- package/dist/src/veo.d.ts.map +1 -1
- package/dist/src/veo.js +47 -7
- package/dist/src/veo.js.map +1 -1
- package/dist/src/with-paid-gate.d.ts.map +1 -1
- package/dist/src/with-paid-gate.js +2 -0
- package/dist/src/with-paid-gate.js.map +1 -1
- package/dist/src/zod.d.ts +140 -6
- package/dist/src/zod.d.ts.map +1 -1
- package/dist/src/zod.js +98 -11
- package/dist/src/zod.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -476,7 +476,7 @@ defaults to `false`.
|
|
|
476
476
|
|
|
477
477
|
## API Reference
|
|
478
478
|
|
|
479
|
-
|
|
479
|
+
43 endpoints across 23 groups. Each method mirrors an upstream URL path.
|
|
480
480
|
|
|
481
481
|
### chat
|
|
482
482
|
|
|
@@ -873,6 +873,21 @@ Source: [`packages/provider/kie/src/kie.ts`](src/kie.ts)
|
|
|
873
873
|
|
|
874
874
|
### lyrics
|
|
875
875
|
|
|
876
|
+
<details>
|
|
877
|
+
<summary><code>GET</code> <b><code>kie.suno.get.api.v1.lyrics.recordInfo</code></b></summary>
|
|
878
|
+
|
|
879
|
+
<code>GET https://api.kie.ai/api/v1/lyrics/record-info?taskId={taskId}</code>
|
|
880
|
+
|
|
881
|
+
[Upstream docs ↗](https://docs.kie.ai/suno-api/get-lyrics-details)
|
|
882
|
+
|
|
883
|
+
```typescript
|
|
884
|
+
const res = await kie.suno.get.api.v1.lyrics.recordInfo({ /* ... */ });
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
Source: [`packages/provider/kie/src/suno.ts`](src/suno.ts)
|
|
888
|
+
|
|
889
|
+
</details>
|
|
890
|
+
|
|
876
891
|
<details>
|
|
877
892
|
<summary><code>POST</code> <b><code>kie.suno.post.api.v1.lyrics</code></b></summary>
|
|
878
893
|
|
|
@@ -903,6 +918,21 @@ Source: [`packages/provider/kie/src/suno.ts`](src/suno.ts)
|
|
|
903
918
|
|
|
904
919
|
### mj
|
|
905
920
|
|
|
921
|
+
<details>
|
|
922
|
+
<summary><code>GET</code> <b><code>kie.get.api.v1.mj.recordInfo</code></b></summary>
|
|
923
|
+
|
|
924
|
+
<code>GET https://api.kie.ai/api/v1/mj/record-info?taskId={taskId}</code>
|
|
925
|
+
|
|
926
|
+
[Upstream docs ↗](https://docs.kie.ai/mj-api/get-mj-task-details)
|
|
927
|
+
|
|
928
|
+
```typescript
|
|
929
|
+
const res = await kie.get.api.v1.mj.recordInfo({ /* ... */ });
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
Source: [`packages/provider/kie/src/kie.ts`](src/kie.ts)
|
|
933
|
+
|
|
934
|
+
</details>
|
|
935
|
+
|
|
906
936
|
<details>
|
|
907
937
|
<summary><code>POST</code> <b><code>kie.post.api.v1.mj.generate</code></b></summary>
|
|
908
938
|
|
|
@@ -1029,6 +1059,36 @@ Source: [`packages/provider/kie/src/suno.ts`](src/suno.ts)
|
|
|
1029
1059
|
|
|
1030
1060
|
### veo
|
|
1031
1061
|
|
|
1062
|
+
<details>
|
|
1063
|
+
<summary><code>GET</code> <b><code>kie.veo.get.api.v1.veo.get1080pVideo</code></b></summary>
|
|
1064
|
+
|
|
1065
|
+
<code>GET https://api.kie.ai/api/v1/veo/get-1080p-video?taskId={taskId}</code>
|
|
1066
|
+
|
|
1067
|
+
[Upstream docs ↗](https://docs.kie.ai/veo3-api/get-veo-3-1080-p-video)
|
|
1068
|
+
|
|
1069
|
+
```typescript
|
|
1070
|
+
const res = await kie.veo.get.api.v1.veo.get1080pVideo({ /* ... */ });
|
|
1071
|
+
```
|
|
1072
|
+
|
|
1073
|
+
Source: [`packages/provider/kie/src/veo.ts`](src/veo.ts)
|
|
1074
|
+
|
|
1075
|
+
</details>
|
|
1076
|
+
|
|
1077
|
+
<details>
|
|
1078
|
+
<summary><code>GET</code> <b><code>kie.veo.get.api.v1.veo.recordInfo</code></b></summary>
|
|
1079
|
+
|
|
1080
|
+
<code>GET https://api.kie.ai/api/v1/veo/record-info?taskId={taskId}</code>
|
|
1081
|
+
|
|
1082
|
+
[Upstream docs ↗](https://docs.kie.ai/veo3-api/get-veo-3-video-details)
|
|
1083
|
+
|
|
1084
|
+
```typescript
|
|
1085
|
+
const res = await kie.veo.get.api.v1.veo.recordInfo({ /* ... */ });
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
Source: [`packages/provider/kie/src/veo.ts`](src/veo.ts)
|
|
1089
|
+
|
|
1090
|
+
</details>
|
|
1091
|
+
|
|
1032
1092
|
<details>
|
|
1033
1093
|
<summary><code>POST</code> <b><code>kie.veo.post.api.v1.veo.extend</code></b></summary>
|
|
1034
1094
|
|
package/dist/src/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC;CACH;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,wBAAwB;IAChC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,wBAAwB,CAAC;CACvC;AA4BD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KAAK,EACrB,OAAO,EAAE,MAAM,GACd,eAAe,CAoBjB"}
|
package/dist/src/chat.js
CHANGED
|
@@ -1,59 +1,14 @@
|
|
|
1
1
|
import { KieError } from "./types.js";
|
|
2
2
|
import { KieChatRequestSchema } from "./zod.js";
|
|
3
3
|
import { withFallback } from "./middleware.js";
|
|
4
|
-
|
|
5
|
-
function attachAbortHandler(signal, controller) {
|
|
6
|
-
if (!signal)
|
|
7
|
-
return;
|
|
8
|
-
// Handle both standard AbortSignal and node-fetch's AbortSignal
|
|
9
|
-
if (typeof signal.addEventListener === "function") {
|
|
10
|
-
signal.addEventListener("abort", () => controller.abort(), { once: true });
|
|
11
|
-
}
|
|
12
|
-
else if (signal.aborted) {
|
|
13
|
-
// Already aborted, abort our controller too
|
|
14
|
-
controller.abort();
|
|
15
|
-
}
|
|
16
|
-
}
|
|
4
|
+
import { createKieTransport } from "./request.js";
|
|
17
5
|
const PATH_PREFIXES = ["gpt-5.5", "gpt-5-2"];
|
|
18
|
-
function buildEndpoint(
|
|
6
|
+
function buildEndpoint(transport, pathPrefix) {
|
|
19
7
|
return async function completions(req, signal) {
|
|
20
|
-
const controller = new AbortController();
|
|
21
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
22
|
-
if (signal) {
|
|
23
|
-
attachAbortHandler(signal, controller);
|
|
24
|
-
}
|
|
25
8
|
try {
|
|
26
|
-
|
|
27
|
-
method: "POST",
|
|
28
|
-
headers: {
|
|
29
|
-
Authorization: `Bearer ${apiKey}`,
|
|
30
|
-
"Content-Type": "application/json",
|
|
31
|
-
},
|
|
32
|
-
body: JSON.stringify(req),
|
|
33
|
-
signal: controller.signal,
|
|
34
|
-
});
|
|
35
|
-
clearTimeout(timeoutId);
|
|
36
|
-
if (!res.ok) {
|
|
37
|
-
let message = `Kie Chat API error: ${res.status}`;
|
|
38
|
-
let body = null;
|
|
39
|
-
try {
|
|
40
|
-
body = await res.json();
|
|
41
|
-
if (typeof body === "object" &&
|
|
42
|
-
body !== null &&
|
|
43
|
-
"msg" in body &&
|
|
44
|
-
typeof body.msg === "string") {
|
|
45
|
-
message = `Kie Chat API error ${res.status}: ${body.msg}`;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// ignore parse errors
|
|
50
|
-
}
|
|
51
|
-
throw new KieError(message, res.status, body);
|
|
52
|
-
}
|
|
53
|
-
return (await res.json());
|
|
9
|
+
return await transport.postJson(`/${pathPrefix}/v1/chat/completions`, req, { signal });
|
|
54
10
|
}
|
|
55
11
|
catch (error) {
|
|
56
|
-
clearTimeout(timeoutId);
|
|
57
12
|
if (error instanceof KieError)
|
|
58
13
|
throw error;
|
|
59
14
|
if (error instanceof SyntaxError) {
|
|
@@ -64,7 +19,15 @@ function buildEndpoint(baseURL, apiKey, doFetch, timeout, pathPrefix) {
|
|
|
64
19
|
};
|
|
65
20
|
}
|
|
66
21
|
export function createChatProvider(baseURL, apiKey, doFetch, timeout) {
|
|
67
|
-
const
|
|
22
|
+
const transport = createKieTransport({
|
|
23
|
+
baseURL,
|
|
24
|
+
apiKey,
|
|
25
|
+
doFetch,
|
|
26
|
+
timeout,
|
|
27
|
+
errorPrefix: "Kie Chat API error",
|
|
28
|
+
requestFailedPrefix: "Chat request failed",
|
|
29
|
+
});
|
|
30
|
+
const endpoints = PATH_PREFIXES.map((prefix) => buildEndpoint(transport, prefix));
|
|
68
31
|
const fallback = withFallback(endpoints);
|
|
69
32
|
return {
|
|
70
33
|
completions: Object.assign(fallback, {
|
package/dist/src/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AA8D/C,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7C,SAAS,aAAa,CACpB,SAAoB,EACpB,UAAkB;IAElB,OAAO,KAAK,UAAU,WAAW,CAC/B,GAAmB,EACnB,MAAoB;QAEpB,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,QAAQ,CAC7B,IAAI,UAAU,sBAAsB,EACpC,GAAG,EACH,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3C,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,QAAQ,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,wBAAwB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,MAAc,EACd,OAAqB,EACrB,OAAe;IAEf,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW,EAAE,oBAAoB;QACjC,mBAAmB,EAAE,qBAAqB;KAC3C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CACjC,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAkC,SAAS,CAAC,CAAC;IAE1E,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,oBAAoB;SAC7B,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/dist/src/claude.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/claude.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/claude.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQ7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,wBAAwB,CAAC;CACxC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAC7B,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,UAAU,uBAAuB;IAC/B,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1E,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACzC;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,uBAAuB,CAAC;CACnC;AAED,UAAU,sBAAsB;IAC9B,EAAE,EAAE,oBAAoB,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB,CAAC;KAC9B,CAAC;CACH;AAMD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KAAK,EACrB,OAAO,EAAE,MAAM,GACd,iBAAiB,CA+CnB"}
|
package/dist/src/claude.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { KieError } from "./types.js";
|
|
2
2
|
import { KieClaudeRequestSchema } from "./zod.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!signal)
|
|
6
|
-
return;
|
|
7
|
-
// Handle both standard AbortSignal and node-fetch's AbortSignal
|
|
8
|
-
if (typeof signal.addEventListener === "function") {
|
|
9
|
-
signal.addEventListener("abort", () => controller.abort(), { once: true });
|
|
10
|
-
}
|
|
11
|
-
else if (signal.aborted) {
|
|
12
|
-
// Already aborted, abort our controller too
|
|
13
|
-
controller.abort();
|
|
14
|
-
}
|
|
15
|
-
}
|
|
3
|
+
import { parseKieAnthropicErrorBody } from "./request.js";
|
|
4
|
+
import { createTransport } from "./transport.js";
|
|
16
5
|
// ---------------------------------------------------------------------------
|
|
17
6
|
// Factory
|
|
18
7
|
// ---------------------------------------------------------------------------
|
|
19
8
|
export function createClaudeProvider(baseURL, apiKey, doFetch, timeout) {
|
|
9
|
+
const transport = createTransport({
|
|
10
|
+
baseUrl: baseURL.replace(/\/$/, ""),
|
|
11
|
+
timeoutMs: timeout,
|
|
12
|
+
fetchImpl: doFetch,
|
|
13
|
+
defaultHeaders: () => ({
|
|
14
|
+
Authorization: `Bearer ${apiKey}`,
|
|
15
|
+
"Content-Type": "application/json",
|
|
16
|
+
}),
|
|
17
|
+
parseErrorBody: parseKieAnthropicErrorBody("Kie Claude API error"),
|
|
18
|
+
errorClass: KieError,
|
|
19
|
+
requestFailedPrefix: "Claude request failed",
|
|
20
|
+
});
|
|
20
21
|
return {
|
|
21
22
|
claude: {
|
|
22
23
|
post: {
|
|
@@ -24,47 +25,10 @@ export function createClaudeProvider(baseURL, apiKey, doFetch, timeout) {
|
|
|
24
25
|
// POST https://api.kie.ai/claude/v1/messages
|
|
25
26
|
// Docs: https://docs.kie.ai/market/claude/claude-sonnet-4-6
|
|
26
27
|
messages: Object.assign(async function messages(req, signal) {
|
|
27
|
-
const controller = new AbortController();
|
|
28
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
29
|
-
if (signal) {
|
|
30
|
-
attachAbortHandler(signal, controller);
|
|
31
|
-
}
|
|
32
28
|
try {
|
|
33
|
-
|
|
34
|
-
method: "POST",
|
|
35
|
-
headers: {
|
|
36
|
-
Authorization: `Bearer ${apiKey}`,
|
|
37
|
-
"Content-Type": "application/json",
|
|
38
|
-
},
|
|
39
|
-
body: JSON.stringify(req),
|
|
40
|
-
signal: controller.signal,
|
|
41
|
-
});
|
|
42
|
-
clearTimeout(timeoutId);
|
|
43
|
-
if (!res.ok) {
|
|
44
|
-
let message = `Kie Claude API error: ${res.status}`;
|
|
45
|
-
let body = null;
|
|
46
|
-
let code;
|
|
47
|
-
try {
|
|
48
|
-
body = await res.json();
|
|
49
|
-
if (typeof body === "object" &&
|
|
50
|
-
body !== null &&
|
|
51
|
-
"error" in body) {
|
|
52
|
-
const err = body.error;
|
|
53
|
-
if (typeof err.message === "string") {
|
|
54
|
-
message = `Kie Claude API error ${res.status}: ${err.message}`;
|
|
55
|
-
}
|
|
56
|
-
code = err.type;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// ignore parse errors
|
|
61
|
-
}
|
|
62
|
-
throw new KieError(message, res.status, body, code);
|
|
63
|
-
}
|
|
64
|
-
return (await res.json());
|
|
29
|
+
return await transport.postJson("/claude/v1/messages", req, { signal });
|
|
65
30
|
}
|
|
66
31
|
catch (error) {
|
|
67
|
-
clearTimeout(timeoutId);
|
|
68
32
|
if (error instanceof KieError)
|
|
69
33
|
throw error;
|
|
70
34
|
if (error instanceof SyntaxError) {
|
package/dist/src/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoG9C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,MAAc,EACd,OAAqB,EACrB,OAAe;IAEf,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,OAAO;QAClB,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;YACrB,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,cAAc,EAAE,0BAA0B,CAAC,sBAAsB,CAAC;QAClE,UAAU,EAAE,QAAQ;QACpB,mBAAmB,EAAE,uBAAuB;KAC7C,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,EAAE,EAAE;oBACF,6CAA6C;oBAC7C,4DAA4D;oBAC5D,QAAQ,EAAE,MAAM,CAAC,MAAM,CACrB,KAAK,UAAU,QAAQ,CACrB,GAAqB,EACrB,MAAoB;wBAEpB,IAAI,CAAC;4BACH,OAAO,MAAM,SAAS,CAAC,QAAQ,CAC7B,qBAAqB,EACrB,GAAG,EACH,EAAE,MAAM,EAAE,CACX,CAAC;wBACJ,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,KAAK,YAAY,QAAQ;gCAAE,MAAM,KAAK,CAAC;4BAC3C,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gCACjC,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;4BAC7D,CAAC;4BACD,MAAM,IAAI,QAAQ,CAAC,0BAA0B,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC,EACD;wBACE,MAAM,EAAE,sBAAsB;qBAC/B,CACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA2S7C,CAAC;AAEF,eAAe,QAAQ,CAAC;AAOxB,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CA6ChD"}
|
package/dist/src/example.js
CHANGED
|
@@ -29,18 +29,44 @@ const EXAMPLES = {
|
|
|
29
29
|
"taskId": "49265b81be9607661c0246b892144776"
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
+
"GET api.v1.lyrics.recordInfo": {
|
|
33
|
+
"source": "kie/suno/lyrics-record-info",
|
|
34
|
+
"payload": {
|
|
35
|
+
"taskId": "apicity-test-nonexistent-lyrics-task-id-do-not-record-real"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"GET api.v1.mj.recordInfo": {
|
|
39
|
+
"source": "kie/mj/record-info-not-found",
|
|
40
|
+
"payload": {
|
|
41
|
+
"taskId": "apicity-test-nonexistent-mj-task-id-do-not-record-real"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
32
44
|
"GET api.v1.runway.recordDetail": {
|
|
33
45
|
"source": "kie/runway/record-detail-not-found",
|
|
34
46
|
"payload": {
|
|
35
47
|
"taskId": "apicity-test-nonexistent-task-id-do-not-record-real"
|
|
36
48
|
}
|
|
37
49
|
},
|
|
50
|
+
"GET api.v1.veo.get1080pVideo": {
|
|
51
|
+
"source": "kie/veo/get-1080p-video",
|
|
52
|
+
"payload": {
|
|
53
|
+
"taskId": "apicity-test-veo-1080p-not-found",
|
|
54
|
+
"index": 0
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"GET api.v1.veo.recordInfo": {
|
|
58
|
+
"source": "kie/veo/record-info-not-found",
|
|
59
|
+
"payload": {
|
|
60
|
+
"taskId": "apicity-test-nonexistent-veo-task-id-do-not-record-real"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
38
63
|
"POST api.fileBase64Upload": {
|
|
39
|
-
"source": "kie/file-base64
|
|
64
|
+
"source": "kie/file-uploads/base64",
|
|
40
65
|
"payload": {
|
|
41
|
-
"base64Data": "
|
|
42
|
-
"uploadPath": "
|
|
43
|
-
"fileName": "test.
|
|
66
|
+
"base64Data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFCcSAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
|
|
67
|
+
"uploadPath": "images/test-uploads",
|
|
68
|
+
"fileName": "test-base64.png",
|
|
69
|
+
"mimeType": "image/png"
|
|
44
70
|
}
|
|
45
71
|
},
|
|
46
72
|
"POST api.v1.common.downloadUrl": {
|
package/dist/src/example.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,qEAAqE;AAOrE,MAAM,QAAQ,GAAoC;IAChD,oCAAoC,EAAE;QACpC,QAAQ,EAAE,wCAAwC;QAClD,SAAS,EAAE;YACT,QAAQ,EAAE,qDAAqD;SAChE;KACF;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,gCAAgC;QAC1C,SAAS,EAAE;YACT,QAAQ,EAAE,qDAAqD;SAChE;KACF;IACD,kCAAkC,EAAE;QAClC,QAAQ,EAAE,uCAAuC;QACjD,SAAS,EAAE;YACT,QAAQ,EAAE,qDAAqD;SAChE;KACF;IACD,4BAA4B,EAAE;QAC5B,QAAQ,EAAE,0BAA0B;QACpC,SAAS,EAAE;YACT,QAAQ,EAAE,kCAAkC;SAC7C;KACF;IACD,gCAAgC,EAAE;QAChC,QAAQ,EAAE,oCAAoC;QAC9C,SAAS,EAAE;YACT,QAAQ,EAAE,qDAAqD;SAChE;KACF;IACD,2BAA2B,EAAE;QAC3B,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-31-pro.d.ts","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-31-pro.d.ts","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sseDataToIterable } from "./sse.js";
|
|
2
2
|
import { KieError } from "./types.js";
|
|
3
3
|
import { KieGemini31ProChatCompletionsRequestSchema } from "./zod.js";
|
|
4
|
-
|
|
5
|
-
if (!signal)
|
|
6
|
-
return;
|
|
7
|
-
if (signal.aborted) {
|
|
8
|
-
controller.abort();
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
signal.addEventListener("abort", () => controller.abort(), { once: true });
|
|
12
|
-
}
|
|
4
|
+
import { createTransport } from "./transport.js";
|
|
13
5
|
function isGemini31ProErrorBody(value) {
|
|
14
6
|
return typeof value === "object" && value !== null;
|
|
15
7
|
}
|
|
@@ -43,19 +35,8 @@ function formatGemini31ProError(status, body) {
|
|
|
43
35
|
}
|
|
44
36
|
return { message: `Kie Gemini 3.1 Pro API error: ${status}` };
|
|
45
37
|
}
|
|
46
|
-
async function parseErrorResponse(res) {
|
|
47
|
-
let body = null;
|
|
48
|
-
try {
|
|
49
|
-
body = await res.json();
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// ignore parse errors
|
|
53
|
-
}
|
|
54
|
-
const formatted = formatGemini31ProError(res.status, body);
|
|
55
|
-
return new KieError(formatted.message, res.status, body, formatted.code);
|
|
56
|
-
}
|
|
57
38
|
async function* parseChatCompletionsStream(res) {
|
|
58
|
-
for await (const data of
|
|
39
|
+
for await (const data of sseDataToIterable(res)) {
|
|
59
40
|
if (data === "[DONE]") {
|
|
60
41
|
break;
|
|
61
42
|
}
|
|
@@ -74,6 +55,18 @@ function isEventStream(res) {
|
|
|
74
55
|
.includes("text/event-stream") ?? false);
|
|
75
56
|
}
|
|
76
57
|
export function createGemini31ProProvider(baseURL, apiKey, doFetch, timeout) {
|
|
58
|
+
const transport = createTransport({
|
|
59
|
+
baseUrl: baseURL.replace(/\/$/, ""),
|
|
60
|
+
timeoutMs: timeout,
|
|
61
|
+
fetchImpl: doFetch,
|
|
62
|
+
defaultHeaders: () => ({
|
|
63
|
+
Authorization: `Bearer ${apiKey}`,
|
|
64
|
+
"Content-Type": "application/json",
|
|
65
|
+
}),
|
|
66
|
+
parseErrorBody: formatGemini31ProError,
|
|
67
|
+
errorClass: KieError,
|
|
68
|
+
requestFailedPrefix: "Gemini 3.1 Pro chat request failed",
|
|
69
|
+
});
|
|
77
70
|
return {
|
|
78
71
|
gemini31Pro: {
|
|
79
72
|
post: {
|
|
@@ -83,30 +76,18 @@ export function createGemini31ProProvider(baseURL, apiKey, doFetch, timeout) {
|
|
|
83
76
|
// POST https://api.kie.ai/gemini-3.1-pro/v1/chat/completions
|
|
84
77
|
// Docs: https://docs.kie.ai/market/gemini/gemini-3-1-pro
|
|
85
78
|
completions: Object.assign(async function completions(req, signal) {
|
|
86
|
-
const controller = new AbortController();
|
|
87
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
88
|
-
attachAbortHandler(signal, controller);
|
|
89
79
|
try {
|
|
90
|
-
const res = await
|
|
80
|
+
const res = await transport.raw("/gemini-3.1-pro/v1/chat/completions", {
|
|
91
81
|
method: "POST",
|
|
92
|
-
headers: {
|
|
93
|
-
Authorization: `Bearer ${apiKey}`,
|
|
94
|
-
"Content-Type": "application/json",
|
|
95
|
-
},
|
|
96
82
|
body: JSON.stringify(req),
|
|
97
|
-
signal
|
|
83
|
+
signal,
|
|
98
84
|
});
|
|
99
|
-
clearTimeout(timeoutId);
|
|
100
|
-
if (!res.ok) {
|
|
101
|
-
throw await parseErrorResponse(res);
|
|
102
|
-
}
|
|
103
85
|
if (isEventStream(res)) {
|
|
104
86
|
return parseChatCompletionsStream(res);
|
|
105
87
|
}
|
|
106
88
|
return (await res.json());
|
|
107
89
|
}
|
|
108
90
|
catch (error) {
|
|
109
|
-
clearTimeout(timeoutId);
|
|
110
91
|
if (error instanceof KieError)
|
|
111
92
|
throw error;
|
|
112
93
|
if (error instanceof SyntaxError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-31-pro.js","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"gemini-31-pro.js","sourceRoot":"","sources":["../../src/gemini-31-pro.ts"],"names":[],"mappings":"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"}
|
package/dist/src/gemini.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,OAAO,CAAC;AAG1E,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uCAAuC;IACtD,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,0CAA0C,GACpD,uCAAuC,CAAC;AAE1C,MAAM,MAAM,2CAA2C,GACnD,uCAAuC,GACvC,aAAa,CAAC,0CAA0C,CAAC,CAAC;AAE9D,UAAU,2CAA2C;IACnD,CACE,GAAG,EAAE,4CAA4C,EACjD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,2CAA2C,CAAC,CAAC;IACxD,MAAM,EAAE,aAAa,CAAC,4CAA4C,CAAC,CAAC;CACrE;AAED,UAAU,wBAAwB;IAChC,aAAa,EAAE;QACb,qBAAqB,EAAE,2CAA2C,CAAC;KACpE,CAAC;CACH;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,UAAU,sBAAsB;IAC9B,EAAE,EAAE,wBAAwB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB,CAAC;KAC9B,CAAC;CACH;AA8DD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KAAK,EACrB,OAAO,EAAE,MAAM,GACd,iBAAiB,CA+DnB"}
|
package/dist/src/gemini.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sseDataToIterable } from "./sse.js";
|
|
2
2
|
import { KieError } from "./types.js";
|
|
3
3
|
import { KieGemini35FlashStreamGenerateContentRequestSchema } from "./zod.js";
|
|
4
|
-
|
|
5
|
-
if (!signal)
|
|
6
|
-
return;
|
|
7
|
-
if (signal.aborted) {
|
|
8
|
-
controller.abort();
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
signal.addEventListener("abort", () => controller.abort(), { once: true });
|
|
12
|
-
}
|
|
4
|
+
import { createTransport } from "./transport.js";
|
|
13
5
|
function isGeminiErrorBody(value) {
|
|
14
6
|
return typeof value === "object" && value !== null;
|
|
15
7
|
}
|
|
@@ -30,19 +22,8 @@ function formatGeminiError(status, body) {
|
|
|
30
22
|
}
|
|
31
23
|
return { message: `Kie Gemini API error: ${status}` };
|
|
32
24
|
}
|
|
33
|
-
async function parseErrorResponse(res) {
|
|
34
|
-
let body = null;
|
|
35
|
-
try {
|
|
36
|
-
body = await res.json();
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
// ignore parse errors
|
|
40
|
-
}
|
|
41
|
-
const formatted = formatGeminiError(res.status, body);
|
|
42
|
-
return new KieError(formatted.message, res.status, body, formatted.code);
|
|
43
|
-
}
|
|
44
25
|
async function* parseGeminiStream(res) {
|
|
45
|
-
for await (const data of
|
|
26
|
+
for await (const data of sseDataToIterable(res)) {
|
|
46
27
|
if (data === "[DONE]") {
|
|
47
28
|
break;
|
|
48
29
|
}
|
|
@@ -61,6 +42,18 @@ function isEventStream(res) {
|
|
|
61
42
|
.includes("text/event-stream") ?? false);
|
|
62
43
|
}
|
|
63
44
|
export function createGeminiProvider(baseURL, apiKey, doFetch, timeout) {
|
|
45
|
+
const transport = createTransport({
|
|
46
|
+
baseUrl: baseURL.replace(/\/$/, ""),
|
|
47
|
+
timeoutMs: timeout,
|
|
48
|
+
fetchImpl: doFetch,
|
|
49
|
+
defaultHeaders: () => ({
|
|
50
|
+
"Content-Type": "application/json",
|
|
51
|
+
"X-Goog-Api-Key": apiKey,
|
|
52
|
+
}),
|
|
53
|
+
parseErrorBody: formatGeminiError,
|
|
54
|
+
errorClass: KieError,
|
|
55
|
+
requestFailedPrefix: "Gemini request failed",
|
|
56
|
+
});
|
|
64
57
|
return {
|
|
65
58
|
gemini: {
|
|
66
59
|
post: {
|
|
@@ -70,30 +63,18 @@ export function createGeminiProvider(baseURL, apiKey, doFetch, timeout) {
|
|
|
70
63
|
// POST https://api.kie.ai/gemini/v1/models/gemini-3-5-flash:streamGenerateContent
|
|
71
64
|
// Docs: https://docs.kie.ai/market/gemini/gemini-3-5-flash
|
|
72
65
|
streamGenerateContent: Object.assign(async function streamGenerateContent(req, signal) {
|
|
73
|
-
const controller = new AbortController();
|
|
74
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
75
|
-
attachAbortHandler(signal, controller);
|
|
76
66
|
try {
|
|
77
|
-
const res = await
|
|
67
|
+
const res = await transport.raw("/gemini/v1/models/gemini-3-5-flash:streamGenerateContent", {
|
|
78
68
|
method: "POST",
|
|
79
|
-
headers: {
|
|
80
|
-
"Content-Type": "application/json",
|
|
81
|
-
"X-Goog-Api-Key": apiKey,
|
|
82
|
-
},
|
|
83
69
|
body: JSON.stringify(req),
|
|
84
|
-
signal
|
|
70
|
+
signal,
|
|
85
71
|
});
|
|
86
|
-
clearTimeout(timeoutId);
|
|
87
|
-
if (!res.ok) {
|
|
88
|
-
throw await parseErrorResponse(res);
|
|
89
|
-
}
|
|
90
72
|
if (isEventStream(res)) {
|
|
91
73
|
return parseGeminiStream(res);
|
|
92
74
|
}
|
|
93
75
|
return (await res.json());
|
|
94
76
|
}
|
|
95
77
|
catch (error) {
|
|
96
|
-
clearTimeout(timeoutId);
|
|
97
78
|
if (error instanceof KieError)
|
|
98
79
|
throw error;
|
|
99
80
|
if (error instanceof SyntaxError) {
|