@voltade/envoy-sdk 1.5.1 → 1.6.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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/webhooks/index.d.ts +33 -0
- package/dist/resources/webhooks/index.d.ts.map +1 -1
- package/dist/resources/webhooks/index.js +60 -0
- package/dist/resources/webhooks/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
export { EnvoyClient, type EnvoyClientConfig } from "./client.js";
|
|
26
26
|
export type { Agent, Article, Assignee, Contact, ContactInbox, Conversation, ConversationMeta, ConversationStatus, ContentType, CreateMessageParams, CreateOrderParams, CreateOrderResponse, EscalationResponse, EscalationType, GetOrderResponse, ListOrdersParams, ListOrdersResponse, Message, MessageType, MessagesResponse, MessagesResponseMeta, Order, OrdersMeta, OrdersSummary, Priority, UpdateOrderParams, UpdateOrderResponse, UpsertOrderParams, UpsertOrderRequest, UpsertOrderResponse, BulkUpsertOrderItem, BulkUpsertOrdersResponse, SearchParams, SearchResponse, Team, } from "./resources/index.js";
|
|
27
|
-
export { webhookEvent } from "./resources/webhooks/index.js";
|
|
27
|
+
export { webhookEvent, verifySystemSignature, verifyAccountSignature, verifyAndParseWebhook, WebhookSignatureError, } from "./resources/webhooks/index.js";
|
|
28
28
|
export { Conversations, Inboxes, Orders } from "./resources/index.js";
|
|
29
29
|
export { AgentSchema, ArticleSchema, AssigneeSchema, ContactInboxSchema, ContactSchema, ConversationMetaSchema, ConversationSchema, ConversationStatusSchema, ContentTypeSchema, CreateMessageParamsSchema, CreateOrderParamsSchema, CreateOrderResponseSchema, EscalationResponseSchema, EscalationTypeSchema, GetOrderResponseSchema, ListOrdersParamsSchema, ListOrdersResponseSchema, MessageSchema, MessagesResponseMetaSchema, MessagesResponseSchema, MessageTypeSchema, OrdersMetaSchema, OrdersSummarySchema, OrderSchema, PrioritySchema, UpdateOrderParamsSchema, UpdateOrderResponseSchema, UpsertOrderParamsSchema, UpsertOrderRequestSchema, UpsertOrderResponseSchema, BulkUpsertOrderItemSchema, BulkUpsertOrdersResponseSchema, SearchParamsSchema, SearchResponseSchema, TeamSchema, } from "./resources/index.js";
|
|
30
30
|
export { HttpClient } from "./http-client.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlE,YAAY,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,IAAI,GACL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlE,YAAY,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,IAAI,GACL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
// Main client export
|
|
26
26
|
export { EnvoyClient } from "./client.js";
|
|
27
|
-
export { webhookEvent } from "./resources/webhooks/index.js";
|
|
27
|
+
export { webhookEvent, verifySystemSignature, verifyAccountSignature, verifyAndParseWebhook, WebhookSignatureError, } from "./resources/webhooks/index.js";
|
|
28
28
|
export { Conversations, Inboxes, Orders } from "./resources/index.js";
|
|
29
29
|
// Zod schema exports
|
|
30
30
|
export { AgentSchema, ArticleSchema, AssigneeSchema, ContactInboxSchema, ContactSchema, ConversationMetaSchema, ConversationSchema, ConversationStatusSchema, ContentTypeSchema, CreateMessageParamsSchema, CreateOrderParamsSchema, CreateOrderResponseSchema, EscalationResponseSchema, EscalationTypeSchema, GetOrderResponseSchema, ListOrdersParamsSchema, ListOrdersResponseSchema, MessageSchema, MessagesResponseMetaSchema, MessagesResponseSchema, MessageTypeSchema, OrdersMetaSchema, OrdersSummarySchema, OrderSchema, PrioritySchema, UpdateOrderParamsSchema, UpdateOrderResponseSchema, UpsertOrderParamsSchema, UpsertOrderRequestSchema, UpsertOrderResponseSchema, BulkUpsertOrderItemSchema, BulkUpsertOrdersResponseSchema, SearchParamsSchema, SearchResponseSchema, TeamSchema, } from "./resources/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAA0B,MAAM,aAAa,CAAC;AAwClE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAA0B,MAAM,aAAa,CAAC;AAwClE,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEtE,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC"}
|
|
@@ -6,4 +6,37 @@ export declare const webhookEvent: {
|
|
|
6
6
|
/** Returns null if invalid */
|
|
7
7
|
safeParse: (body: unknown) => WebhookEvent | null;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Verify the system-level `X-Envoy-Signature` header.
|
|
11
|
+
* Confirms the webhook originated from your Envoy CRM instance.
|
|
12
|
+
*
|
|
13
|
+
* @param rawBody - The raw HTTP request body (do **not** parse & re-serialize)
|
|
14
|
+
* @param signatureHeader - Value of the `X-Envoy-Signature` header (`sha256=<hex>`)
|
|
15
|
+
* @param signingSecret - The shared `WEBHOOK_SIGNING_SECRET`
|
|
16
|
+
*/
|
|
17
|
+
export declare function verifySystemSignature(rawBody: string, signatureHeader: string, signingSecret: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Verify the account-level `X-Envoy-Account-Signature` header.
|
|
20
|
+
* Confirms the webhook belongs to a specific account.
|
|
21
|
+
*
|
|
22
|
+
* @param rawBody - The raw HTTP request body (do **not** parse & re-serialize)
|
|
23
|
+
* @param signatureHeader - Value of the `X-Envoy-Account-Signature` header (`sha256=<hex>`)
|
|
24
|
+
* @param signingSecret - The shared `WEBHOOK_SIGNING_SECRET`
|
|
25
|
+
* @param accountId - The expected Envoy CRM account ID
|
|
26
|
+
*/
|
|
27
|
+
export declare function verifyAccountSignature(rawBody: string, signatureHeader: string, signingSecret: string, accountId: number | string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Verify both system and account signatures, then parse the webhook body.
|
|
30
|
+
*
|
|
31
|
+
* @returns The parsed `WebhookEvent` if all signatures are valid
|
|
32
|
+
* @throws `WebhookSignatureError` if either signature is invalid or missing
|
|
33
|
+
* @throws `ZodError` if the body fails schema validation
|
|
34
|
+
*/
|
|
35
|
+
export declare function verifyAndParseWebhook(rawBody: string, headers: {
|
|
36
|
+
"x-envoy-signature"?: string | null;
|
|
37
|
+
"x-envoy-account-signature"?: string | null;
|
|
38
|
+
}, signingSecret: string, accountId: number | string): WebhookEvent;
|
|
39
|
+
export declare class WebhookSignatureError extends Error {
|
|
40
|
+
constructor(message: string);
|
|
41
|
+
}
|
|
9
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../resources/webhooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../resources/webhooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,YAAY;IACvB,iCAAiC;kBACnB,OAAO,KAAG,YAAY;IAGpC,8BAA8B;sBACZ,OAAO,KAAG,YAAY,GAAG,IAAI;CAIhD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAAG,MAAM,GACzB,OAAO,CAMT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,2BAA2B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C,EACD,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAAG,MAAM,GACzB,YAAY,CAed;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
1
2
|
import { WebhookEventSchema } from "./types.js";
|
|
2
3
|
export * from "./types.js";
|
|
3
4
|
export const webhookEvent = {
|
|
@@ -11,4 +12,63 @@ export const webhookEvent = {
|
|
|
11
12
|
return result.success ? result.data : null;
|
|
12
13
|
},
|
|
13
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Verify the system-level `X-Envoy-Signature` header.
|
|
17
|
+
* Confirms the webhook originated from your Envoy CRM instance.
|
|
18
|
+
*
|
|
19
|
+
* @param rawBody - The raw HTTP request body (do **not** parse & re-serialize)
|
|
20
|
+
* @param signatureHeader - Value of the `X-Envoy-Signature` header (`sha256=<hex>`)
|
|
21
|
+
* @param signingSecret - The shared `WEBHOOK_SIGNING_SECRET`
|
|
22
|
+
*/
|
|
23
|
+
export function verifySystemSignature(rawBody, signatureHeader, signingSecret) {
|
|
24
|
+
const expected = createHmac("sha256", signingSecret)
|
|
25
|
+
.update(rawBody)
|
|
26
|
+
.digest("hex");
|
|
27
|
+
const actual = signatureHeader.replace("sha256=", "");
|
|
28
|
+
if (expected.length !== actual.length)
|
|
29
|
+
return false;
|
|
30
|
+
return timingSafeEqual(Buffer.from(expected), Buffer.from(actual));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Verify the account-level `X-Envoy-Account-Signature` header.
|
|
34
|
+
* Confirms the webhook belongs to a specific account.
|
|
35
|
+
*
|
|
36
|
+
* @param rawBody - The raw HTTP request body (do **not** parse & re-serialize)
|
|
37
|
+
* @param signatureHeader - Value of the `X-Envoy-Account-Signature` header (`sha256=<hex>`)
|
|
38
|
+
* @param signingSecret - The shared `WEBHOOK_SIGNING_SECRET`
|
|
39
|
+
* @param accountId - The expected Envoy CRM account ID
|
|
40
|
+
*/
|
|
41
|
+
export function verifyAccountSignature(rawBody, signatureHeader, signingSecret, accountId) {
|
|
42
|
+
const key = `${signingSecret}:${accountId}`;
|
|
43
|
+
const expected = createHmac("sha256", key).update(rawBody).digest("hex");
|
|
44
|
+
const actual = signatureHeader.replace("sha256=", "");
|
|
45
|
+
if (expected.length !== actual.length)
|
|
46
|
+
return false;
|
|
47
|
+
return timingSafeEqual(Buffer.from(expected), Buffer.from(actual));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Verify both system and account signatures, then parse the webhook body.
|
|
51
|
+
*
|
|
52
|
+
* @returns The parsed `WebhookEvent` if all signatures are valid
|
|
53
|
+
* @throws `WebhookSignatureError` if either signature is invalid or missing
|
|
54
|
+
* @throws `ZodError` if the body fails schema validation
|
|
55
|
+
*/
|
|
56
|
+
export function verifyAndParseWebhook(rawBody, headers, signingSecret, accountId) {
|
|
57
|
+
const systemSig = headers["x-envoy-signature"];
|
|
58
|
+
if (!systemSig || !verifySystemSignature(rawBody, systemSig, signingSecret)) {
|
|
59
|
+
throw new WebhookSignatureError("Invalid system signature");
|
|
60
|
+
}
|
|
61
|
+
const accountSig = headers["x-envoy-account-signature"];
|
|
62
|
+
if (!accountSig ||
|
|
63
|
+
!verifyAccountSignature(rawBody, accountSig, signingSecret, accountId)) {
|
|
64
|
+
throw new WebhookSignatureError("Invalid account signature");
|
|
65
|
+
}
|
|
66
|
+
return webhookEvent.parse(JSON.parse(rawBody));
|
|
67
|
+
}
|
|
68
|
+
export class WebhookSignatureError extends Error {
|
|
69
|
+
constructor(message) {
|
|
70
|
+
super(message);
|
|
71
|
+
this.name = "WebhookSignatureError";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
14
74
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../resources/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAEnE,cAAc,YAAY,CAAC;AAE3B,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iCAAiC;IACjC,KAAK,EAAE,CAAC,IAAa,EAAgB,EAAE;QACrC,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,8BAA8B;IAC9B,SAAS,EAAE,CAAC,IAAa,EAAuB,EAAE;QAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../resources/webhooks/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED