retell-sdk 3.9.0 → 3.10.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 +10 -0
- package/index.d.mts +2 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/index.mjs +3 -0
- package/index.mjs.map +1 -1
- package/lib/webhook_auth.d.ts +27 -0
- package/lib/webhook_auth.d.ts.map +1 -0
- package/lib/webhook_auth.js +50 -0
- package/lib/webhook_auth.js.map +1 -0
- package/lib/webhook_auth.mjs +45 -0
- package/lib/webhook_auth.mjs.map +1 -0
- package/package.json +1 -1
- package/resources/call.d.ts +12 -10
- package/resources/call.d.ts.map +1 -1
- package/resources/call.js.map +1 -1
- package/resources/call.mjs.map +1 -1
- package/src/index.ts +4 -0
- package/src/lib/webhook_auth.ts +69 -0
- package/src/resources/call.ts +12 -10
- package/src/version.ts +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.10.0 (2024-04-26)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v3.9.0...v3.10.0](https://github.com/RetellAI/retell-typescript-sdk/compare/v3.9.0...v3.10.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** OpenAPI spec update via Stainless API ([#67](https://github.com/RetellAI/retell-typescript-sdk/issues/67)) ([81ff1b7](https://github.com/RetellAI/retell-typescript-sdk/commit/81ff1b7369b1205054d8e5258f534b02e8d1edcf))
|
|
10
|
+
* **api:** OpenAPI spec update via Stainless API ([#69](https://github.com/RetellAI/retell-typescript-sdk/issues/69)) ([ef27155](https://github.com/RetellAI/retell-typescript-sdk/commit/ef27155283164ae7a0353f25b2eae79422c19293))
|
|
11
|
+
* **api:** OpenAPI spec update via Stainless API ([#70](https://github.com/RetellAI/retell-typescript-sdk/issues/70)) ([c3a30ab](https://github.com/RetellAI/retell-typescript-sdk/commit/c3a30ab4a1b268a6bceef66626333ada9c1a1717))
|
|
12
|
+
|
|
3
13
|
## 3.9.0 (2024-04-24)
|
|
4
14
|
|
|
5
15
|
Full Changelog: [v3.8.0...v3.9.0](https://github.com/RetellAI/retell-typescript-sdk/compare/v3.8.0...v3.9.0)
|
package/index.d.mts
CHANGED
|
@@ -96,6 +96,8 @@ export declare class Retell extends Core.APIClient {
|
|
|
96
96
|
static UnprocessableEntityError: typeof Errors.UnprocessableEntityError;
|
|
97
97
|
static toFile: typeof Uploads.toFile;
|
|
98
98
|
static fileFromPath: typeof Uploads.fileFromPath;
|
|
99
|
+
static verify: (body: string, apiKey: string, signature: string) => boolean;
|
|
100
|
+
static sign: (body: string, apiKey: string) => string;
|
|
99
101
|
}
|
|
100
102
|
export declare const RetellError: typeof Errors.RetellError, APIError: typeof Errors.APIError, APIConnectionError: typeof Errors.APIConnectionError, APIConnectionTimeoutError: typeof Errors.APIConnectionTimeoutError, APIUserAbortError: typeof Errors.APIUserAbortError, NotFoundError: typeof Errors.NotFoundError, ConflictError: typeof Errors.ConflictError, RateLimitError: typeof Errors.RateLimitError, BadRequestError: typeof Errors.BadRequestError, AuthenticationError: typeof Errors.AuthenticationError, InternalServerError: typeof Errors.InternalServerError, PermissionDeniedError: typeof Errors.PermissionDeniedError, UnprocessableEntityError: typeof Errors.UnprocessableEntityError;
|
|
101
103
|
export import toFile = Uploads.toFile;
|
package/index.d.ts
CHANGED
|
@@ -96,6 +96,8 @@ export declare class Retell extends Core.APIClient {
|
|
|
96
96
|
static UnprocessableEntityError: typeof Errors.UnprocessableEntityError;
|
|
97
97
|
static toFile: typeof Uploads.toFile;
|
|
98
98
|
static fileFromPath: typeof Uploads.fileFromPath;
|
|
99
|
+
static verify: (body: string, apiKey: string, signature: string) => boolean;
|
|
100
|
+
static sign: (body: string, apiKey: string) => string;
|
|
99
101
|
}
|
|
100
102
|
export declare const RetellError: typeof Errors.RetellError, APIError: typeof Errors.APIError, APIConnectionError: typeof Errors.APIConnectionError, APIConnectionTimeoutError: typeof Errors.APIConnectionTimeoutError, APIUserAbortError: typeof Errors.APIUserAbortError, NotFoundError: typeof Errors.NotFoundError, ConflictError: typeof Errors.ConflictError, RateLimitError: typeof Errors.RateLimitError, BadRequestError: typeof Errors.BadRequestError, AuthenticationError: typeof Errors.AuthenticationError, InternalServerError: typeof Errors.InternalServerError, PermissionDeniedError: typeof Errors.PermissionDeniedError, UnprocessableEntityError: typeof Errors.UnprocessableEntityError;
|
|
101
103
|
export import toFile = Uploads.toFile;
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;AAGlD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAE/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;CAClC;AAED,sDAAsD;AACtD,qBAAa,MAAO,SAAQ,IAAI,CAAC,SAAS;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;;;;;;;;;;OAWG;gBACS,EAAE,OAAyC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa;IAyBzF,IAAI,EAAE,GAAG,CAAC,IAAI,CAAsB;IACpC,WAAW,EAAE,GAAG,CAAC,WAAW,CAA6B;IACzD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAuB;IACvC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAqB;cAEd,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,SAAS;cAI7C,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO;cAO5D,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO;cAIzD,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAIzE,MAAM,CAAC,MAAM,gBAAQ;IAErB,MAAM,CAAC,WAAW,4BAAsB;IACxC,MAAM,CAAC,QAAQ,yBAAmB;IAClC,MAAM,CAAC,kBAAkB,mCAA6B;IACtD,MAAM,CAAC,yBAAyB,0CAAoC;IACpE,MAAM,CAAC,iBAAiB,kCAA4B;IACpD,MAAM,CAAC,aAAa,8BAAwB;IAC5C,MAAM,CAAC,aAAa,8BAAwB;IAC5C,MAAM,CAAC,cAAc,+BAAyB;IAC9C,MAAM,CAAC,eAAe,gCAA0B;IAChD,MAAM,CAAC,mBAAmB,oCAA8B;IACxD,MAAM,CAAC,mBAAmB,oCAA8B;IACxD,MAAM,CAAC,qBAAqB,sCAAgC;IAC5D,MAAM,CAAC,wBAAwB,yCAAmC;IAElE,MAAM,CAAC,MAAM,wBAAkB;IAC/B,MAAM,CAAC,YAAY,8BAAwB;IAE3C,MAAM,CAAC,MAAM,+DAAmB;IAChC,MAAM,CAAC,IAAI,2CAAiB;CAC7B;AAED,eAAO,MACL,WAAW,6BACX,QAAQ,0BACR,kBAAkB,oCAClB,yBAAyB,2CACzB,iBAAiB,mCACjB,aAAa,+BACb,aAAa,+BACb,cAAc,gCACd,eAAe,iCACf,mBAAmB,qCACnB,mBAAmB,qCACnB,qBAAqB,uCACrB,wBAAwB,wCAChB,CAAC;AAEX,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACtC,MAAM,QAAQ,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAElD,yBAAiB,MAAM,CAAC;IACtB,MAAM,QAAQ,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAEnD,MAAM,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC9B,MAAM,QAAQ,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IAC9C,MAAM,QAAQ,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAC9D,MAAM,QAAQ,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACtD,MAAM,QAAQ,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACtD,MAAM,QAAQ,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;IAClD,MAAM,QAAQ,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;IAE1D,MAAM,QAAQ,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IAC5C,MAAM,QAAQ,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC5D,MAAM,QAAQ,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CAAC;IACpE,MAAM,QAAQ,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CAAC;IACpE,MAAM,QAAQ,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CAAC;IAEpE,MAAM,QAAQ,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAChC,MAAM,QAAQ,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;IAChD,MAAM,QAAQ,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxD,MAAM,QAAQ,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxD,MAAM,QAAQ,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAExD,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IAC5B,MAAM,QAAQ,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IAC5C,MAAM,QAAQ,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IACpD,MAAM,QAAQ,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IACpD,MAAM,QAAQ,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;CACrD;AAED,eAAe,MAAM,CAAC"}
|
package/index.js
CHANGED
|
@@ -31,6 +31,7 @@ const Errors = __importStar(require("./error.js"));
|
|
|
31
31
|
const Uploads = __importStar(require("./uploads.js"));
|
|
32
32
|
const qs = __importStar(require("qs"));
|
|
33
33
|
const API = __importStar(require("retell-sdk/resources/index"));
|
|
34
|
+
const Webhooks = __importStar(require("retell-sdk/lib/webhook_auth"));
|
|
34
35
|
/** API Client for interfacing with the Retell API. */
|
|
35
36
|
class Retell extends Core.APIClient {
|
|
36
37
|
/**
|
|
@@ -102,6 +103,8 @@ Retell.PermissionDeniedError = Errors.PermissionDeniedError;
|
|
|
102
103
|
Retell.UnprocessableEntityError = Errors.UnprocessableEntityError;
|
|
103
104
|
Retell.toFile = Uploads.toFile;
|
|
104
105
|
Retell.fileFromPath = Uploads.fileFromPath;
|
|
106
|
+
Retell.verify = Webhooks.verify;
|
|
107
|
+
Retell.sign = Webhooks.sign;
|
|
105
108
|
exports.RetellError = Errors.RetellError, exports.APIError = Errors.APIError, exports.APIConnectionError = Errors.APIConnectionError, exports.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError, exports.APIUserAbortError = Errors.APIUserAbortError, exports.NotFoundError = Errors.NotFoundError, exports.ConflictError = Errors.ConflictError, exports.RateLimitError = Errors.RateLimitError, exports.BadRequestError = Errors.BadRequestError, exports.AuthenticationError = Errors.AuthenticationError, exports.InternalServerError = Errors.InternalServerError, exports.PermissionDeniedError = Errors.PermissionDeniedError, exports.UnprocessableEntityError = Errors.UnprocessableEntityError;
|
|
106
109
|
exports.toFile = Uploads.toFile;
|
|
107
110
|
exports.fileFromPath = Uploads.fileFromPath;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtF,gDAA+B;AAC/B,mDAAkC;AAElC,sDAAqC;AACrC,uCAAyB;AACzB,gEAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"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"}
|
package/index.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import * as Errors from "./error.mjs";
|
|
|
5
5
|
import * as Uploads from "./uploads.mjs";
|
|
6
6
|
import * as qs from 'qs';
|
|
7
7
|
import * as API from 'retell-sdk/resources/index';
|
|
8
|
+
import * as Webhooks from 'retell-sdk/lib/webhook_auth';
|
|
8
9
|
/** API Client for interfacing with the Retell API. */
|
|
9
10
|
export class Retell extends Core.APIClient {
|
|
10
11
|
/**
|
|
@@ -75,6 +76,8 @@ Retell.PermissionDeniedError = Errors.PermissionDeniedError;
|
|
|
75
76
|
Retell.UnprocessableEntityError = Errors.UnprocessableEntityError;
|
|
76
77
|
Retell.toFile = Uploads.toFile;
|
|
77
78
|
Retell.fileFromPath = Uploads.fileFromPath;
|
|
79
|
+
Retell.verify = Webhooks.verify;
|
|
80
|
+
Retell.sign = Webhooks.sign;
|
|
78
81
|
export const { RetellError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } = Errors;
|
|
79
82
|
export var toFile = Uploads.toFile;
|
|
80
83
|
export var fileFromPath = Uploads.fileFromPath;
|
package/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;;OAE/E,KAAK,IAAI;OACT,KAAK,MAAM;OAEX,KAAK,OAAO;OACZ,KAAK,EAAE,MAAM,IAAI;OACjB,KAAK,GAAG,MAAM,4BAA4B;
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare function makeSecureWebhooks(getSigner: (secretOrPrivateKey: string) => (input: string) => string, getVerifier: (secretOrPublicKey: string) => (input: string, digest: string) => boolean): {
|
|
2
|
+
sign(input: string, secretOrPrivateKey: string, timestamp?: number): string;
|
|
3
|
+
verify(input: string, secret: string, signature: string, opts?: {
|
|
4
|
+
timeout?: number;
|
|
5
|
+
timestamp?: number;
|
|
6
|
+
}): boolean;
|
|
7
|
+
};
|
|
8
|
+
export type SecureWebhooks = ReturnType<typeof makeSecureWebhooks>;
|
|
9
|
+
export declare const symmetric: {
|
|
10
|
+
sign(input: string, secretOrPrivateKey: string, timestamp?: number): string;
|
|
11
|
+
verify(input: string, secret: string, signature: string, opts?: {
|
|
12
|
+
timeout?: number;
|
|
13
|
+
timestamp?: number;
|
|
14
|
+
}): boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const asymmetric: {
|
|
17
|
+
sign(input: string, secretOrPrivateKey: string, timestamp?: number): string;
|
|
18
|
+
verify(input: string, secret: string, signature: string, opts?: {
|
|
19
|
+
timeout?: number;
|
|
20
|
+
timestamp?: number;
|
|
21
|
+
}): boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const combined: SecureWebhooks;
|
|
24
|
+
export declare const verify: (body: string, apiKey: string, signature: string) => boolean;
|
|
25
|
+
export declare const sign: (body: string, apiKey: string) => string;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=webhook_auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook_auth.d.ts","sourceRoot":"","sources":["../src/lib/webhook_auth.ts"],"names":[],"mappings":"AAIA,iBAAS,kBAAkB,CACzB,SAAS,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACpE,WAAW,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO;gBAGxE,MAAM,sBAAsB,MAAM,cAAa,MAAM,GAAgB,MAAM;kBAK9E,MAAM,UACL,MAAM,aACH,MAAM,SACX;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO;EAiBb;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,SAAS;gBA9BN,MAAM,sBAAsB,MAAM,cAAa,MAAM,GAAgB,MAAM;kBAK9E,MAAM,UACL,MAAM,aACH,MAAM,SACX;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO;CAwBb,CAAC;AAEF,eAAO,MAAM,UAAU;gBAnCP,MAAM,sBAAsB,MAAM,cAAa,MAAM,GAAgB,MAAM;kBAK9E,MAAM,UACL,MAAM,aACH,MAAM,SACX;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO;CA6Bb,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,cAStB,CAAC;AAIF,eAAO,MAAM,MAAM,SAAU,MAAM,UAAU,MAAM,aAAa,MAAM,KAAG,OAExE,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,UAAU,MAAM,KAAG,MAEnD,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sign = exports.verify = exports.combined = exports.asymmetric = exports.symmetric = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const FIVE_MINUTES = 5 * 60 * 1000;
|
|
6
|
+
function makeSecureWebhooks(getSigner, getVerifier) {
|
|
7
|
+
return {
|
|
8
|
+
sign(input, secretOrPrivateKey, timestamp = Date.now()) {
|
|
9
|
+
const signer = getSigner(secretOrPrivateKey);
|
|
10
|
+
return `v=${timestamp},d=${signer(input + timestamp)}`;
|
|
11
|
+
},
|
|
12
|
+
verify(input, secret, signature, opts = {}) {
|
|
13
|
+
const match = /v=(\d+),d=(.*)/.exec(signature);
|
|
14
|
+
if (!match) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const poststamp = Number(match[1]);
|
|
18
|
+
const postDigest = match[2];
|
|
19
|
+
const timestamp = opts?.timestamp ?? Date.now();
|
|
20
|
+
const timeout = opts?.timeout ?? FIVE_MINUTES;
|
|
21
|
+
const difference = Math.abs(timestamp - poststamp);
|
|
22
|
+
if (difference > timeout) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const verifier = getVerifier(secret);
|
|
26
|
+
return verifier(input + poststamp, postDigest);
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.symmetric = makeSecureWebhooks((secret) => (input) => (0, crypto_1.createHmac)('sha256', secret).update(input).digest('hex'), (secret) => (input, digest) => (0, crypto_1.createHmac)('sha256', secret).update(input).digest('hex') === digest);
|
|
31
|
+
exports.asymmetric = makeSecureWebhooks((priv) => (input) => (0, crypto_1.createSign)('sha256').update(input).sign(priv, 'base64'), (pub) => (input, digest) => (0, crypto_1.createVerify)('sha256').update(input).verify(pub, digest, 'base64'));
|
|
32
|
+
exports.combined = {
|
|
33
|
+
sign: (input, secretOrPrivateKey, timestamp) => secretOrPrivateKey.includes('PRIVATE KEY')
|
|
34
|
+
? exports.asymmetric.sign(input, secretOrPrivateKey, timestamp)
|
|
35
|
+
: exports.symmetric.sign(input, secretOrPrivateKey, timestamp),
|
|
36
|
+
verify: (input, secretOrPublicKey, signature, opts) => secretOrPublicKey.includes('PUBLIC KEY')
|
|
37
|
+
? exports.asymmetric.verify(input, secretOrPublicKey, signature, opts)
|
|
38
|
+
: exports.symmetric.verify(input, secretOrPublicKey, signature, opts),
|
|
39
|
+
};
|
|
40
|
+
// export const sign = symmetric.sign;
|
|
41
|
+
// export const verify = symmetric.verify;
|
|
42
|
+
const verify = (body, apiKey, signature) => {
|
|
43
|
+
return exports.symmetric.verify(body, apiKey, signature);
|
|
44
|
+
};
|
|
45
|
+
exports.verify = verify;
|
|
46
|
+
const sign = (body, apiKey) => {
|
|
47
|
+
return exports.symmetric.sign(body, apiKey);
|
|
48
|
+
};
|
|
49
|
+
exports.sign = sign;
|
|
50
|
+
//# sourceMappingURL=webhook_auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook_auth.js","sourceRoot":"","sources":["../src/lib/webhook_auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createHmac, createSign, createVerify } from 'crypto';
|
|
2
|
+
const FIVE_MINUTES = 5 * 60 * 1000;
|
|
3
|
+
function makeSecureWebhooks(getSigner, getVerifier) {
|
|
4
|
+
return {
|
|
5
|
+
sign(input, secretOrPrivateKey, timestamp = Date.now()) {
|
|
6
|
+
const signer = getSigner(secretOrPrivateKey);
|
|
7
|
+
return `v=${timestamp},d=${signer(input + timestamp)}`;
|
|
8
|
+
},
|
|
9
|
+
verify(input, secret, signature, opts = {}) {
|
|
10
|
+
const match = /v=(\d+),d=(.*)/.exec(signature);
|
|
11
|
+
if (!match) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const poststamp = Number(match[1]);
|
|
15
|
+
const postDigest = match[2];
|
|
16
|
+
const timestamp = opts?.timestamp ?? Date.now();
|
|
17
|
+
const timeout = opts?.timeout ?? FIVE_MINUTES;
|
|
18
|
+
const difference = Math.abs(timestamp - poststamp);
|
|
19
|
+
if (difference > timeout) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const verifier = getVerifier(secret);
|
|
23
|
+
return verifier(input + poststamp, postDigest);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export const symmetric = makeSecureWebhooks((secret) => (input) => createHmac('sha256', secret).update(input).digest('hex'), (secret) => (input, digest) => createHmac('sha256', secret).update(input).digest('hex') === digest);
|
|
28
|
+
export const asymmetric = makeSecureWebhooks((priv) => (input) => createSign('sha256').update(input).sign(priv, 'base64'), (pub) => (input, digest) => createVerify('sha256').update(input).verify(pub, digest, 'base64'));
|
|
29
|
+
export const combined = {
|
|
30
|
+
sign: (input, secretOrPrivateKey, timestamp) => secretOrPrivateKey.includes('PRIVATE KEY')
|
|
31
|
+
? asymmetric.sign(input, secretOrPrivateKey, timestamp)
|
|
32
|
+
: symmetric.sign(input, secretOrPrivateKey, timestamp),
|
|
33
|
+
verify: (input, secretOrPublicKey, signature, opts) => secretOrPublicKey.includes('PUBLIC KEY')
|
|
34
|
+
? asymmetric.verify(input, secretOrPublicKey, signature, opts)
|
|
35
|
+
: symmetric.verify(input, secretOrPublicKey, signature, opts),
|
|
36
|
+
};
|
|
37
|
+
// export const sign = symmetric.sign;
|
|
38
|
+
// export const verify = symmetric.verify;
|
|
39
|
+
export const verify = (body, apiKey, signature) => {
|
|
40
|
+
return symmetric.verify(body, apiKey, signature);
|
|
41
|
+
};
|
|
42
|
+
export const sign = (body, apiKey) => {
|
|
43
|
+
return symmetric.sign(body, apiKey);
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=webhook_auth.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook_auth.mjs","sourceRoot":"","sources":["../src/lib/webhook_auth.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/resources/call.d.ts
CHANGED
|
@@ -22,10 +22,11 @@ export declare class Call extends APIResource {
|
|
|
22
22
|
}
|
|
23
23
|
export interface CallResponse extends RegisterCallResponse {
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* call
|
|
28
|
-
*
|
|
25
|
+
* - BETA feature, schema might change, might not always be populated. Please do
|
|
26
|
+
* not rely on this object schema for post processing. Post conversation
|
|
27
|
+
* evaluation of the call. Including information such as sentiment, intent, call
|
|
28
|
+
* completion status and other metrics. Available after call ends. Subscribe to
|
|
29
|
+
* `call_analyzed` webhook event type to receive it once ready.
|
|
29
30
|
*/
|
|
30
31
|
conversation_eval?: CallResponse.ConversationEval;
|
|
31
32
|
/**
|
|
@@ -90,10 +91,11 @@ export interface CallResponse extends RegisterCallResponse {
|
|
|
90
91
|
}
|
|
91
92
|
export declare namespace CallResponse {
|
|
92
93
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* call
|
|
96
|
-
*
|
|
94
|
+
* - BETA feature, schema might change, might not always be populated. Please do
|
|
95
|
+
* not rely on this object schema for post processing. Post conversation
|
|
96
|
+
* evaluation of the call. Including information such as sentiment, intent, call
|
|
97
|
+
* completion status and other metrics. Available after call ends. Subscribe to
|
|
98
|
+
* `call_analyzed` webhook event type to receive it once ready.
|
|
97
99
|
*/
|
|
98
100
|
interface ConversationEval {
|
|
99
101
|
/**
|
|
@@ -107,7 +109,7 @@ export declare namespace CallResponse {
|
|
|
107
109
|
/**
|
|
108
110
|
* Sentiment of the agent in the conversation.
|
|
109
111
|
*/
|
|
110
|
-
agnet_sentiment?: '
|
|
112
|
+
agnet_sentiment?: 'Negative' | 'Positive' | 'Neutral';
|
|
111
113
|
/**
|
|
112
114
|
* Evaluate whether the conversation ended normally or was cut off.
|
|
113
115
|
*/
|
|
@@ -123,7 +125,7 @@ export declare namespace CallResponse {
|
|
|
123
125
|
/**
|
|
124
126
|
* Sentiment of the user in the conversation.
|
|
125
127
|
*/
|
|
126
|
-
user_sentiment?: '
|
|
128
|
+
user_sentiment?: 'Negative' | 'Positive' | 'Neutral';
|
|
127
129
|
}
|
|
128
130
|
/**
|
|
129
131
|
* End to end latency (from user stops talking to agent start talking) tracking of
|
package/resources/call.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAErD,qBAAa,IAAK,SAAQ,WAAW;IACnC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;IAIpG;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IAItF;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC9F,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAWtE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;CAGzG;AAED,MAAM,WAAW,YAAa,SAAQ,oBAAoB;IACxD
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":"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"}
|
package/resources/call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAGtF,kDAAkD;AAClD,0CAAmD;AAGnD,MAAa,IAAK,SAAQ,sBAAW;IACnC;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc,EAAE,OAA6B;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAOD,IAAI,CACF,QAA8C,EAAE,EAChD,OAA6B;QAE7B,IAAI,IAAA,uBAAgB,EAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB,EAAE,OAA6B;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AApCD,oBAoCC;
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAGtF,kDAAkD;AAClD,0CAAmD;AAGnD,MAAa,IAAK,SAAQ,sBAAW;IACnC;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc,EAAE,OAA6B;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAOD,IAAI,CACF,QAA8C,EAAE,EAChD,OAA6B;QAE7B,IAAI,IAAA,uBAAgB,EAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB,EAAE,OAA6B;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AApCD,oBAoCC;AA8pBD,WAAiB,IAAI;AAOrB,CAAC,EAPgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAOpB"}
|
package/resources/call.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.mjs","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAG/E,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,gBAAgB,EAAE,MAAM,iBAAiB;AAGlD,MAAM,OAAO,IAAK,SAAQ,WAAW;IACnC;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc,EAAE,OAA6B;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAOD,IAAI,CACF,QAA8C,EAAE,EAChD,OAA6B;QAE7B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB,EAAE,OAA6B;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"call.mjs","sourceRoot":"","sources":["../src/resources/call.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAG/E,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,gBAAgB,EAAE,MAAM,iBAAiB;AAGlD,MAAM,OAAO,IAAK,SAAQ,WAAW;IACnC;;OAEG;IACH,MAAM,CAAC,IAAsB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc,EAAE,OAA6B;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAOD,IAAI,CACF,QAA8C,EAAE,EAChD,OAA6B;QAE7B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB,EAAE,OAA6B;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AA8pBD,WAAiB,IAAI;AAOrB,CAAC,EAPgB,IAAI,KAAJ,IAAI,QAOpB"}
|
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { type Agent } from './_shims/index';
|
|
|
6
6
|
import * as Uploads from './uploads';
|
|
7
7
|
import * as qs from 'qs';
|
|
8
8
|
import * as API from "./resources/index";
|
|
9
|
+
import * as Webhooks from "./lib/webhook_auth";
|
|
9
10
|
|
|
10
11
|
export interface ClientOptions {
|
|
11
12
|
apiKey: string;
|
|
@@ -152,6 +153,9 @@ export class Retell extends Core.APIClient {
|
|
|
152
153
|
|
|
153
154
|
static toFile = Uploads.toFile;
|
|
154
155
|
static fileFromPath = Uploads.fileFromPath;
|
|
156
|
+
|
|
157
|
+
static verify = Webhooks.verify;
|
|
158
|
+
static sign = Webhooks.sign;
|
|
155
159
|
}
|
|
156
160
|
|
|
157
161
|
export const {
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createHmac, createSign, createVerify } from 'crypto';
|
|
2
|
+
|
|
3
|
+
const FIVE_MINUTES = 5 * 60 * 1000;
|
|
4
|
+
|
|
5
|
+
function makeSecureWebhooks(
|
|
6
|
+
getSigner: (secretOrPrivateKey: string) => (input: string) => string,
|
|
7
|
+
getVerifier: (secretOrPublicKey: string) => (input: string, digest: string) => boolean,
|
|
8
|
+
) {
|
|
9
|
+
return {
|
|
10
|
+
sign(input: string, secretOrPrivateKey: string, timestamp: number = Date.now()): string {
|
|
11
|
+
const signer = getSigner(secretOrPrivateKey);
|
|
12
|
+
return `v=${timestamp},d=${signer(input + timestamp)}`;
|
|
13
|
+
},
|
|
14
|
+
verify(
|
|
15
|
+
input: string,
|
|
16
|
+
secret: string,
|
|
17
|
+
signature: string,
|
|
18
|
+
opts: { timeout?: number; timestamp?: number } = {},
|
|
19
|
+
): boolean {
|
|
20
|
+
const match = /v=(\d+),d=(.*)/.exec(signature);
|
|
21
|
+
if (!match) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const poststamp = Number(match[1]);
|
|
25
|
+
const postDigest = match[2] as string;
|
|
26
|
+
const timestamp = opts?.timestamp ?? Date.now();
|
|
27
|
+
const timeout = opts?.timeout ?? FIVE_MINUTES;
|
|
28
|
+
const difference = Math.abs(timestamp - poststamp);
|
|
29
|
+
if (difference > timeout) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const verifier = getVerifier(secret);
|
|
33
|
+
return verifier(input + poststamp, postDigest);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export type SecureWebhooks = ReturnType<typeof makeSecureWebhooks>;
|
|
39
|
+
|
|
40
|
+
export const symmetric = makeSecureWebhooks(
|
|
41
|
+
(secret) => (input) => createHmac('sha256', secret).update(input).digest('hex'),
|
|
42
|
+
(secret) => (input, digest) => createHmac('sha256', secret).update(input).digest('hex') === digest,
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
export const asymmetric = makeSecureWebhooks(
|
|
46
|
+
(priv) => (input) => createSign('sha256').update(input).sign(priv, 'base64'),
|
|
47
|
+
(pub) => (input, digest) => createVerify('sha256').update(input).verify(pub, digest, 'base64'),
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
export const combined: SecureWebhooks = {
|
|
51
|
+
sign: (input, secretOrPrivateKey, timestamp) =>
|
|
52
|
+
secretOrPrivateKey.includes('PRIVATE KEY')
|
|
53
|
+
? asymmetric.sign(input, secretOrPrivateKey, timestamp)
|
|
54
|
+
: symmetric.sign(input, secretOrPrivateKey, timestamp),
|
|
55
|
+
verify: (input, secretOrPublicKey, signature, opts) =>
|
|
56
|
+
secretOrPublicKey.includes('PUBLIC KEY')
|
|
57
|
+
? asymmetric.verify(input, secretOrPublicKey, signature, opts)
|
|
58
|
+
: symmetric.verify(input, secretOrPublicKey, signature, opts),
|
|
59
|
+
};
|
|
60
|
+
// export const sign = symmetric.sign;
|
|
61
|
+
// export const verify = symmetric.verify;
|
|
62
|
+
|
|
63
|
+
export const verify = (body: string, apiKey: string, signature: string): boolean => {
|
|
64
|
+
return symmetric.verify(body, apiKey, signature);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const sign = (body: string, apiKey: string): string => {
|
|
68
|
+
return symmetric.sign(body, apiKey);
|
|
69
|
+
};
|
package/src/resources/call.ts
CHANGED
|
@@ -45,10 +45,11 @@ export class Call extends APIResource {
|
|
|
45
45
|
|
|
46
46
|
export interface CallResponse extends RegisterCallResponse {
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* call
|
|
51
|
-
*
|
|
48
|
+
* - BETA feature, schema might change, might not always be populated. Please do
|
|
49
|
+
* not rely on this object schema for post processing. Post conversation
|
|
50
|
+
* evaluation of the call. Including information such as sentiment, intent, call
|
|
51
|
+
* completion status and other metrics. Available after call ends. Subscribe to
|
|
52
|
+
* `call_analyzed` webhook event type to receive it once ready.
|
|
52
53
|
*/
|
|
53
54
|
conversation_eval?: CallResponse.ConversationEval;
|
|
54
55
|
|
|
@@ -143,10 +144,11 @@ export interface CallResponse extends RegisterCallResponse {
|
|
|
143
144
|
|
|
144
145
|
export namespace CallResponse {
|
|
145
146
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* call
|
|
149
|
-
*
|
|
147
|
+
* - BETA feature, schema might change, might not always be populated. Please do
|
|
148
|
+
* not rely on this object schema for post processing. Post conversation
|
|
149
|
+
* evaluation of the call. Including information such as sentiment, intent, call
|
|
150
|
+
* completion status and other metrics. Available after call ends. Subscribe to
|
|
151
|
+
* `call_analyzed` webhook event type to receive it once ready.
|
|
150
152
|
*/
|
|
151
153
|
export interface ConversationEval {
|
|
152
154
|
/**
|
|
@@ -162,7 +164,7 @@ export namespace CallResponse {
|
|
|
162
164
|
/**
|
|
163
165
|
* Sentiment of the agent in the conversation.
|
|
164
166
|
*/
|
|
165
|
-
agnet_sentiment?: '
|
|
167
|
+
agnet_sentiment?: 'Negative' | 'Positive' | 'Neutral';
|
|
166
168
|
|
|
167
169
|
/**
|
|
168
170
|
* Evaluate whether the conversation ended normally or was cut off.
|
|
@@ -182,7 +184,7 @@ export namespace CallResponse {
|
|
|
182
184
|
/**
|
|
183
185
|
* Sentiment of the user in the conversation.
|
|
184
186
|
*/
|
|
185
|
-
user_sentiment?: '
|
|
187
|
+
user_sentiment?: 'Negative' | 'Positive' | 'Neutral';
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
/**
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '3.
|
|
1
|
+
export const VERSION = '3.10.0'; // x-release-please-version
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.10.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
|
package/version.js
CHANGED
package/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}
|
package/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.
|
|
1
|
+
export const VERSION = '3.10.0'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|
package/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}
|