retell-sdk 5.49.1 → 5.50.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 +24 -0
- package/client.d.mts +11 -9
- package/client.d.mts.map +1 -1
- package/client.d.ts +11 -9
- package/client.d.ts.map +1 -1
- package/client.js +3 -0
- package/client.js.map +1 -1
- package/client.mjs +3 -0
- package/client.mjs.map +1 -1
- package/index.d.mts +1 -0
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -0
- package/index.mjs.map +1 -1
- package/lib/webhook_auth.d.mts +18 -0
- package/lib/webhook_auth.d.mts.map +1 -0
- package/lib/webhook_auth.d.ts +18 -0
- package/lib/webhook_auth.d.ts.map +1 -0
- package/lib/webhook_auth.js +80 -0
- package/lib/webhook_auth.js.map +1 -0
- package/lib/webhook_auth.mjs +75 -0
- package/lib/webhook_auth.mjs.map +1 -0
- package/package.json +11 -1
- package/resources/agent.d.mts +69 -69
- package/resources/agent.d.mts.map +1 -1
- package/resources/agent.d.ts +69 -69
- package/resources/agent.d.ts.map +1 -1
- package/resources/agent.js +30 -30
- package/resources/agent.js.map +1 -1
- package/resources/agent.mjs +30 -30
- package/resources/agent.mjs.map +1 -1
- package/resources/call.d.mts +1350 -1350
- package/resources/call.d.mts.map +1 -1
- package/resources/call.d.ts +1350 -1350
- package/resources/call.d.ts.map +1 -1
- package/resources/call.js +60 -60
- package/resources/call.js.map +1 -1
- package/resources/call.mjs +60 -60
- package/resources/call.mjs.map +1 -1
- package/resources/chat-agent.d.mts +70 -70
- package/resources/chat-agent.d.mts.map +1 -1
- package/resources/chat-agent.d.ts +70 -70
- package/resources/chat-agent.d.ts.map +1 -1
- package/resources/chat-agent.js +31 -31
- package/resources/chat-agent.js.map +1 -1
- package/resources/chat-agent.mjs +31 -31
- package/resources/chat-agent.mjs.map +1 -1
- package/resources/chat.d.mts +97 -97
- package/resources/chat.d.mts.map +1 -1
- package/resources/chat.d.ts +97 -97
- package/resources/chat.d.ts.map +1 -1
- package/resources/chat.js +55 -55
- package/resources/chat.js.map +1 -1
- package/resources/chat.mjs +55 -55
- package/resources/chat.mjs.map +1 -1
- package/resources/conversation-flow-component.d.mts +25 -25
- package/resources/conversation-flow-component.d.mts.map +1 -1
- package/resources/conversation-flow-component.d.ts +25 -25
- package/resources/conversation-flow-component.d.ts.map +1 -1
- package/resources/conversation-flow-component.js +12 -12
- package/resources/conversation-flow-component.js.map +1 -1
- package/resources/conversation-flow-component.mjs +12 -12
- package/resources/conversation-flow-component.mjs.map +1 -1
- package/resources/conversation-flow.d.mts +25 -25
- package/resources/conversation-flow.d.mts.map +1 -1
- package/resources/conversation-flow.d.ts +25 -25
- package/resources/conversation-flow.d.ts.map +1 -1
- package/resources/conversation-flow.js +12 -12
- package/resources/conversation-flow.js.map +1 -1
- package/resources/conversation-flow.mjs +12 -12
- package/resources/conversation-flow.mjs.map +1 -1
- package/resources/index.d.mts +9 -9
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +9 -9
- package/resources/index.d.ts.map +1 -1
- package/resources/llm.d.mts +24 -24
- package/resources/llm.d.mts.map +1 -1
- package/resources/llm.d.ts +24 -24
- package/resources/llm.d.ts.map +1 -1
- package/resources/llm.js +11 -11
- package/resources/llm.js.map +1 -1
- package/resources/llm.mjs +11 -11
- package/resources/llm.mjs.map +1 -1
- package/resources/phone-number.d.mts +130 -130
- package/resources/phone-number.d.mts.map +1 -1
- package/resources/phone-number.d.ts +130 -130
- package/resources/phone-number.d.ts.map +1 -1
- package/resources/phone-number.js +27 -27
- package/resources/phone-number.js.map +1 -1
- package/resources/phone-number.mjs +27 -27
- package/resources/phone-number.mjs.map +1 -1
- package/resources/tests.d.mts +95 -95
- package/resources/tests.d.mts.map +1 -1
- package/resources/tests.d.ts +95 -95
- package/resources/tests.d.ts.map +1 -1
- package/resources/tests.js +27 -27
- package/resources/tests.js.map +1 -1
- package/resources/tests.mjs +27 -27
- package/resources/tests.mjs.map +1 -1
- package/resources/voice.d.mts +8 -8
- package/resources/voice.d.mts.map +1 -1
- package/resources/voice.d.ts +8 -8
- package/resources/voice.d.ts.map +1 -1
- package/resources/voice.js +12 -12
- package/resources/voice.js.map +1 -1
- package/resources/voice.mjs +12 -12
- package/resources/voice.mjs.map +1 -1
- package/src/client.ts +21 -18
- package/src/index.ts +1 -0
- package/src/lib/webhook_auth.ts +112 -0
- package/src/resources/agent.ts +90 -90
- package/src/resources/call.ts +1821 -1821
- package/src/resources/chat-agent.ts +95 -95
- package/src/resources/chat.ts +112 -112
- package/src/resources/conversation-flow-component.ts +34 -34
- package/src/resources/conversation-flow.ts +34 -34
- package/src/resources/index.ts +18 -18
- package/src/resources/llm.ts +30 -30
- package/src/resources/phone-number.ts +152 -152
- package/src/resources/tests.ts +136 -136
- package/src/resources/voice.ts +12 -12
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/resources/tests.js
CHANGED
|
@@ -7,28 +7,16 @@ const headers_1 = require("../internal/headers.js");
|
|
|
7
7
|
const path_1 = require("../internal/utils/path.js");
|
|
8
8
|
class Tests extends resource_1.APIResource {
|
|
9
9
|
/**
|
|
10
|
-
* Create a
|
|
11
|
-
*/
|
|
12
|
-
createTestCaseDefinition(body, options) {
|
|
13
|
-
return this._client.post('/create-test-case-definition', { body, ...options });
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Get a test case definition by ID
|
|
17
|
-
*/
|
|
18
|
-
getTestCaseDefinition(testCaseDefinitionID, options) {
|
|
19
|
-
return this._client.get((0, path_1.path) `/get-test-case-definition/${testCaseDefinitionID}`, options);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* List test case definitions with pagination
|
|
10
|
+
* Create a batch test to run multiple test cases
|
|
23
11
|
*/
|
|
24
|
-
|
|
25
|
-
return this._client.
|
|
12
|
+
createBatchTest(body, options) {
|
|
13
|
+
return this._client.post('/create-batch-test', { body, ...options });
|
|
26
14
|
}
|
|
27
15
|
/**
|
|
28
|
-
*
|
|
16
|
+
* Create a new test case definition
|
|
29
17
|
*/
|
|
30
|
-
|
|
31
|
-
return this._client.
|
|
18
|
+
createTestCaseDefinition(body, options) {
|
|
19
|
+
return this._client.post('/create-test-case-definition', { body, ...options });
|
|
32
20
|
}
|
|
33
21
|
/**
|
|
34
22
|
* Delete a test case definition
|
|
@@ -39,12 +27,6 @@ class Tests extends resource_1.APIResource {
|
|
|
39
27
|
headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
|
|
40
28
|
});
|
|
41
29
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Create a batch test to run multiple test cases
|
|
44
|
-
*/
|
|
45
|
-
createBatchTest(body, options) {
|
|
46
|
-
return this._client.post('/create-batch-test', { body, ...options });
|
|
47
|
-
}
|
|
48
30
|
/**
|
|
49
31
|
* Get a batch test job by ID
|
|
50
32
|
*/
|
|
@@ -52,10 +34,10 @@ class Tests extends resource_1.APIResource {
|
|
|
52
34
|
return this._client.get((0, path_1.path) `/get-batch-test/${testCaseBatchJobID}`, options);
|
|
53
35
|
}
|
|
54
36
|
/**
|
|
55
|
-
*
|
|
37
|
+
* Get a test case definition by ID
|
|
56
38
|
*/
|
|
57
|
-
|
|
58
|
-
return this._client.get(
|
|
39
|
+
getTestCaseDefinition(testCaseDefinitionID, options) {
|
|
40
|
+
return this._client.get((0, path_1.path) `/get-test-case-definition/${testCaseDefinitionID}`, options);
|
|
59
41
|
}
|
|
60
42
|
/**
|
|
61
43
|
* Get a test case job (test run) by ID
|
|
@@ -63,12 +45,30 @@ class Tests extends resource_1.APIResource {
|
|
|
63
45
|
getTestRun(testCaseJobID, options) {
|
|
64
46
|
return this._client.get((0, path_1.path) `/get-test-run/${testCaseJobID}`, options);
|
|
65
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* List batch test jobs with pagination
|
|
50
|
+
*/
|
|
51
|
+
listBatchTests(query, options) {
|
|
52
|
+
return this._client.get('/v2/list-batch-tests', { query, ...options });
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* List test case definitions with pagination
|
|
56
|
+
*/
|
|
57
|
+
listTestCaseDefinitions(query, options) {
|
|
58
|
+
return this._client.get('/v2/list-test-case-definitions', { query, ...options });
|
|
59
|
+
}
|
|
66
60
|
/**
|
|
67
61
|
* List test case jobs (test runs) for a batch test job with pagination
|
|
68
62
|
*/
|
|
69
63
|
listTestRuns(testCaseBatchJobID, query = {}, options) {
|
|
70
64
|
return this._client.get((0, path_1.path) `/v2/list-test-runs/${testCaseBatchJobID}`, { query, ...options });
|
|
71
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Update a test case definition
|
|
68
|
+
*/
|
|
69
|
+
updateTestCaseDefinition(testCaseDefinitionID, body, options) {
|
|
70
|
+
return this._client.put((0, path_1.path) `/update-test-case-definition/${testCaseDefinitionID}`, { body, ...options });
|
|
71
|
+
}
|
|
72
72
|
}
|
|
73
73
|
exports.Tests = Tests;
|
|
74
74
|
//# sourceMappingURL=tests.js.map
|
package/resources/tests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.js","sourceRoot":"","sources":["../src/resources/tests.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,KAAM,SAAQ,sBAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"tests.js","sourceRoot":"","sources":["../src/resources/tests.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,KAAM,SAAQ,sBAAW;IACpC;;OAEG;IACH,eAAe,CAAC,IAA+B,EAAE,OAAwB;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,wBAAwB,CACtB,IAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,oBAA4B,EAAE,OAAwB;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,gCAAgC,oBAAoB,EAAE,EAAE;YACrF,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,kBAA0B,EAAE,OAAwB;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,mBAAmB,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,oBAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,6BAA6B,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,aAAqB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,iBAAiB,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,KAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACH,YAAY,CACV,kBAA0B,EAC1B,QAAmD,EAAE,EACrD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,sBAAsB,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,wBAAwB,CACtB,oBAA4B,EAC5B,IAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,gCAAgC,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;CACF;AA7FD,sBA6FC"}
|
package/resources/tests.mjs
CHANGED
|
@@ -4,28 +4,16 @@ import { buildHeaders } from "../internal/headers.mjs";
|
|
|
4
4
|
import { path } from "../internal/utils/path.mjs";
|
|
5
5
|
export class Tests extends APIResource {
|
|
6
6
|
/**
|
|
7
|
-
* Create a
|
|
8
|
-
*/
|
|
9
|
-
createTestCaseDefinition(body, options) {
|
|
10
|
-
return this._client.post('/create-test-case-definition', { body, ...options });
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Get a test case definition by ID
|
|
14
|
-
*/
|
|
15
|
-
getTestCaseDefinition(testCaseDefinitionID, options) {
|
|
16
|
-
return this._client.get(path `/get-test-case-definition/${testCaseDefinitionID}`, options);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* List test case definitions with pagination
|
|
7
|
+
* Create a batch test to run multiple test cases
|
|
20
8
|
*/
|
|
21
|
-
|
|
22
|
-
return this._client.
|
|
9
|
+
createBatchTest(body, options) {
|
|
10
|
+
return this._client.post('/create-batch-test', { body, ...options });
|
|
23
11
|
}
|
|
24
12
|
/**
|
|
25
|
-
*
|
|
13
|
+
* Create a new test case definition
|
|
26
14
|
*/
|
|
27
|
-
|
|
28
|
-
return this._client.
|
|
15
|
+
createTestCaseDefinition(body, options) {
|
|
16
|
+
return this._client.post('/create-test-case-definition', { body, ...options });
|
|
29
17
|
}
|
|
30
18
|
/**
|
|
31
19
|
* Delete a test case definition
|
|
@@ -36,12 +24,6 @@ export class Tests extends APIResource {
|
|
|
36
24
|
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
37
25
|
});
|
|
38
26
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Create a batch test to run multiple test cases
|
|
41
|
-
*/
|
|
42
|
-
createBatchTest(body, options) {
|
|
43
|
-
return this._client.post('/create-batch-test', { body, ...options });
|
|
44
|
-
}
|
|
45
27
|
/**
|
|
46
28
|
* Get a batch test job by ID
|
|
47
29
|
*/
|
|
@@ -49,10 +31,10 @@ export class Tests extends APIResource {
|
|
|
49
31
|
return this._client.get(path `/get-batch-test/${testCaseBatchJobID}`, options);
|
|
50
32
|
}
|
|
51
33
|
/**
|
|
52
|
-
*
|
|
34
|
+
* Get a test case definition by ID
|
|
53
35
|
*/
|
|
54
|
-
|
|
55
|
-
return this._client.get(
|
|
36
|
+
getTestCaseDefinition(testCaseDefinitionID, options) {
|
|
37
|
+
return this._client.get(path `/get-test-case-definition/${testCaseDefinitionID}`, options);
|
|
56
38
|
}
|
|
57
39
|
/**
|
|
58
40
|
* Get a test case job (test run) by ID
|
|
@@ -60,11 +42,29 @@ export class Tests extends APIResource {
|
|
|
60
42
|
getTestRun(testCaseJobID, options) {
|
|
61
43
|
return this._client.get(path `/get-test-run/${testCaseJobID}`, options);
|
|
62
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* List batch test jobs with pagination
|
|
47
|
+
*/
|
|
48
|
+
listBatchTests(query, options) {
|
|
49
|
+
return this._client.get('/v2/list-batch-tests', { query, ...options });
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* List test case definitions with pagination
|
|
53
|
+
*/
|
|
54
|
+
listTestCaseDefinitions(query, options) {
|
|
55
|
+
return this._client.get('/v2/list-test-case-definitions', { query, ...options });
|
|
56
|
+
}
|
|
63
57
|
/**
|
|
64
58
|
* List test case jobs (test runs) for a batch test job with pagination
|
|
65
59
|
*/
|
|
66
60
|
listTestRuns(testCaseBatchJobID, query = {}, options) {
|
|
67
61
|
return this._client.get(path `/v2/list-test-runs/${testCaseBatchJobID}`, { query, ...options });
|
|
68
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Update a test case definition
|
|
65
|
+
*/
|
|
66
|
+
updateTestCaseDefinition(testCaseDefinitionID, body, options) {
|
|
67
|
+
return this._client.put(path `/update-test-case-definition/${testCaseDefinitionID}`, { body, ...options });
|
|
68
|
+
}
|
|
69
69
|
}
|
|
70
70
|
//# sourceMappingURL=tests.mjs.map
|
package/resources/tests.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.mjs","sourceRoot":"","sources":["../src/resources/tests.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAE/C,OAAO,EAAE,YAAY,EAAE,gCAA4B;AAEnD,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"tests.mjs","sourceRoot":"","sources":["../src/resources/tests.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAE/C,OAAO,EAAE,YAAY,EAAE,gCAA4B;AAEnD,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,eAAe,CAAC,IAA+B,EAAE,OAAwB;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,wBAAwB,CACtB,IAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,oBAA4B,EAAE,OAAwB;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,gCAAgC,oBAAoB,EAAE,EAAE;YACrF,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,kBAA0B,EAAE,OAAwB;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,mBAAmB,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,oBAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,6BAA6B,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,aAAqB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,iBAAiB,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,KAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACH,YAAY,CACV,kBAA0B,EAC1B,QAAmD,EAAE,EACrD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,sBAAsB,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,wBAAwB,CACtB,oBAA4B,EAC5B,IAAwC,EACxC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,gCAAgC,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;CACF"}
|
package/resources/voice.d.mts
CHANGED
|
@@ -3,14 +3,6 @@ import { APIPromise } from "../core/api-promise.mjs";
|
|
|
3
3
|
import { type Uploadable } from "../core/uploads.mjs";
|
|
4
4
|
import { RequestOptions } from "../internal/request-options.mjs";
|
|
5
5
|
export declare class Voice extends APIResource {
|
|
6
|
-
/**
|
|
7
|
-
* Add a community voice to the voice library
|
|
8
|
-
*/
|
|
9
|
-
addResource(body: VoiceAddResourceParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
10
|
-
/**
|
|
11
|
-
* Clone a voice from audio files
|
|
12
|
-
*/
|
|
13
|
-
clone(body: VoiceCloneParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
14
6
|
/**
|
|
15
7
|
* Retrieve details of a specific voice
|
|
16
8
|
*/
|
|
@@ -19,6 +11,14 @@ export declare class Voice extends APIResource {
|
|
|
19
11
|
* List all voices available to the user
|
|
20
12
|
*/
|
|
21
13
|
list(options?: RequestOptions): APIPromise<VoiceListResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Add a community voice to the voice library
|
|
16
|
+
*/
|
|
17
|
+
addResource(body: VoiceAddResourceParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
18
|
+
/**
|
|
19
|
+
* Clone a voice from audio files
|
|
20
|
+
*/
|
|
21
|
+
clone(body: VoiceCloneParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
22
22
|
/**
|
|
23
23
|
* Search for community voices from voice providers
|
|
24
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.d.mts","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAC/C,OAAO,EAAE,UAAU,EAAE,gCAA4B;AACjD,OAAO,EAAE,KAAK,UAAU,EAAE,4BAAwB;AAClD,OAAO,EAAE,cAAc,EAAE,wCAAoC;AAI7D,qBAAa,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"voice.d.mts","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"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"}
|
package/resources/voice.d.ts
CHANGED
|
@@ -3,14 +3,6 @@ import { APIPromise } from "../core/api-promise.js";
|
|
|
3
3
|
import { type Uploadable } from "../core/uploads.js";
|
|
4
4
|
import { RequestOptions } from "../internal/request-options.js";
|
|
5
5
|
export declare class Voice extends APIResource {
|
|
6
|
-
/**
|
|
7
|
-
* Add a community voice to the voice library
|
|
8
|
-
*/
|
|
9
|
-
addResource(body: VoiceAddResourceParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
10
|
-
/**
|
|
11
|
-
* Clone a voice from audio files
|
|
12
|
-
*/
|
|
13
|
-
clone(body: VoiceCloneParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
14
6
|
/**
|
|
15
7
|
* Retrieve details of a specific voice
|
|
16
8
|
*/
|
|
@@ -19,6 +11,14 @@ export declare class Voice extends APIResource {
|
|
|
19
11
|
* List all voices available to the user
|
|
20
12
|
*/
|
|
21
13
|
list(options?: RequestOptions): APIPromise<VoiceListResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Add a community voice to the voice library
|
|
16
|
+
*/
|
|
17
|
+
addResource(body: VoiceAddResourceParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
18
|
+
/**
|
|
19
|
+
* Clone a voice from audio files
|
|
20
|
+
*/
|
|
21
|
+
clone(body: VoiceCloneParams, options?: RequestOptions): APIPromise<VoiceResponse>;
|
|
22
22
|
/**
|
|
23
23
|
* Search for community voices from voice providers
|
|
24
24
|
*/
|
package/resources/voice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAC/C,OAAO,EAAE,UAAU,EAAE,+BAA4B;AACjD,OAAO,EAAE,KAAK,UAAU,EAAE,2BAAwB;AAClD,OAAO,EAAE,cAAc,EAAE,uCAAoC;AAI7D,qBAAa,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"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"}
|
package/resources/voice.js
CHANGED
|
@@ -6,18 +6,6 @@ const resource_1 = require("../core/resource.js");
|
|
|
6
6
|
const uploads_1 = require("../internal/uploads.js");
|
|
7
7
|
const path_1 = require("../internal/utils/path.js");
|
|
8
8
|
class Voice extends resource_1.APIResource {
|
|
9
|
-
/**
|
|
10
|
-
* Add a community voice to the voice library
|
|
11
|
-
*/
|
|
12
|
-
addResource(body, options) {
|
|
13
|
-
return this._client.post('/add-community-voice', { body, ...options });
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Clone a voice from audio files
|
|
17
|
-
*/
|
|
18
|
-
clone(body, options) {
|
|
19
|
-
return this._client.post('/clone-voice', (0, uploads_1.multipartFormRequestOptions)({ body, ...options }, this._client));
|
|
20
|
-
}
|
|
21
9
|
/**
|
|
22
10
|
* Retrieve details of a specific voice
|
|
23
11
|
*/
|
|
@@ -30,6 +18,18 @@ class Voice extends resource_1.APIResource {
|
|
|
30
18
|
list(options) {
|
|
31
19
|
return this._client.get('/list-voices', options);
|
|
32
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Add a community voice to the voice library
|
|
23
|
+
*/
|
|
24
|
+
addResource(body, options) {
|
|
25
|
+
return this._client.post('/add-community-voice', { body, ...options });
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Clone a voice from audio files
|
|
29
|
+
*/
|
|
30
|
+
clone(body, options) {
|
|
31
|
+
return this._client.post('/clone-voice', (0, uploads_1.multipartFormRequestOptions)({ body, ...options }, this._client));
|
|
32
|
+
}
|
|
33
33
|
/**
|
|
34
34
|
* Search for community voices from voice providers
|
|
35
35
|
*/
|
package/resources/voice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAI/C,oDAAkE;AAClE,oDAA8C;AAE9C,MAAa,KAAM,SAAQ,sBAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAI/C,oDAAkE;AAClE,oDAA8C;AAE9C,MAAa,KAAM,SAAQ,sBAAW;IACpC;;OAEG;IACH,QAAQ,CAAC,OAAe,EAAE,OAAwB;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,cAAc,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAwB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAA4B,EAAE,OAAwB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsB,EAAE,OAAwB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAA,qCAA2B,EAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAuB,EAAE,OAAwB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF;AAnCD,sBAmCC"}
|
package/resources/voice.mjs
CHANGED
|
@@ -3,18 +3,6 @@ import { APIResource } from "../core/resource.mjs";
|
|
|
3
3
|
import { multipartFormRequestOptions } from "../internal/uploads.mjs";
|
|
4
4
|
import { path } from "../internal/utils/path.mjs";
|
|
5
5
|
export class Voice extends APIResource {
|
|
6
|
-
/**
|
|
7
|
-
* Add a community voice to the voice library
|
|
8
|
-
*/
|
|
9
|
-
addResource(body, options) {
|
|
10
|
-
return this._client.post('/add-community-voice', { body, ...options });
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Clone a voice from audio files
|
|
14
|
-
*/
|
|
15
|
-
clone(body, options) {
|
|
16
|
-
return this._client.post('/clone-voice', multipartFormRequestOptions({ body, ...options }, this._client));
|
|
17
|
-
}
|
|
18
6
|
/**
|
|
19
7
|
* Retrieve details of a specific voice
|
|
20
8
|
*/
|
|
@@ -27,6 +15,18 @@ export class Voice extends APIResource {
|
|
|
27
15
|
list(options) {
|
|
28
16
|
return this._client.get('/list-voices', options);
|
|
29
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Add a community voice to the voice library
|
|
20
|
+
*/
|
|
21
|
+
addResource(body, options) {
|
|
22
|
+
return this._client.post('/add-community-voice', { body, ...options });
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Clone a voice from audio files
|
|
26
|
+
*/
|
|
27
|
+
clone(body, options) {
|
|
28
|
+
return this._client.post('/clone-voice', multipartFormRequestOptions({ body, ...options }, this._client));
|
|
29
|
+
}
|
|
30
30
|
/**
|
|
31
31
|
* Search for community voices from voice providers
|
|
32
32
|
*/
|
package/resources/voice.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.mjs","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAI/C,OAAO,EAAE,2BAA2B,EAAE,gCAA4B;AAClE,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"voice.mjs","sourceRoot":"","sources":["../src/resources/voice.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAI/C,OAAO,EAAE,2BAA2B,EAAE,gCAA4B;AAClE,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC;;OAEG;IACH,QAAQ,CAAC,OAAe,EAAE,OAAwB;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,cAAc,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAwB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAA4B,EAAE,OAAwB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsB,EAAE,OAAwB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAuB,EAAE,OAAwB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF"}
|
package/src/client.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { stringifyQuery } from './internal/utils/query';
|
|
|
15
15
|
import { VERSION } from './version';
|
|
16
16
|
import * as Errors from './core/error';
|
|
17
17
|
import * as Uploads from './core/uploads';
|
|
18
|
+
import * as Webhooks from './lib/webhook_auth';
|
|
18
19
|
import * as API from './resources/index';
|
|
19
20
|
import { APIPromise } from './core/api-promise';
|
|
20
21
|
import {
|
|
@@ -868,6 +869,8 @@ export class Retell {
|
|
|
868
869
|
static UnprocessableEntityError = Errors.UnprocessableEntityError;
|
|
869
870
|
|
|
870
871
|
static toFile = Uploads.toFile;
|
|
872
|
+
static verify = Webhooks.verify;
|
|
873
|
+
static sign = Webhooks.sign;
|
|
871
874
|
|
|
872
875
|
call: API.Call = new API.Call(this);
|
|
873
876
|
chat: API.Chat = new API.Chat(this);
|
|
@@ -913,11 +916,11 @@ export declare namespace Retell {
|
|
|
913
916
|
type PhoneCallResponse as PhoneCallResponse,
|
|
914
917
|
type WebCallResponse as WebCallResponse,
|
|
915
918
|
type CallListResponse as CallListResponse,
|
|
919
|
+
type CallUpdateParams as CallUpdateParams,
|
|
920
|
+
type CallListParams as CallListParams,
|
|
916
921
|
type CallCreatePhoneCallParams as CallCreatePhoneCallParams,
|
|
917
|
-
type CallRegisterPhoneCallParams as CallRegisterPhoneCallParams,
|
|
918
922
|
type CallCreateWebCallParams as CallCreateWebCallParams,
|
|
919
|
-
type
|
|
920
|
-
type CallUpdateParams as CallUpdateParams,
|
|
923
|
+
type CallRegisterPhoneCallParams as CallRegisterPhoneCallParams,
|
|
921
924
|
};
|
|
922
925
|
|
|
923
926
|
export {
|
|
@@ -926,10 +929,10 @@ export declare namespace Retell {
|
|
|
926
929
|
type ChatListResponse as ChatListResponse,
|
|
927
930
|
type ChatCreateChatCompletionResponse as ChatCreateChatCompletionResponse,
|
|
928
931
|
type ChatCreateParams as ChatCreateParams,
|
|
929
|
-
type ChatCreateSMSChatParams as ChatCreateSMSChatParams,
|
|
930
|
-
type ChatCreateChatCompletionParams as ChatCreateChatCompletionParams,
|
|
931
|
-
type ChatListParams as ChatListParams,
|
|
932
932
|
type ChatUpdateParams as ChatUpdateParams,
|
|
933
|
+
type ChatListParams as ChatListParams,
|
|
934
|
+
type ChatCreateChatCompletionParams as ChatCreateChatCompletionParams,
|
|
935
|
+
type ChatCreateSMSChatParams as ChatCreateSMSChatParams,
|
|
933
936
|
};
|
|
934
937
|
|
|
935
938
|
export {
|
|
@@ -937,9 +940,9 @@ export declare namespace Retell {
|
|
|
937
940
|
type PhoneNumberResponse as PhoneNumberResponse,
|
|
938
941
|
type PhoneNumberListResponse as PhoneNumberListResponse,
|
|
939
942
|
type PhoneNumberCreateParams as PhoneNumberCreateParams,
|
|
940
|
-
type PhoneNumberImportParams as PhoneNumberImportParams,
|
|
941
|
-
type PhoneNumberListParams as PhoneNumberListParams,
|
|
942
943
|
type PhoneNumberUpdateParams as PhoneNumberUpdateParams,
|
|
944
|
+
type PhoneNumberListParams as PhoneNumberListParams,
|
|
945
|
+
type PhoneNumberImportParams as PhoneNumberImportParams,
|
|
943
946
|
};
|
|
944
947
|
|
|
945
948
|
export {
|
|
@@ -950,11 +953,11 @@ export declare namespace Retell {
|
|
|
950
953
|
type AgentGetVersionsResponse as AgentGetVersionsResponse,
|
|
951
954
|
type AgentCreateParams as AgentCreateParams,
|
|
952
955
|
type AgentRetrieveParams as AgentRetrieveParams,
|
|
953
|
-
type AgentListParams as AgentListParams,
|
|
954
956
|
type AgentUpdateParams as AgentUpdateParams,
|
|
955
|
-
type
|
|
957
|
+
type AgentListParams as AgentListParams,
|
|
956
958
|
type AgentCreateVersionParams as AgentCreateVersionParams,
|
|
957
959
|
type AgentDeleteVersionParams as AgentDeleteVersionParams,
|
|
960
|
+
type AgentPublishParams as AgentPublishParams,
|
|
958
961
|
};
|
|
959
962
|
|
|
960
963
|
export {
|
|
@@ -965,11 +968,11 @@ export declare namespace Retell {
|
|
|
965
968
|
type ChatAgentGetVersionsResponse as ChatAgentGetVersionsResponse,
|
|
966
969
|
type ChatAgentCreateParams as ChatAgentCreateParams,
|
|
967
970
|
type ChatAgentRetrieveParams as ChatAgentRetrieveParams,
|
|
968
|
-
type ChatAgentListParams as ChatAgentListParams,
|
|
969
971
|
type ChatAgentUpdateParams as ChatAgentUpdateParams,
|
|
970
|
-
type
|
|
972
|
+
type ChatAgentListParams as ChatAgentListParams,
|
|
971
973
|
type ChatAgentCreateVersionParams as ChatAgentCreateVersionParams,
|
|
972
974
|
type ChatAgentDeleteVersionParams as ChatAgentDeleteVersionParams,
|
|
975
|
+
type ChatAgentPublishParams as ChatAgentPublishParams,
|
|
973
976
|
};
|
|
974
977
|
|
|
975
978
|
export {
|
|
@@ -978,8 +981,8 @@ export declare namespace Retell {
|
|
|
978
981
|
type LlmListResponse as LlmListResponse,
|
|
979
982
|
type LlmCreateParams as LlmCreateParams,
|
|
980
983
|
type LlmRetrieveParams as LlmRetrieveParams,
|
|
981
|
-
type LlmListParams as LlmListParams,
|
|
982
984
|
type LlmUpdateParams as LlmUpdateParams,
|
|
985
|
+
type LlmListParams as LlmListParams,
|
|
983
986
|
};
|
|
984
987
|
|
|
985
988
|
export {
|
|
@@ -988,8 +991,8 @@ export declare namespace Retell {
|
|
|
988
991
|
type ConversationFlowListResponse as ConversationFlowListResponse,
|
|
989
992
|
type ConversationFlowCreateParams as ConversationFlowCreateParams,
|
|
990
993
|
type ConversationFlowRetrieveParams as ConversationFlowRetrieveParams,
|
|
991
|
-
type ConversationFlowListParams as ConversationFlowListParams,
|
|
992
994
|
type ConversationFlowUpdateParams as ConversationFlowUpdateParams,
|
|
995
|
+
type ConversationFlowListParams as ConversationFlowListParams,
|
|
993
996
|
};
|
|
994
997
|
|
|
995
998
|
export {
|
|
@@ -997,8 +1000,8 @@ export declare namespace Retell {
|
|
|
997
1000
|
type ConversationFlowComponentResponse as ConversationFlowComponentResponse,
|
|
998
1001
|
type ConversationFlowComponentListResponse as ConversationFlowComponentListResponse,
|
|
999
1002
|
type ConversationFlowComponentCreateParams as ConversationFlowComponentCreateParams,
|
|
1000
|
-
type ConversationFlowComponentListParams as ConversationFlowComponentListParams,
|
|
1001
1003
|
type ConversationFlowComponentUpdateParams as ConversationFlowComponentUpdateParams,
|
|
1004
|
+
type ConversationFlowComponentListParams as ConversationFlowComponentListParams,
|
|
1002
1005
|
};
|
|
1003
1006
|
|
|
1004
1007
|
export {
|
|
@@ -1042,12 +1045,12 @@ export declare namespace Retell {
|
|
|
1042
1045
|
type TestListBatchTestsResponse as TestListBatchTestsResponse,
|
|
1043
1046
|
type TestListTestCaseDefinitionsResponse as TestListTestCaseDefinitionsResponse,
|
|
1044
1047
|
type TestListTestRunsResponse as TestListTestRunsResponse,
|
|
1045
|
-
type TestCreateTestCaseDefinitionParams as TestCreateTestCaseDefinitionParams,
|
|
1046
|
-
type TestListTestCaseDefinitionsParams as TestListTestCaseDefinitionsParams,
|
|
1047
|
-
type TestUpdateTestCaseDefinitionParams as TestUpdateTestCaseDefinitionParams,
|
|
1048
1048
|
type TestCreateBatchTestParams as TestCreateBatchTestParams,
|
|
1049
|
+
type TestCreateTestCaseDefinitionParams as TestCreateTestCaseDefinitionParams,
|
|
1049
1050
|
type TestListBatchTestsParams as TestListBatchTestsParams,
|
|
1051
|
+
type TestListTestCaseDefinitionsParams as TestListTestCaseDefinitionsParams,
|
|
1050
1052
|
type TestListTestRunsParams as TestListTestRunsParams,
|
|
1053
|
+
type TestUpdateTestCaseDefinitionParams as TestUpdateTestCaseDefinitionParams,
|
|
1051
1054
|
};
|
|
1052
1055
|
|
|
1053
1056
|
export {
|
package/src/index.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export { Retell as default } from './client';
|
|
4
4
|
|
|
5
5
|
export { type Uploadable, toFile } from './core/uploads';
|
|
6
|
+
export { verify, sign, type SecureWebhooks, type SecureWebhookVerifyOptions } from './lib/webhook_auth';
|
|
6
7
|
export { APIPromise } from './core/api-promise';
|
|
7
8
|
export { Retell, type ClientOptions } from './client';
|
|
8
9
|
export {
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const FIVE_MINUTES = 5 * 60 * 1000;
|
|
2
|
+
const SHA_256_HEX_LENGTH = 64;
|
|
3
|
+
|
|
4
|
+
export interface SecureWebhookVerifyOptions {
|
|
5
|
+
timeout?: number;
|
|
6
|
+
timestamp?: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface SecureWebhooks {
|
|
10
|
+
sign(input: string, secret: string, timestamp?: number): Promise<string>;
|
|
11
|
+
verify(
|
|
12
|
+
input: string,
|
|
13
|
+
secret: string,
|
|
14
|
+
signature: string,
|
|
15
|
+
opts?: SecureWebhookVerifyOptions,
|
|
16
|
+
): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function getSubtleCrypto() {
|
|
20
|
+
const subtle = globalThis.crypto?.subtle;
|
|
21
|
+
if (!subtle) {
|
|
22
|
+
throw new Error('Webhook verification requires a runtime with the Web Crypto API');
|
|
23
|
+
}
|
|
24
|
+
return subtle;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function encode(input: string): Uint8Array {
|
|
28
|
+
return new TextEncoder().encode(input);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async function importHmacKey(secret: string, usage: 'sign' | 'verify') {
|
|
32
|
+
return getSubtleCrypto().importKey('raw', encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, [
|
|
33
|
+
usage,
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function bytesToHex(bytes: ArrayBuffer): string {
|
|
38
|
+
return Array.from(new Uint8Array(bytes))
|
|
39
|
+
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
40
|
+
.join('');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function hexToBytes(hex: string): Uint8Array | undefined {
|
|
44
|
+
if (hex.length !== SHA_256_HEX_LENGTH || !/^[0-9a-f]+$/i.test(hex)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return Uint8Array.from({ length: SHA_256_HEX_LENGTH / 2 }, (_, index) =>
|
|
49
|
+
Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16),
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async function hmacSha256Hex(secret: string, input: string): Promise<string> {
|
|
54
|
+
const subtle = getSubtleCrypto();
|
|
55
|
+
const key = await importHmacKey(secret, 'sign');
|
|
56
|
+
return bytesToHex(await subtle.sign('HMAC', key, encode(input)));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async function hmacSha256Verify(secret: string, input: string, digest: Uint8Array): Promise<boolean> {
|
|
60
|
+
const subtle = getSubtleCrypto();
|
|
61
|
+
const key = await importHmacKey(secret, 'verify');
|
|
62
|
+
return subtle.verify('HMAC', key, digest, encode(input));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const symmetric: SecureWebhooks = {
|
|
66
|
+
async sign(input: string, secret: string, timestamp: number = Date.now()): Promise<string> {
|
|
67
|
+
const digest = await hmacSha256Hex(secret, input + timestamp);
|
|
68
|
+
return `v=${timestamp},d=${digest}`;
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
async verify(
|
|
72
|
+
input: string,
|
|
73
|
+
secret: string,
|
|
74
|
+
signature: string,
|
|
75
|
+
opts: SecureWebhookVerifyOptions = {},
|
|
76
|
+
): Promise<boolean> {
|
|
77
|
+
const match = /^v=(\d+),d=([0-9a-f]+)$/i.exec(signature);
|
|
78
|
+
if (!match) return false;
|
|
79
|
+
|
|
80
|
+
const poststamp = Number(match[1]);
|
|
81
|
+
const postDigest = hexToBytes(match[2]!);
|
|
82
|
+
const timestamp = opts.timestamp ?? Date.now();
|
|
83
|
+
const timeout = opts.timeout ?? FIVE_MINUTES;
|
|
84
|
+
|
|
85
|
+
if (
|
|
86
|
+
!Number.isSafeInteger(poststamp) ||
|
|
87
|
+
!Number.isFinite(timestamp) ||
|
|
88
|
+
!Number.isFinite(timeout) ||
|
|
89
|
+
timeout < 0 ||
|
|
90
|
+
!postDigest ||
|
|
91
|
+
Math.abs(timestamp - poststamp) > timeout
|
|
92
|
+
) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return hmacSha256Verify(secret, input + poststamp, postDigest);
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Verify a Retell webhook signature against the exact raw request body.
|
|
102
|
+
*/
|
|
103
|
+
export const verify = (body: string, apiKey: string, signature: string): Promise<boolean> => {
|
|
104
|
+
return symmetric.verify(body, apiKey, signature);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Sign a webhook body using the Retell webhook signature format.
|
|
109
|
+
*/
|
|
110
|
+
export const sign = (body: string, apiKey: string): Promise<string> => {
|
|
111
|
+
return symmetric.sign(body, apiKey);
|
|
112
|
+
};
|