@ixblix/sdk-js 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -8
- package/dist/client.d.ts +12 -4
- package/dist/client.js +18 -2
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/types.d.ts +16 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,7 +44,15 @@ const ixblix = new IxblixClient({
|
|
|
44
44
|
// Persist it once (e.g. loadOrCreateOperatorKey("./.keys")) and reuse it.
|
|
45
45
|
const operatorKey = generateOperatorKeyPair();
|
|
46
46
|
|
|
47
|
-
// 3.
|
|
47
|
+
// 3. Register the public key as the company's encryption key. New
|
|
48
|
+
// conversations will snapshot it automatically; rotate it at any time to
|
|
49
|
+
// use a fresh key for future conversations.
|
|
50
|
+
await ixblix.registerEncryptionKey({
|
|
51
|
+
keyId: operatorKey.keyId,
|
|
52
|
+
publicKey: operatorKey.publicKeySpki,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// 4. Create an overflow conversation for a contact.
|
|
48
56
|
const { conversation, deeplink } = await ixblix.createConversation({
|
|
49
57
|
contact: {
|
|
50
58
|
externalId: "whatsapp_5511999999999",
|
|
@@ -52,7 +60,6 @@ const { conversation, deeplink } = await ixblix.createConversation({
|
|
|
52
60
|
phone: "+55 11 99999-9999",
|
|
53
61
|
},
|
|
54
62
|
channel: "whatsapp",
|
|
55
|
-
operatorPublicKey: operatorKey.publicKeySpki,
|
|
56
63
|
// Optionally attach the operator's identity so the customer's client can
|
|
57
64
|
// display who is handling the conversation (avatar, name, gravatar).
|
|
58
65
|
operator: {
|
|
@@ -63,10 +70,10 @@ const { conversation, deeplink } = await ixblix.createConversation({
|
|
|
63
70
|
},
|
|
64
71
|
});
|
|
65
72
|
|
|
66
|
-
//
|
|
73
|
+
// 5. Share `deeplink` with the contact. When they open it, their browser
|
|
67
74
|
// generates a keypair and registers its public key with ixblix.
|
|
68
75
|
|
|
69
|
-
//
|
|
76
|
+
// 6. Wait for the customer to join. Prefer a webhook (`CUSTOMER_JOINED`) so
|
|
70
77
|
// you don't poll. If you must poll, use getConversationKeys:
|
|
71
78
|
let keys = await ixblix.getConversationKeys(conversation.id);
|
|
72
79
|
while (keys.keyStatus !== "ACTIVE" || !keys.customerPublicKey) {
|
|
@@ -74,7 +81,7 @@ while (keys.keyStatus !== "ACTIVE" || !keys.customerPublicKey) {
|
|
|
74
81
|
keys = await ixblix.getConversationKeys(conversation.id);
|
|
75
82
|
}
|
|
76
83
|
|
|
77
|
-
//
|
|
84
|
+
// 7. Encrypt and send a message to the customer.
|
|
78
85
|
const envelope = encryptToRecipient(
|
|
79
86
|
"Hello! How can we help?",
|
|
80
87
|
keys.customerPublicKey,
|
|
@@ -83,7 +90,7 @@ const envelope = encryptToRecipient(
|
|
|
83
90
|
);
|
|
84
91
|
await ixblix.sendCompanyMessage(conversation.id, envelope);
|
|
85
92
|
|
|
86
|
-
//
|
|
93
|
+
// 8. Read incoming messages (decrypt with your private key). Prefer receiving
|
|
87
94
|
// a `MESSAGE_RECEIVED` webhook and fetching the message, rather than
|
|
88
95
|
// polling listMessages.
|
|
89
96
|
const messages = await ixblix.listMessages(conversation.id);
|
|
@@ -107,7 +114,6 @@ Attach the operator when creating the conversation:
|
|
|
107
114
|
const { conversation } = await ixblix.createConversation({
|
|
108
115
|
contact: { externalId: "whatsapp_5511999999999", name: "John Doe" },
|
|
109
116
|
channel: "whatsapp",
|
|
110
|
-
operatorPublicKey: operatorKey.publicKeySpki,
|
|
111
117
|
operator: {
|
|
112
118
|
uuid: "agent-42",
|
|
113
119
|
name: "Maria Silva",
|
|
@@ -195,7 +201,11 @@ conversation events in real time **without polling**. Configure your endpoint
|
|
|
195
201
|
and verify incoming payloads:
|
|
196
202
|
|
|
197
203
|
```ts
|
|
198
|
-
import {
|
|
204
|
+
import {
|
|
205
|
+
IxblixClient,
|
|
206
|
+
verifyWebhook,
|
|
207
|
+
WEBHOOK_SIGNATURE_HEADER,
|
|
208
|
+
} from "@ixblix/sdk-js";
|
|
199
209
|
|
|
200
210
|
// 1. Register your webhook URL. The returned secret is shown only once.
|
|
201
211
|
const ixblix = new IxblixClient({
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivateCompanyResult, CompanyBalance, CompanyCustomization, CompanyCustomizationInput, CompanyProfile, ContactInput, ConversationKeys, CreateConversationResult, CreditPurchase, Media, Message, MessageEnvelope, OperatorInput, OriginalChannelMessageInput, PaymentProvidersResult, Plan, PurchaseCreditsResult, RegisterCompanyInput, RegisterCompanyResult, UpdateOperatorResult } from "./types.js";
|
|
1
|
+
import type { ActivateCompanyResult, CompanyBalance, CompanyCustomization, CompanyCustomizationInput, CompanyEncryptionKey, CompanyProfile, ContactInput, ConversationKeys, CreateConversationResult, CreditPurchase, Media, Message, MessageEnvelope, OperatorInput, OriginalChannelMessageInput, PaymentProvidersResult, Plan, PurchaseCreditsResult, RegisterCompanyEncryptionKeyInput, RegisterCompanyInput, RegisterCompanyResult, UpdateOperatorResult } from "./types.js";
|
|
2
2
|
/** Options for constructing an {@link IxblixClient}. */
|
|
3
3
|
export interface IxblixClientOptions {
|
|
4
4
|
/** Base URL of the ixblix API, e.g. `https://api.ixblix.app`. */
|
|
@@ -87,6 +87,15 @@ export declare class IxblixClient {
|
|
|
87
87
|
webhookUrl: string | null;
|
|
88
88
|
webhookSecret: string | null;
|
|
89
89
|
}>;
|
|
90
|
+
/**
|
|
91
|
+
* Register or rotate the authenticated company's RSA public key used for
|
|
92
|
+
* end-to-end encryption. The previous active key is retired (kept for
|
|
93
|
+
* decrypting existing conversations) and new conversations snapshot the
|
|
94
|
+
* fresh key.
|
|
95
|
+
*/
|
|
96
|
+
registerEncryptionKey(input: RegisterCompanyEncryptionKeyInput): Promise<CompanyEncryptionKey>;
|
|
97
|
+
/** Fetch the currently active company encryption key. */
|
|
98
|
+
getEncryptionKey(): Promise<CompanyEncryptionKey>;
|
|
90
99
|
/**
|
|
91
100
|
* Update the authenticated company's white-label customization (brand name,
|
|
92
101
|
* logos, primary color, favicon, welcome message, website URL). Returns the
|
|
@@ -107,8 +116,8 @@ export declare class IxblixClient {
|
|
|
107
116
|
rectangularLogo?: BrandingFile;
|
|
108
117
|
}): Promise<CompanyCustomization>;
|
|
109
118
|
/**
|
|
110
|
-
* Create an overflow conversation for a contact.
|
|
111
|
-
*
|
|
119
|
+
* Create an overflow conversation for a contact. Uses the company's
|
|
120
|
+
* currently active encryption key so the customer can encrypt messages to it.
|
|
112
121
|
* Optionally attach the operator's identity (uuid, name, image and/or
|
|
113
122
|
* gravatar hash) so the customer's client can display who is handling the
|
|
114
123
|
* conversation.
|
|
@@ -116,7 +125,6 @@ export declare class IxblixClient {
|
|
|
116
125
|
createConversation(input: {
|
|
117
126
|
contact: ContactInput;
|
|
118
127
|
channel: string;
|
|
119
|
-
operatorPublicKey: string;
|
|
120
128
|
operator?: {
|
|
121
129
|
uuid?: string;
|
|
122
130
|
name?: string;
|
package/dist/client.js
CHANGED
|
@@ -120,6 +120,22 @@ export class IxblixClient {
|
|
|
120
120
|
body: JSON.stringify(input),
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Register or rotate the authenticated company's RSA public key used for
|
|
125
|
+
* end-to-end encryption. The previous active key is retired (kept for
|
|
126
|
+
* decrypting existing conversations) and new conversations snapshot the
|
|
127
|
+
* fresh key.
|
|
128
|
+
*/
|
|
129
|
+
registerEncryptionKey(input) {
|
|
130
|
+
return this.request("/api/companies/encryption-key", {
|
|
131
|
+
method: "PUT",
|
|
132
|
+
body: JSON.stringify(input),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/** Fetch the currently active company encryption key. */
|
|
136
|
+
getEncryptionKey() {
|
|
137
|
+
return this.request("/api/companies/encryption-key");
|
|
138
|
+
}
|
|
123
139
|
/**
|
|
124
140
|
* Update the authenticated company's white-label customization (brand name,
|
|
125
141
|
* logos, primary color, favicon, welcome message, website URL). Returns the
|
|
@@ -172,8 +188,8 @@ export class IxblixClient {
|
|
|
172
188
|
// Conversations
|
|
173
189
|
// ---------------------------------------------------------------------------
|
|
174
190
|
/**
|
|
175
|
-
* Create an overflow conversation for a contact.
|
|
176
|
-
*
|
|
191
|
+
* Create an overflow conversation for a contact. Uses the company's
|
|
192
|
+
* currently active encryption key so the customer can encrypt messages to it.
|
|
177
193
|
* Optionally attach the operator's identity (uuid, name, image and/or
|
|
178
194
|
* gravatar hash) so the customer's client can display who is handling the
|
|
179
195
|
* conversation.
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,4 +22,4 @@ export { loadOrCreateOperatorKey } from "./keypair.js";
|
|
|
22
22
|
export { parseWebhook, verifyWebhook } from "./webhooks.js";
|
|
23
23
|
export type { ParsedWebhook } from "./webhooks.js";
|
|
24
24
|
export { WEBHOOK_SIGNATURE_HEADER, WEBHOOK_ID_HEADER, WEBHOOK_EVENT_HEADER, } from "./webhooks.js";
|
|
25
|
-
export type { SenderType, ConversationKeyStatus, ConversationStatus, ConsentStatus, Contact, ContactInput, Conversation, CompanyCustomization, CompanyCustomizationInput, CompanySummary, CompanyProfile, CreateConversationResult, ConversationKeys, RegisterCustomerKeyResult, EraseConversationResult, Operator, OperatorInput, UpdateOperatorResult, MessageEnvelope, Message, Media, Plan, RegisterCompanyInput, PaymentInstructions, RegisterCompanyResult, ActivateCompanyResult, CompanyBalance, CreditPurchase, PurchaseCreditsResult, PaymentProvidersResult, OriginalChannelMessageInput, WebhookEvent, CompanyActivatedEvent, MessageReceivedEvent, MessageReadEvent, CustomerJoinedEvent, ConversationClosedEvent, PresenceEvent, BalanceLowEvent, IxblixErrorBody, } from "./types.js";
|
|
25
|
+
export type { SenderType, ConversationKeyStatus, ConversationStatus, ConsentStatus, Contact, ContactInput, Conversation, CompanyCustomization, CompanyCustomizationInput, CompanyEncryptionKey, RegisterCompanyEncryptionKeyInput, CompanySummary, CompanyProfile, CreateConversationResult, ConversationKeys, RegisterCustomerKeyResult, EraseConversationResult, Operator, OperatorInput, UpdateOperatorResult, MessageEnvelope, Message, Media, Plan, RegisterCompanyInput, PaymentInstructions, RegisterCompanyResult, ActivateCompanyResult, CompanyBalance, CreditPurchase, PurchaseCreditsResult, PaymentProvidersResult, OriginalChannelMessageInput, WebhookEvent, CompanyActivatedEvent, MessageReceivedEvent, MessageReadEvent, CustomerJoinedEvent, ConversationClosedEvent, PresenceEvent, BalanceLowEvent, IxblixErrorBody, } from "./types.js";
|
package/dist/types.d.ts
CHANGED
|
@@ -114,11 +114,27 @@ export interface CreateConversationResult {
|
|
|
114
114
|
export interface UpdateOperatorResult {
|
|
115
115
|
operator: Operator;
|
|
116
116
|
}
|
|
117
|
+
/** A company-level RSA encryption key used for end-to-end encryption. */
|
|
118
|
+
export interface CompanyEncryptionKey {
|
|
119
|
+
id: string;
|
|
120
|
+
keyId: string;
|
|
121
|
+
publicKey: string;
|
|
122
|
+
status: "ACTIVE" | "RETIRED";
|
|
123
|
+
activatedAt: string;
|
|
124
|
+
retiredAt: string | null;
|
|
125
|
+
createdAt: string;
|
|
126
|
+
}
|
|
127
|
+
/** Input to register or rotate a company encryption key. */
|
|
128
|
+
export interface RegisterCompanyEncryptionKeyInput {
|
|
129
|
+
keyId: string;
|
|
130
|
+
publicKey: string;
|
|
131
|
+
}
|
|
117
132
|
/** Current E2EE key state of a conversation (operator view). */
|
|
118
133
|
export interface ConversationKeys {
|
|
119
134
|
conversationId: string;
|
|
120
135
|
keyStatus: ConversationKeyStatus;
|
|
121
136
|
operatorPublicKey: string | null;
|
|
137
|
+
operatorKeyId: string | null;
|
|
122
138
|
customerPublicKey: string | null;
|
|
123
139
|
}
|
|
124
140
|
/** Result of registering the customer's public key. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ixblix/sdk-js",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Official ixblix SDK for desk/CRM integrations. Create overflow conversations, exchange end-to-end encrypted messages and media, and manage company onboarding.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|