@cartesia/cartesia-js 1.0.1 → 1.0.2
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/.turbo/turbo-build.log +34 -34
- package/CHANGELOG.md +6 -0
- package/dist/{chunk-2NA5SEML.js → chunk-EDAAHENY.js} +2 -2
- package/dist/{chunk-ASZKHN7Q.js → chunk-IZBPLCGW.js} +54 -50
- package/dist/{chunk-OFH3ML4L.js → chunk-NVOCUUOF.js} +3 -3
- package/dist/chunk-PISCPZK4.js +40 -0
- package/dist/{chunk-KUSVZXDT.js → chunk-UCYL2SOX.js} +17 -14
- package/dist/index.cjs +84 -72
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/lib/client.cjs +35 -10
- package/dist/lib/client.d.cts +2 -2
- package/dist/lib/client.d.ts +2 -2
- package/dist/lib/client.js +1 -1
- package/dist/lib/index.cjs +84 -72
- package/dist/lib/index.js +5 -5
- package/dist/react/index.cjs +84 -72
- package/dist/react/index.d.cts +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.js +5 -5
- package/dist/tts/index.cjs +68 -59
- package/dist/tts/index.js +3 -3
- package/dist/tts/websocket.cjs +68 -59
- package/dist/tts/websocket.js +2 -2
- package/dist/types/index.d.cts +6 -2
- package/dist/types/index.d.ts +6 -2
- package/dist/voices/index.cjs +31 -23
- package/dist/voices/index.d.cts +2 -1
- package/dist/voices/index.d.ts +2 -1
- package/dist/voices/index.js +2 -2
- package/package.json +1 -1
- package/src/lib/client.ts +10 -10
- package/src/react/index.ts +1 -1
- package/src/tts/websocket.ts +9 -7
- package/src/types/index.ts +8 -1
- package/src/voices/index.ts +22 -15
- package/dist/chunk-5M33ZF3Y.js +0 -34
package/.turbo/turbo-build.log
CHANGED
|
@@ -5,71 +5,71 @@ $ tsup src/ --format cjs,esm --dts
|
|
|
5
5
|
[34mCLI[39m Target: es6
|
|
6
6
|
[34mCJS[39m Build start
|
|
7
7
|
[34mESM[39m Build start
|
|
8
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m24.12 KB[39m
|
|
9
|
-
[32mCJS[39m [1mdist/lib/client.cjs [22m[32m3.34 KB[39m
|
|
10
|
-
[32mCJS[39m [1mdist/react/index.cjs [22m[32m31.68 KB[39m
|
|
11
|
-
[32mCJS[39m [1mdist/tts/index.cjs [22m[32m18.49 KB[39m
|
|
12
8
|
[32mCJS[39m [1mdist/types/index.cjs [22m[32m764.00 B[39m
|
|
13
|
-
[32mCJS[39m [1mdist/voices/index.cjs [22m[32m5.
|
|
9
|
+
[32mCJS[39m [1mdist/voices/index.cjs [22m[32m5.36 KB[39m
|
|
10
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m24.67 KB[39m
|
|
11
|
+
[32mCJS[39m [1mdist/lib/client.cjs [22m[32m4.07 KB[39m
|
|
14
12
|
[32mCJS[39m [1mdist/lib/constants.cjs [22m[32m1.43 KB[39m
|
|
15
|
-
[32mCJS[39m [1mdist/lib/index.cjs [22m[32m20.
|
|
13
|
+
[32mCJS[39m [1mdist/lib/index.cjs [22m[32m20.57 KB[39m
|
|
14
|
+
[32mCJS[39m [1mdist/react/index.cjs [22m[32m32.23 KB[39m
|
|
16
15
|
[32mCJS[39m [1mdist/react/utils.cjs [22m[32m1.80 KB[39m
|
|
16
|
+
[32mCJS[39m [1mdist/tts/index.cjs [22m[32m18.92 KB[39m
|
|
17
17
|
[32mCJS[39m [1mdist/tts/player.cjs [22m[32m6.96 KB[39m
|
|
18
18
|
[32mCJS[39m [1mdist/tts/source.cjs [22m[32m8.15 KB[39m
|
|
19
19
|
[32mCJS[39m [1mdist/tts/utils.cjs [22m[32m4.33 KB[39m
|
|
20
|
-
[32mCJS[39m [1mdist/tts/websocket.cjs [22m[32m18.
|
|
21
|
-
[32mCJS[39m ⚡️ Build success in
|
|
22
|
-
[32mESM[39m [1mdist/chunk-FXPGR372.js [22m[32m0 B[39m
|
|
23
|
-
[32mESM[39m [1mdist/tts/source.js [22m[32m144.00 B[39m
|
|
24
|
-
[32mESM[39m [1mdist/tts/utils.js [22m[32m426.00 B[39m
|
|
25
|
-
[32mESM[39m [1mdist/tts/websocket.js [22m[32m242.00 B[39m
|
|
26
|
-
[32mESM[39m [1mdist/types/index.js [22m[32m31.00 B[39m
|
|
27
|
-
[32mESM[39m [1mdist/voices/index.js [22m[32m174.00 B[39m
|
|
20
|
+
[32mCJS[39m [1mdist/tts/websocket.cjs [22m[32m18.61 KB[39m
|
|
21
|
+
[32mCJS[39m ⚡️ Build success in 75ms
|
|
28
22
|
[32mESM[39m [1mdist/index.js [22m[32m499.00 B[39m
|
|
29
|
-
[32mESM[39m [1mdist/lib/client.js [22m[32m132.00 B[39m
|
|
30
23
|
[32mESM[39m [1mdist/lib/constants.js [22m[32m183.00 B[39m
|
|
31
|
-
[32mESM[39m [1mdist/
|
|
24
|
+
[32mESM[39m [1mdist/chunk-FXPGR372.js [22m[32m0 B[39m
|
|
32
25
|
[32mESM[39m [1mdist/react/index.js [22m[32m7.62 KB[39m
|
|
33
|
-
[32mESM[39m [1mdist/
|
|
34
|
-
[32mESM[39m [1mdist/
|
|
26
|
+
[32mESM[39m [1mdist/tts/index.js [22m[32m261.00 B[39m
|
|
27
|
+
[32mESM[39m [1mdist/lib/index.js [22m[32m322.00 B[39m
|
|
28
|
+
[32mESM[39m [1mdist/chunk-NVOCUUOF.js [22m[32m353.00 B[39m
|
|
29
|
+
[32mESM[39m [1mdist/chunk-UCYL2SOX.js [22m[32m1.48 KB[39m
|
|
35
30
|
[32mESM[39m [1mdist/react/utils.js [22m[32m109.00 B[39m
|
|
36
31
|
[32mESM[39m [1mdist/chunk-NQVZNVOU.js [22m[32m337.00 B[39m
|
|
37
|
-
[32mESM[39m [1mdist/
|
|
38
|
-
[32mESM[39m [1mdist/chunk-
|
|
39
|
-
[32mESM[39m [1mdist/chunk-
|
|
40
|
-
[32mESM[39m [1mdist/chunk-5M33ZF3Y.js [22m[32m841.00 B[39m
|
|
32
|
+
[32mESM[39m [1mdist/chunk-EDAAHENY.js [22m[32m439.00 B[39m
|
|
33
|
+
[32mESM[39m [1mdist/chunk-IZBPLCGW.js [22m[32m7.13 KB[39m
|
|
34
|
+
[32mESM[39m [1mdist/chunk-PISCPZK4.js [22m[32m1.02 KB[39m
|
|
41
35
|
[32mESM[39m [1mdist/chunk-2BFEKY3F.js [22m[32m366.00 B[39m
|
|
42
36
|
[32mESM[39m [1mdist/tts/player.js [22m[32m174.00 B[39m
|
|
43
37
|
[32mESM[39m [1mdist/chunk-LZO6K34D.js [22m[32m3.76 KB[39m
|
|
44
38
|
[32mESM[39m [1mdist/chunk-BHY7MNGT.js [22m[32m2.11 KB[39m
|
|
45
39
|
[32mESM[39m [1mdist/chunk-6YQ6KDIQ.js [22m[32m5.32 KB[39m
|
|
46
40
|
[32mESM[39m [1mdist/chunk-GHY2WEOK.js [22m[32m2.70 KB[39m
|
|
47
|
-
[32mESM[39m
|
|
41
|
+
[32mESM[39m [1mdist/tts/source.js [22m[32m144.00 B[39m
|
|
42
|
+
[32mESM[39m [1mdist/tts/utils.js [22m[32m426.00 B[39m
|
|
43
|
+
[32mESM[39m [1mdist/tts/websocket.js [22m[32m242.00 B[39m
|
|
44
|
+
[32mESM[39m [1mdist/types/index.js [22m[32m31.00 B[39m
|
|
45
|
+
[32mESM[39m [1mdist/voices/index.js [22m[32m174.00 B[39m
|
|
46
|
+
[32mESM[39m [1mdist/lib/client.js [22m[32m132.00 B[39m
|
|
47
|
+
[32mESM[39m ⚡️ Build success in 77ms
|
|
48
48
|
[34mDTS[39m Build start
|
|
49
|
-
[32mDTS[39m ⚡️ Build success in
|
|
50
|
-
[32mDTS[39m [1mdist/index.d.cts [22m[
|
|
49
|
+
[32mDTS[39m ⚡️ Build success in 8516ms
|
|
50
|
+
[32mDTS[39m [1mdist/index.d.cts [22m[32m817.00 B[39m
|
|
51
51
|
[32mDTS[39m [1mdist/lib/constants.d.cts [22m[32m564.00 B[39m
|
|
52
52
|
[32mDTS[39m [1mdist/lib/index.d.cts [22m[32m410.00 B[39m
|
|
53
|
-
[32mDTS[39m [1mdist/react/index.d.cts [22m[32m1.
|
|
53
|
+
[32mDTS[39m [1mdist/react/index.d.cts [22m[32m1.09 KB[39m
|
|
54
54
|
[32mDTS[39m [1mdist/react/utils.d.cts [22m[32m240.00 B[39m
|
|
55
55
|
[32mDTS[39m [1mdist/tts/index.d.cts [22m[32m471.00 B[39m
|
|
56
56
|
[32mDTS[39m [1mdist/tts/player.d.cts [22m[32m1.20 KB[39m
|
|
57
57
|
[32mDTS[39m [1mdist/tts/utils.d.cts [22m[32m2.68 KB[39m
|
|
58
58
|
[32mDTS[39m [1mdist/tts/websocket.d.cts [22m[32m2.94 KB[39m
|
|
59
59
|
[32mDTS[39m [1mdist/tts/source.d.cts [22m[32m2.55 KB[39m
|
|
60
|
-
[32mDTS[39m [1mdist/voices/index.d.cts [22m[
|
|
61
|
-
[32mDTS[39m [1mdist/lib/client.d.cts [22m[
|
|
62
|
-
[32mDTS[39m [1mdist/types/index.d.cts [22m[32m3.
|
|
63
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[
|
|
60
|
+
[32mDTS[39m [1mdist/voices/index.d.cts [22m[32m472.00 B[39m
|
|
61
|
+
[32mDTS[39m [1mdist/lib/client.d.cts [22m[32m293.00 B[39m
|
|
62
|
+
[32mDTS[39m [1mdist/types/index.d.cts [22m[32m3.25 KB[39m
|
|
63
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m809.00 B[39m
|
|
64
64
|
[32mDTS[39m [1mdist/lib/constants.d.ts [22m[32m564.00 B[39m
|
|
65
65
|
[32mDTS[39m [1mdist/lib/index.d.ts [22m[32m404.00 B[39m
|
|
66
|
-
[32mDTS[39m [1mdist/react/index.d.ts [22m[32m1.
|
|
66
|
+
[32mDTS[39m [1mdist/react/index.d.ts [22m[32m1.09 KB[39m
|
|
67
67
|
[32mDTS[39m [1mdist/react/utils.d.ts [22m[32m240.00 B[39m
|
|
68
68
|
[32mDTS[39m [1mdist/tts/index.d.ts [22m[32m467.00 B[39m
|
|
69
69
|
[32mDTS[39m [1mdist/tts/player.d.ts [22m[32m1.20 KB[39m
|
|
70
70
|
[32mDTS[39m [1mdist/tts/utils.d.ts [22m[32m2.68 KB[39m
|
|
71
71
|
[32mDTS[39m [1mdist/tts/websocket.d.ts [22m[32m2.94 KB[39m
|
|
72
72
|
[32mDTS[39m [1mdist/tts/source.d.ts [22m[32m2.55 KB[39m
|
|
73
|
-
[32mDTS[39m [1mdist/voices/index.d.ts [22m[
|
|
74
|
-
[32mDTS[39m [1mdist/lib/client.d.ts [22m[
|
|
75
|
-
[32mDTS[39m [1mdist/types/index.d.ts [22m[32m3.
|
|
73
|
+
[32mDTS[39m [1mdist/voices/index.d.ts [22m[32m470.00 B[39m
|
|
74
|
+
[32mDTS[39m [1mdist/lib/client.d.ts [22m[32m292.00 B[39m
|
|
75
|
+
[32mDTS[39m [1mdist/types/index.d.ts [22m[32m3.25 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Client
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PISCPZK4.js";
|
|
4
4
|
import {
|
|
5
5
|
CARTESIA_VERSION,
|
|
6
6
|
constructApiUrl
|
|
@@ -159,56 +159,60 @@ var WebSocket = class extends Client {
|
|
|
159
159
|
* @throws {Error} If the WebSocket fails to connect.
|
|
160
160
|
*/
|
|
161
161
|
connect() {
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
return __async(this, null, function* () {
|
|
163
|
+
const emitter = new Emittery();
|
|
164
|
+
this.socket = new PartySocketWebSocket(() => __async(this, null, function* () {
|
|
165
|
+
const url = constructApiUrl(this.baseUrl, "/tts/websocket", {
|
|
166
|
+
websocket: true
|
|
167
|
+
});
|
|
168
|
+
url.searchParams.set("api_key", yield this.apiKey());
|
|
169
|
+
url.searchParams.set("cartesia_version", CARTESIA_VERSION);
|
|
170
|
+
return url.toString();
|
|
171
|
+
}));
|
|
172
|
+
this.socket.onopen = () => {
|
|
173
|
+
__privateSet(this, _isConnected, true);
|
|
174
|
+
emitter.emit("open");
|
|
175
|
+
};
|
|
176
|
+
this.socket.onclose = () => {
|
|
177
|
+
__privateSet(this, _isConnected, false);
|
|
178
|
+
emitter.emit("close");
|
|
179
|
+
};
|
|
180
|
+
return new Promise(
|
|
181
|
+
(resolve, reject) => {
|
|
182
|
+
var _a, _b, _c;
|
|
183
|
+
(_a = this.socket) == null ? void 0 : _a.addEventListener(
|
|
184
|
+
"open",
|
|
185
|
+
() => {
|
|
186
|
+
resolve(getEmitteryCallbacks(emitter));
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
once: true
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
const aborter = new AbortController();
|
|
193
|
+
(_b = this.socket) == null ? void 0 : _b.addEventListener(
|
|
194
|
+
"error",
|
|
195
|
+
() => {
|
|
196
|
+
aborter.abort();
|
|
197
|
+
reject(new Error("WebSocket failed to connect."));
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
signal: aborter.signal
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
(_c = this.socket) == null ? void 0 : _c.addEventListener(
|
|
204
|
+
"close",
|
|
205
|
+
() => {
|
|
206
|
+
aborter.abort();
|
|
207
|
+
reject(new Error("WebSocket closed before it could connect."));
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
signal: aborter.signal
|
|
211
|
+
}
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
);
|
|
164
215
|
});
|
|
165
|
-
url.searchParams.set("api_key", this.apiKey);
|
|
166
|
-
url.searchParams.set("cartesia_version", CARTESIA_VERSION);
|
|
167
|
-
const emitter = new Emittery();
|
|
168
|
-
this.socket = new PartySocketWebSocket(url.toString());
|
|
169
|
-
this.socket.onopen = () => {
|
|
170
|
-
__privateSet(this, _isConnected, true);
|
|
171
|
-
emitter.emit("open");
|
|
172
|
-
};
|
|
173
|
-
this.socket.onclose = () => {
|
|
174
|
-
__privateSet(this, _isConnected, false);
|
|
175
|
-
emitter.emit("close");
|
|
176
|
-
};
|
|
177
|
-
return new Promise(
|
|
178
|
-
(resolve, reject) => {
|
|
179
|
-
var _a, _b, _c;
|
|
180
|
-
(_a = this.socket) == null ? void 0 : _a.addEventListener(
|
|
181
|
-
"open",
|
|
182
|
-
() => {
|
|
183
|
-
resolve(getEmitteryCallbacks(emitter));
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
once: true
|
|
187
|
-
}
|
|
188
|
-
);
|
|
189
|
-
const aborter = new AbortController();
|
|
190
|
-
(_b = this.socket) == null ? void 0 : _b.addEventListener(
|
|
191
|
-
"error",
|
|
192
|
-
() => {
|
|
193
|
-
aborter.abort();
|
|
194
|
-
reject(new Error("WebSocket failed to connect."));
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
signal: aborter.signal
|
|
198
|
-
}
|
|
199
|
-
);
|
|
200
|
-
(_c = this.socket) == null ? void 0 : _c.addEventListener(
|
|
201
|
-
"close",
|
|
202
|
-
() => {
|
|
203
|
-
aborter.abort();
|
|
204
|
-
reject(new Error("WebSocket closed before it could connect."));
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
signal: aborter.signal
|
|
208
|
-
}
|
|
209
|
-
);
|
|
210
|
-
}
|
|
211
|
-
);
|
|
212
216
|
}
|
|
213
217
|
/**
|
|
214
218
|
* Disconnect from the Cartesia streaming WebSocket.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Voices
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UCYL2SOX.js";
|
|
4
4
|
import {
|
|
5
5
|
TTS
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EDAAHENY.js";
|
|
7
7
|
import {
|
|
8
8
|
Client
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PISCPZK4.js";
|
|
10
10
|
|
|
11
11
|
// src/lib/index.ts
|
|
12
12
|
var Cartesia = class extends Client {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BASE_URL,
|
|
3
|
+
CARTESIA_VERSION,
|
|
4
|
+
constructApiUrl
|
|
5
|
+
} from "./chunk-2BFEKY3F.js";
|
|
6
|
+
import {
|
|
7
|
+
__async,
|
|
8
|
+
__spreadProps,
|
|
9
|
+
__spreadValues
|
|
10
|
+
} from "./chunk-GHY2WEOK.js";
|
|
11
|
+
|
|
12
|
+
// src/lib/client.ts
|
|
13
|
+
import fetch from "cross-fetch";
|
|
14
|
+
var Client = class {
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
const apiKey = options.apiKey || process.env.CARTESIA_API_KEY;
|
|
17
|
+
if (!apiKey) {
|
|
18
|
+
throw new Error("Missing Cartesia API key.");
|
|
19
|
+
}
|
|
20
|
+
this.apiKey = typeof apiKey === "function" ? apiKey : () => __async(this, null, function* () {
|
|
21
|
+
return apiKey;
|
|
22
|
+
});
|
|
23
|
+
this.baseUrl = options.baseUrl || BASE_URL;
|
|
24
|
+
}
|
|
25
|
+
_fetch(_0) {
|
|
26
|
+
return __async(this, arguments, function* (path, options = {}) {
|
|
27
|
+
const url = constructApiUrl(this.baseUrl, path);
|
|
28
|
+
const headers = new Headers(options.headers);
|
|
29
|
+
headers.set("X-API-Key", yield this.apiKey());
|
|
30
|
+
headers.set("Cartesia-Version", CARTESIA_VERSION);
|
|
31
|
+
return fetch(url.toString(), __spreadProps(__spreadValues({}, options), {
|
|
32
|
+
headers
|
|
33
|
+
}));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
Client
|
|
40
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Client
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PISCPZK4.js";
|
|
4
4
|
import {
|
|
5
5
|
__async
|
|
6
6
|
} from "./chunk-GHY2WEOK.js";
|
|
@@ -9,40 +9,43 @@ import {
|
|
|
9
9
|
var Voices = class extends Client {
|
|
10
10
|
list() {
|
|
11
11
|
return __async(this, null, function* () {
|
|
12
|
-
const response = yield this.
|
|
12
|
+
const response = yield this._fetch("/voices");
|
|
13
13
|
return response.json();
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
get(voiceId) {
|
|
17
17
|
return __async(this, null, function* () {
|
|
18
|
-
const response = yield this.
|
|
18
|
+
const response = yield this._fetch(`/voices/${voiceId}`);
|
|
19
19
|
return response.json();
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
create(voice) {
|
|
23
23
|
return __async(this, null, function* () {
|
|
24
|
-
const response = yield this.
|
|
24
|
+
const response = yield this._fetch("/voices", {
|
|
25
25
|
method: "POST",
|
|
26
26
|
body: JSON.stringify(voice)
|
|
27
27
|
});
|
|
28
28
|
return response.json();
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
+
update(id, voice) {
|
|
32
|
+
return __async(this, null, function* () {
|
|
33
|
+
const response = yield this._fetch(`/voices/${id}`, {
|
|
34
|
+
method: "PATCH",
|
|
35
|
+
body: JSON.stringify(voice)
|
|
36
|
+
});
|
|
37
|
+
return response.json();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
31
40
|
clone(options) {
|
|
32
41
|
return __async(this, null, function* () {
|
|
33
|
-
if (options.mode === "url") {
|
|
34
|
-
const response = yield this.fetch(
|
|
35
|
-
`/voices/clone/url?link=${options.link}`,
|
|
36
|
-
{
|
|
37
|
-
method: "POST"
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
return response.json();
|
|
41
|
-
}
|
|
42
42
|
if (options.mode === "clip") {
|
|
43
43
|
const formData = new FormData();
|
|
44
44
|
formData.append("clip", options.clip);
|
|
45
|
-
|
|
45
|
+
if (options.enhance !== void 0) {
|
|
46
|
+
formData.append("enhance", options.enhance.toString());
|
|
47
|
+
}
|
|
48
|
+
const response = yield this._fetch("/voices/clone/clip", {
|
|
46
49
|
method: "POST",
|
|
47
50
|
body: formData
|
|
48
51
|
});
|
package/dist/index.cjs
CHANGED
|
@@ -126,20 +126,25 @@ var constructApiUrl = (baseUrl, path, { websocket = false } = {}) => {
|
|
|
126
126
|
// src/lib/client.ts
|
|
127
127
|
var Client = class {
|
|
128
128
|
constructor(options = {}) {
|
|
129
|
-
|
|
129
|
+
const apiKey = options.apiKey || process.env.CARTESIA_API_KEY;
|
|
130
|
+
if (!apiKey) {
|
|
130
131
|
throw new Error("Missing Cartesia API key.");
|
|
131
132
|
}
|
|
132
|
-
this.apiKey =
|
|
133
|
+
this.apiKey = typeof apiKey === "function" ? apiKey : () => __async(this, null, function* () {
|
|
134
|
+
return apiKey;
|
|
135
|
+
});
|
|
133
136
|
this.baseUrl = options.baseUrl || BASE_URL;
|
|
134
137
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
headers
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}, options
|
|
142
|
-
|
|
138
|
+
_fetch(_0) {
|
|
139
|
+
return __async(this, arguments, function* (path, options = {}) {
|
|
140
|
+
const url = constructApiUrl(this.baseUrl, path);
|
|
141
|
+
const headers = new Headers(options.headers);
|
|
142
|
+
headers.set("X-API-Key", yield this.apiKey());
|
|
143
|
+
headers.set("Cartesia-Version", CARTESIA_VERSION);
|
|
144
|
+
return (0, import_cross_fetch.default)(url.toString(), __spreadProps(__spreadValues({}, options), {
|
|
145
|
+
headers
|
|
146
|
+
}));
|
|
147
|
+
});
|
|
143
148
|
}
|
|
144
149
|
};
|
|
145
150
|
|
|
@@ -495,56 +500,60 @@ var WebSocket = class extends Client {
|
|
|
495
500
|
* @throws {Error} If the WebSocket fails to connect.
|
|
496
501
|
*/
|
|
497
502
|
connect() {
|
|
498
|
-
|
|
499
|
-
|
|
503
|
+
return __async(this, null, function* () {
|
|
504
|
+
const emitter = new import_emittery2.default();
|
|
505
|
+
this.socket = new import_partysocket.WebSocket(() => __async(this, null, function* () {
|
|
506
|
+
const url = constructApiUrl(this.baseUrl, "/tts/websocket", {
|
|
507
|
+
websocket: true
|
|
508
|
+
});
|
|
509
|
+
url.searchParams.set("api_key", yield this.apiKey());
|
|
510
|
+
url.searchParams.set("cartesia_version", CARTESIA_VERSION);
|
|
511
|
+
return url.toString();
|
|
512
|
+
}));
|
|
513
|
+
this.socket.onopen = () => {
|
|
514
|
+
__privateSet(this, _isConnected, true);
|
|
515
|
+
emitter.emit("open");
|
|
516
|
+
};
|
|
517
|
+
this.socket.onclose = () => {
|
|
518
|
+
__privateSet(this, _isConnected, false);
|
|
519
|
+
emitter.emit("close");
|
|
520
|
+
};
|
|
521
|
+
return new Promise(
|
|
522
|
+
(resolve, reject) => {
|
|
523
|
+
var _a, _b, _c;
|
|
524
|
+
(_a = this.socket) == null ? void 0 : _a.addEventListener(
|
|
525
|
+
"open",
|
|
526
|
+
() => {
|
|
527
|
+
resolve(getEmitteryCallbacks(emitter));
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
once: true
|
|
531
|
+
}
|
|
532
|
+
);
|
|
533
|
+
const aborter = new AbortController();
|
|
534
|
+
(_b = this.socket) == null ? void 0 : _b.addEventListener(
|
|
535
|
+
"error",
|
|
536
|
+
() => {
|
|
537
|
+
aborter.abort();
|
|
538
|
+
reject(new Error("WebSocket failed to connect."));
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
signal: aborter.signal
|
|
542
|
+
}
|
|
543
|
+
);
|
|
544
|
+
(_c = this.socket) == null ? void 0 : _c.addEventListener(
|
|
545
|
+
"close",
|
|
546
|
+
() => {
|
|
547
|
+
aborter.abort();
|
|
548
|
+
reject(new Error("WebSocket closed before it could connect."));
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
signal: aborter.signal
|
|
552
|
+
}
|
|
553
|
+
);
|
|
554
|
+
}
|
|
555
|
+
);
|
|
500
556
|
});
|
|
501
|
-
url.searchParams.set("api_key", this.apiKey);
|
|
502
|
-
url.searchParams.set("cartesia_version", CARTESIA_VERSION);
|
|
503
|
-
const emitter = new import_emittery2.default();
|
|
504
|
-
this.socket = new import_partysocket.WebSocket(url.toString());
|
|
505
|
-
this.socket.onopen = () => {
|
|
506
|
-
__privateSet(this, _isConnected, true);
|
|
507
|
-
emitter.emit("open");
|
|
508
|
-
};
|
|
509
|
-
this.socket.onclose = () => {
|
|
510
|
-
__privateSet(this, _isConnected, false);
|
|
511
|
-
emitter.emit("close");
|
|
512
|
-
};
|
|
513
|
-
return new Promise(
|
|
514
|
-
(resolve, reject) => {
|
|
515
|
-
var _a, _b, _c;
|
|
516
|
-
(_a = this.socket) == null ? void 0 : _a.addEventListener(
|
|
517
|
-
"open",
|
|
518
|
-
() => {
|
|
519
|
-
resolve(getEmitteryCallbacks(emitter));
|
|
520
|
-
},
|
|
521
|
-
{
|
|
522
|
-
once: true
|
|
523
|
-
}
|
|
524
|
-
);
|
|
525
|
-
const aborter = new AbortController();
|
|
526
|
-
(_b = this.socket) == null ? void 0 : _b.addEventListener(
|
|
527
|
-
"error",
|
|
528
|
-
() => {
|
|
529
|
-
aborter.abort();
|
|
530
|
-
reject(new Error("WebSocket failed to connect."));
|
|
531
|
-
},
|
|
532
|
-
{
|
|
533
|
-
signal: aborter.signal
|
|
534
|
-
}
|
|
535
|
-
);
|
|
536
|
-
(_c = this.socket) == null ? void 0 : _c.addEventListener(
|
|
537
|
-
"close",
|
|
538
|
-
() => {
|
|
539
|
-
aborter.abort();
|
|
540
|
-
reject(new Error("WebSocket closed before it could connect."));
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
signal: aborter.signal
|
|
544
|
-
}
|
|
545
|
-
);
|
|
546
|
-
}
|
|
547
|
-
);
|
|
548
557
|
}
|
|
549
558
|
/**
|
|
550
559
|
* Disconnect from the Cartesia streaming WebSocket.
|
|
@@ -585,40 +594,43 @@ var TTS = class extends Client {
|
|
|
585
594
|
var Voices = class extends Client {
|
|
586
595
|
list() {
|
|
587
596
|
return __async(this, null, function* () {
|
|
588
|
-
const response = yield this.
|
|
597
|
+
const response = yield this._fetch("/voices");
|
|
589
598
|
return response.json();
|
|
590
599
|
});
|
|
591
600
|
}
|
|
592
601
|
get(voiceId) {
|
|
593
602
|
return __async(this, null, function* () {
|
|
594
|
-
const response = yield this.
|
|
603
|
+
const response = yield this._fetch(`/voices/${voiceId}`);
|
|
595
604
|
return response.json();
|
|
596
605
|
});
|
|
597
606
|
}
|
|
598
607
|
create(voice) {
|
|
599
608
|
return __async(this, null, function* () {
|
|
600
|
-
const response = yield this.
|
|
609
|
+
const response = yield this._fetch("/voices", {
|
|
601
610
|
method: "POST",
|
|
602
611
|
body: JSON.stringify(voice)
|
|
603
612
|
});
|
|
604
613
|
return response.json();
|
|
605
614
|
});
|
|
606
615
|
}
|
|
616
|
+
update(id, voice) {
|
|
617
|
+
return __async(this, null, function* () {
|
|
618
|
+
const response = yield this._fetch(`/voices/${id}`, {
|
|
619
|
+
method: "PATCH",
|
|
620
|
+
body: JSON.stringify(voice)
|
|
621
|
+
});
|
|
622
|
+
return response.json();
|
|
623
|
+
});
|
|
624
|
+
}
|
|
607
625
|
clone(options) {
|
|
608
626
|
return __async(this, null, function* () {
|
|
609
|
-
if (options.mode === "url") {
|
|
610
|
-
const response = yield this.fetch(
|
|
611
|
-
`/voices/clone/url?link=${options.link}`,
|
|
612
|
-
{
|
|
613
|
-
method: "POST"
|
|
614
|
-
}
|
|
615
|
-
);
|
|
616
|
-
return response.json();
|
|
617
|
-
}
|
|
618
627
|
if (options.mode === "clip") {
|
|
619
628
|
const formData = new FormData();
|
|
620
629
|
formData.append("clip", options.clip);
|
|
621
|
-
|
|
630
|
+
if (options.enhance !== void 0) {
|
|
631
|
+
formData.append("enhance", options.enhance.toString());
|
|
632
|
+
}
|
|
633
|
+
const response = yield this._fetch("/voices/clone/clip", {
|
|
622
634
|
method: "POST",
|
|
623
635
|
body: formData
|
|
624
636
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Cartesia, Cartesia as default } from './lib/index.cjs';
|
|
2
|
-
export { Chunk, ClientOptions, CloneOptions, CloneResponse, ConnectionEventData, CreateVoice, EmitteryCallbacks, Emotion, EmotionControl, Encoding, Intensity, Sentinel, SourceEventData, StreamOptions, StreamRequest, TypedArray, Voice, VoiceOptions, VoiceSpecifier, WebSocketBaseResponse, WebSocketChunkResponse, WebSocketErrorResponse, WebSocketOptions, WebSocketResponse, WebSocketTimestampsResponse, WordTimestamps } from './types/index.cjs';
|
|
2
|
+
export { Chunk, ClientOptions, CloneOptions, CloneResponse, ConnectionEventData, CreateVoice, EmitteryCallbacks, Emotion, EmotionControl, Encoding, Intensity, Sentinel, SourceEventData, StreamOptions, StreamRequest, TypedArray, UpdateVoice, Voice, VoiceOptions, VoiceSpecifier, WebSocketBaseResponse, WebSocketChunkResponse, WebSocketErrorResponse, WebSocketOptions, WebSocketResponse, WebSocketTimestampsResponse, WordTimestamps } from './types/index.cjs';
|
|
3
3
|
export { default as WebPlayer } from './tts/player.cjs';
|
|
4
4
|
export { default as Source } from './tts/source.cjs';
|
|
5
5
|
export { default as WebSocket } from './tts/websocket.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Cartesia, Cartesia as default } from './lib/index.js';
|
|
2
|
-
export { Chunk, ClientOptions, CloneOptions, CloneResponse, ConnectionEventData, CreateVoice, EmitteryCallbacks, Emotion, EmotionControl, Encoding, Intensity, Sentinel, SourceEventData, StreamOptions, StreamRequest, TypedArray, Voice, VoiceOptions, VoiceSpecifier, WebSocketBaseResponse, WebSocketChunkResponse, WebSocketErrorResponse, WebSocketOptions, WebSocketResponse, WebSocketTimestampsResponse, WordTimestamps } from './types/index.js';
|
|
2
|
+
export { Chunk, ClientOptions, CloneOptions, CloneResponse, ConnectionEventData, CreateVoice, EmitteryCallbacks, Emotion, EmotionControl, Encoding, Intensity, Sentinel, SourceEventData, StreamOptions, StreamRequest, TypedArray, UpdateVoice, Voice, VoiceOptions, VoiceSpecifier, WebSocketBaseResponse, WebSocketChunkResponse, WebSocketErrorResponse, WebSocketOptions, WebSocketResponse, WebSocketTimestampsResponse, WordTimestamps } from './types/index.js';
|
|
3
3
|
export { default as WebPlayer } from './tts/player.js';
|
|
4
4
|
export { default as Source } from './tts/source.js';
|
|
5
5
|
export { default as WebSocket } from './tts/websocket.js';
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import "./chunk-FXPGR372.js";
|
|
2
2
|
import {
|
|
3
3
|
Cartesia
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-NVOCUUOF.js";
|
|
5
|
+
import "./chunk-UCYL2SOX.js";
|
|
6
|
+
import "./chunk-EDAAHENY.js";
|
|
7
7
|
import {
|
|
8
8
|
WebSocket
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-IZBPLCGW.js";
|
|
10
|
+
import "./chunk-PISCPZK4.js";
|
|
11
11
|
import "./chunk-2BFEKY3F.js";
|
|
12
12
|
import {
|
|
13
13
|
Player
|