@ixblix/sdk-js 0.5.0 → 0.7.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/client.d.ts CHANGED
@@ -5,6 +5,10 @@ export interface IxblixClientOptions {
5
5
  baseUrl: string;
6
6
  /** Company API key sent in the `X-API-Key` header. */
7
7
  apiKey?: string;
8
+ /** Integrator ID for HTTP Basic Auth (used for company registration/activation). */
9
+ integratorId?: string;
10
+ /** Integrator access token for HTTP Basic Auth. */
11
+ integratorAccessToken?: string;
8
12
  /** Optional custom fetch implementation (e.g. for testing or proxies). */
9
13
  fetch?: typeof fetch;
10
14
  }
@@ -41,6 +45,8 @@ export interface MediaDownload {
41
45
  export declare class IxblixClient {
42
46
  private readonly baseUrl;
43
47
  private readonly apiKey?;
48
+ private readonly integratorId?;
49
+ private readonly integratorAccessToken?;
44
50
  private readonly fetchImpl;
45
51
  constructor(options: IxblixClientOptions);
46
52
  private buildHeaders;
@@ -149,7 +155,7 @@ export declare class IxblixClient {
149
155
  * Optionally pass the operator uuid so it is attributed to the message, and
150
156
  * `replyToId` to send it as a reply to another message.
151
157
  */
152
- sendCompanyMessage(conversationId: string, envelope: MessageEnvelope, contentType?: string, operatorUuid?: string, replyToId?: string | null): Promise<Message>;
158
+ sendCompanyMessage(conversationId: string, envelope: MessageEnvelope, contentType?: string, operatorUuid?: string, replyToId?: string | null, attachments?: string | null): Promise<Message>;
153
159
  /**
154
160
  * List all messages of a conversation (content is always ciphertext).
155
161
  * Each message includes its replied-to message (one level deep) and its
@@ -188,10 +194,11 @@ export declare class IxblixClient {
188
194
  /**
189
195
  * Upload an encrypted media file from the company. `file.data` must be the
190
196
  * ciphertext bytes produced by the media encryption helper. Optionally pass
191
- * the operator uuid so the media message is attributed to the operator, and
192
- * `replyToId` to send it as a reply to another message.
197
+ * the operator uuid so the media message is attributed to the operator,
198
+ * `replyToId` to send it as a reply to another message, and `attachments`
199
+ * for rich message attachments (encrypted JSON string).
193
200
  */
194
- sendCompanyMedia(conversationId: string, file: MediaUpload, envelope: MessageEnvelope, operatorUuid?: string, replyToId?: string | null): Promise<Message>;
201
+ sendCompanyMedia(conversationId: string, file: MediaUpload, envelope: MessageEnvelope, operatorUuid?: string, replyToId?: string | null, attachments?: string | null): Promise<Message>;
195
202
  /** Fetch the metadata (envelope + file info) of a media file. */
196
203
  getMedia(mediaId: string): Promise<Media>;
197
204
  /**
package/dist/client.js CHANGED
@@ -19,10 +19,14 @@ import { IxblixError } from "./errors.js";
19
19
  export class IxblixClient {
20
20
  baseUrl;
21
21
  apiKey;
22
+ integratorId;
23
+ integratorAccessToken;
22
24
  fetchImpl;
23
25
  constructor(options) {
24
26
  this.baseUrl = options.baseUrl.replace(/\/+$/, "");
25
27
  this.apiKey = options.apiKey;
28
+ this.integratorId = options.integratorId;
29
+ this.integratorAccessToken = options.integratorAccessToken;
26
30
  this.fetchImpl = options.fetch ?? globalThis.fetch;
27
31
  }
28
32
  buildHeaders(init) {
@@ -37,6 +41,11 @@ export class IxblixClient {
37
41
  if (this.apiKey) {
38
42
  headers["X-API-Key"] = this.apiKey;
39
43
  }
44
+ if (this.integratorId && this.integratorAccessToken) {
45
+ const credentials = `${this.integratorId}:${this.integratorAccessToken}`;
46
+ const base64 = Buffer.from(credentials).toString("base64");
47
+ headers["Authorization"] = `Basic ${base64}`;
48
+ }
40
49
  return headers;
41
50
  }
42
51
  async request(path, init = {}) {
@@ -228,7 +237,7 @@ export class IxblixClient {
228
237
  * Optionally pass the operator uuid so it is attributed to the message, and
229
238
  * `replyToId` to send it as a reply to another message.
230
239
  */
231
- sendCompanyMessage(conversationId, envelope, contentType = "text", operatorUuid, replyToId) {
240
+ sendCompanyMessage(conversationId, envelope, contentType = "text", operatorUuid, replyToId, attachments) {
232
241
  return this.request("/api/messages/company", {
233
242
  method: "POST",
234
243
  body: JSON.stringify({
@@ -242,6 +251,7 @@ export class IxblixClient {
242
251
  keyId: envelope.keyId,
243
252
  operatorUuid,
244
253
  replyToId: replyToId ?? undefined,
254
+ attachments: attachments ?? undefined,
245
255
  }),
246
256
  });
247
257
  }
@@ -308,10 +318,11 @@ export class IxblixClient {
308
318
  /**
309
319
  * Upload an encrypted media file from the company. `file.data` must be the
310
320
  * ciphertext bytes produced by the media encryption helper. Optionally pass
311
- * the operator uuid so the media message is attributed to the operator, and
312
- * `replyToId` to send it as a reply to another message.
321
+ * the operator uuid so the media message is attributed to the operator,
322
+ * `replyToId` to send it as a reply to another message, and `attachments`
323
+ * for rich message attachments (encrypted JSON string).
313
324
  */
314
- async sendCompanyMedia(conversationId, file, envelope, operatorUuid, replyToId) {
325
+ async sendCompanyMedia(conversationId, file, envelope, operatorUuid, replyToId, attachments) {
315
326
  const form = new FormData();
316
327
  form.append("conversationId", conversationId);
317
328
  form.append("file", new Blob([file.data], { type: file.mimeType }), file.fileName);
@@ -326,6 +337,9 @@ export class IxblixClient {
326
337
  if (replyToId) {
327
338
  form.append("replyToId", replyToId);
328
339
  }
340
+ if (attachments) {
341
+ form.append("attachments", attachments);
342
+ }
329
343
  const headers = {};
330
344
  if (this.apiKey) {
331
345
  headers["X-API-Key"] = this.apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/crypto.d.ts CHANGED
@@ -64,6 +64,34 @@ export declare function decryptEnvelope(envelope: {
64
64
  encryptedKey?: string;
65
65
  selfEncryptedKey?: string;
66
66
  }, privateKey: KeyObject): string | null;
67
+ /**
68
+ * Encrypt a rich message (content + optional attachments) to the recipient's
69
+ * RSA public key.
70
+ *
71
+ * Uses a single AES-256-GCM key per message. The content and the attachments
72
+ * JSON are encrypted with different IVs so the nonce is never reused. The
73
+ * attachments blob embeds its own IV and authTag, so no extra schema fields
74
+ * are required.
75
+ */
76
+ export declare function encryptRichMessage(content: string, attachments: string | null, recipientPublicKeySpki: string, senderKeyId: string, senderPublicKeySpki: string): {
77
+ content: string;
78
+ attachments: string | null;
79
+ iv: string;
80
+ authTag: string;
81
+ encryptedKey: string;
82
+ selfEncryptedKey: string;
83
+ keyId: string;
84
+ };
85
+ /**
86
+ * Decrypt the attachments blob of a rich message.
87
+ *
88
+ * The attachments blob is `base64(iv || authTag || ciphertext)`. The AES key
89
+ * is unwrapped from the message envelope using the operator's private key.
90
+ */
91
+ export declare function decryptAttachments(attachmentsBlob: string, envelope: {
92
+ encryptedKey?: string;
93
+ selfEncryptedKey?: string;
94
+ }, privateKey: KeyObject): string | null;
67
95
  /**
68
96
  * Encrypt a binary media file (image/audio/document) to the recipient's RSA
69
97
  * public key. Uses a fresh AES-256-GCM key wrapped to both the recipient and
@@ -79,7 +107,31 @@ export declare function encryptMediaToRecipient(fileBytes: Uint8Array, recipient
79
107
  keyId: string;
80
108
  };
81
109
  /**
82
- * Decrypt a media envelope using the operator's private key. Tries the
110
+ * Encrypt a binary media file AND rich-message attachments with a single
111
+ * AES-256-GCM key.
112
+ *
113
+ * The media content and the attachments JSON are encrypted with different IVs
114
+ * so the nonce is never reused, but they share the same AES key. The key is
115
+ * wrapped (RSA-OAEP/SHA-256) both to the recipient and to the sender so either
116
+ * party can decrypt. The attachments blob embeds its own IV and authTag.
117
+ *
118
+ * This is the correct way to send a media message that also carries rich
119
+ * attachments (linkPreview, location, buttons, …): using two separate
120
+ * `encryptMediaToRecipient` + `encryptRichMessage` calls would produce two
121
+ * independent AES keys, and the recipient would be unable to decrypt the
122
+ * attachments because the message envelope only carries the media key.
123
+ */
124
+ export declare function encryptMediaWithAttachments(fileBytes: Uint8Array, attachments: string, recipientPublicKeySpki: string, senderKeyId: string, senderPublicKeySpki: string): {
125
+ content: string;
126
+ iv: string;
127
+ authTag: string;
128
+ encryptedKey: string;
129
+ selfEncryptedKey: string;
130
+ keyId: string;
131
+ encryptedAttachments: string;
132
+ };
133
+ /**
134
+ * Decrypt a media envelope using the operator's private key. Tries the wrapped key first, then the sender-wrapped key. Returns the
83
135
  * recipient-wrapped key first, then the sender-wrapped key. Returns the
84
136
  * plaintext file bytes, or null when decryption fails.
85
137
  */
package/dist/crypto.js CHANGED
@@ -129,6 +129,98 @@ export function decryptEnvelope(envelope, privateKey) {
129
129
  }
130
130
  return null;
131
131
  }
132
+ /**
133
+ * Encrypt a rich message (content + optional attachments) to the recipient's
134
+ * RSA public key.
135
+ *
136
+ * Uses a single AES-256-GCM key per message. The content and the attachments
137
+ * JSON are encrypted with different IVs so the nonce is never reused. The
138
+ * attachments blob embeds its own IV and authTag, so no extra schema fields
139
+ * are required.
140
+ */
141
+ export function encryptRichMessage(content, attachments, recipientPublicKeySpki, senderKeyId, senderPublicKeySpki) {
142
+ const recipientKey = importPublicKey(recipientPublicKeySpki);
143
+ const senderKey = importPublicKey(senderPublicKeySpki);
144
+ const aesKey = randomBytes(32);
145
+ const contentIv = randomBytes(12);
146
+ const contentCipher = createCipheriv("aes-256-gcm", aesKey, contentIv);
147
+ const contentCiphertext = Buffer.concat([
148
+ contentCipher.update(content, "utf8"),
149
+ contentCipher.final(),
150
+ ]);
151
+ const contentAuthTag = contentCipher.getAuthTag();
152
+ let encryptedAttachments = null;
153
+ if (attachments) {
154
+ const attachmentsIv = randomBytes(12);
155
+ const attachmentsCipher = createCipheriv("aes-256-gcm", aesKey, attachmentsIv);
156
+ const attachmentsCiphertext = Buffer.concat([
157
+ attachmentsCipher.update(attachments, "utf8"),
158
+ attachmentsCipher.final(),
159
+ ]);
160
+ const attachmentsAuthTag = attachmentsCipher.getAuthTag();
161
+ const combined = Buffer.concat([
162
+ attachmentsIv,
163
+ attachmentsAuthTag,
164
+ attachmentsCiphertext,
165
+ ]);
166
+ encryptedAttachments = bytesToBase64(new Uint8Array(combined));
167
+ }
168
+ const encryptedKey = publicEncrypt({
169
+ key: recipientKey,
170
+ padding: constants.RSA_PKCS1_OAEP_PADDING,
171
+ oaepHash: "sha256",
172
+ }, aesKey);
173
+ const selfEncryptedKey = publicEncrypt({
174
+ key: senderKey,
175
+ padding: constants.RSA_PKCS1_OAEP_PADDING,
176
+ oaepHash: "sha256",
177
+ }, aesKey);
178
+ return {
179
+ content: bytesToBase64(new Uint8Array(contentCiphertext)),
180
+ attachments: encryptedAttachments,
181
+ iv: bytesToBase64(new Uint8Array(contentIv)),
182
+ authTag: bytesToBase64(new Uint8Array(contentAuthTag)),
183
+ encryptedKey: bytesToBase64(new Uint8Array(encryptedKey)),
184
+ selfEncryptedKey: bytesToBase64(new Uint8Array(selfEncryptedKey)),
185
+ keyId: senderKeyId,
186
+ };
187
+ }
188
+ /**
189
+ * Decrypt the attachments blob of a rich message.
190
+ *
191
+ * The attachments blob is `base64(iv || authTag || ciphertext)`. The AES key
192
+ * is unwrapped from the message envelope using the operator's private key.
193
+ */
194
+ export function decryptAttachments(attachmentsBlob, envelope, privateKey) {
195
+ const wrappedKeys = [envelope.encryptedKey, envelope.selfEncryptedKey].filter((key) => Boolean(key));
196
+ const bytes = Buffer.from(base64ToBytes(attachmentsBlob));
197
+ if (bytes.length < 28) {
198
+ return null;
199
+ }
200
+ const iv = bytes.subarray(0, 12);
201
+ const authTag = bytes.subarray(12, 28);
202
+ const ciphertext = bytes.subarray(28);
203
+ for (const wrappedKey of wrappedKeys) {
204
+ try {
205
+ const aesKey = privateDecrypt({
206
+ key: privateKey,
207
+ padding: constants.RSA_PKCS1_OAEP_PADDING,
208
+ oaepHash: "sha256",
209
+ }, Buffer.from(base64ToBytes(wrappedKey)));
210
+ const decipher = createDecipheriv("aes-256-gcm", aesKey, iv);
211
+ decipher.setAuthTag(authTag);
212
+ const plaintext = Buffer.concat([
213
+ decipher.update(ciphertext),
214
+ decipher.final(),
215
+ ]);
216
+ return plaintext.toString("utf8");
217
+ }
218
+ catch {
219
+ // Try the next wrapped key.
220
+ }
221
+ }
222
+ return null;
223
+ }
132
224
  /**
133
225
  * Encrypt a binary media file (image/audio/document) to the recipient's RSA
134
226
  * public key. Uses a fresh AES-256-GCM key wrapped to both the recipient and
@@ -163,7 +255,69 @@ export function encryptMediaToRecipient(fileBytes, recipientPublicKeySpki, sende
163
255
  };
164
256
  }
165
257
  /**
166
- * Decrypt a media envelope using the operator's private key. Tries the
258
+ * Encrypt a binary media file AND rich-message attachments with a single
259
+ * AES-256-GCM key.
260
+ *
261
+ * The media content and the attachments JSON are encrypted with different IVs
262
+ * so the nonce is never reused, but they share the same AES key. The key is
263
+ * wrapped (RSA-OAEP/SHA-256) both to the recipient and to the sender so either
264
+ * party can decrypt. The attachments blob embeds its own IV and authTag.
265
+ *
266
+ * This is the correct way to send a media message that also carries rich
267
+ * attachments (linkPreview, location, buttons, …): using two separate
268
+ * `encryptMediaToRecipient` + `encryptRichMessage` calls would produce two
269
+ * independent AES keys, and the recipient would be unable to decrypt the
270
+ * attachments because the message envelope only carries the media key.
271
+ */
272
+ export function encryptMediaWithAttachments(fileBytes, attachments, recipientPublicKeySpki, senderKeyId, senderPublicKeySpki) {
273
+ const recipientKey = importPublicKey(recipientPublicKeySpki);
274
+ const senderKey = importPublicKey(senderPublicKeySpki);
275
+ const aesKey = randomBytes(32);
276
+ // Encrypt the media file
277
+ const mediaIv = randomBytes(12);
278
+ const mediaCipher = createCipheriv("aes-256-gcm", aesKey, mediaIv);
279
+ const mediaCiphertext = Buffer.concat([
280
+ mediaCipher.update(fileBytes),
281
+ mediaCipher.final(),
282
+ ]);
283
+ const mediaAuthTag = mediaCipher.getAuthTag();
284
+ // Encrypt the attachments with a different IV but the same key
285
+ const attachmentsIv = randomBytes(12);
286
+ const attachmentsCipher = createCipheriv("aes-256-gcm", aesKey, attachmentsIv);
287
+ const attachmentsCiphertext = Buffer.concat([
288
+ attachmentsCipher.update(attachments, "utf8"),
289
+ attachmentsCipher.final(),
290
+ ]);
291
+ const attachmentsAuthTag = attachmentsCipher.getAuthTag();
292
+ const combined = Buffer.concat([
293
+ attachmentsIv,
294
+ attachmentsAuthTag,
295
+ attachmentsCiphertext,
296
+ ]);
297
+ const encryptedAttachments = bytesToBase64(new Uint8Array(combined));
298
+ // Wrap the AES key to both recipient and sender
299
+ const encryptedKey = publicEncrypt({
300
+ key: recipientKey,
301
+ padding: constants.RSA_PKCS1_OAEP_PADDING,
302
+ oaepHash: "sha256",
303
+ }, aesKey);
304
+ const selfEncryptedKey = publicEncrypt({
305
+ key: senderKey,
306
+ padding: constants.RSA_PKCS1_OAEP_PADDING,
307
+ oaepHash: "sha256",
308
+ }, aesKey);
309
+ return {
310
+ content: bytesToBase64(new Uint8Array(mediaCiphertext)),
311
+ iv: bytesToBase64(new Uint8Array(mediaIv)),
312
+ authTag: bytesToBase64(new Uint8Array(mediaAuthTag)),
313
+ encryptedKey: bytesToBase64(new Uint8Array(encryptedKey)),
314
+ selfEncryptedKey: bytesToBase64(new Uint8Array(selfEncryptedKey)),
315
+ keyId: senderKeyId,
316
+ encryptedAttachments,
317
+ };
318
+ }
319
+ /**
320
+ * Decrypt a media envelope using the operator's private key. Tries the wrapped key first, then the sender-wrapped key. Returns the
167
321
  * recipient-wrapped key first, then the sender-wrapped key. Returns the
168
322
  * plaintext file bytes, or null when decryption fails.
169
323
  */
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  export { IxblixClient } from "./client.js";
17
17
  export type { IxblixClientOptions, MediaUpload, MediaDownload, BrandingFile, } from "./client.js";
18
18
  export { IxblixError } from "./errors.js";
19
- export { generateOperatorKeyPair, importPublicKey, encryptToRecipient, decryptEnvelope, encryptMediaToRecipient, decryptMediaEnvelope, } from "./crypto.js";
19
+ export { generateOperatorKeyPair, importPublicKey, encryptToRecipient, decryptEnvelope, encryptRichMessage, decryptAttachments, encryptMediaToRecipient, encryptMediaWithAttachments, decryptMediaEnvelope, } from "./crypto.js";
20
20
  export type { OperatorKeyPair, GenerateKeyPairOptions } from "./crypto.js";
21
21
  export { loadOrCreateOperatorKey } from "./keypair.js";
22
22
  export { parseWebhook, verifyWebhook } from "./webhooks.js";
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@
15
15
  */
16
16
  export { IxblixClient } from "./client.js";
17
17
  export { IxblixError } from "./errors.js";
18
- export { generateOperatorKeyPair, importPublicKey, encryptToRecipient, decryptEnvelope, encryptMediaToRecipient, decryptMediaEnvelope, } from "./crypto.js";
18
+ export { generateOperatorKeyPair, importPublicKey, encryptToRecipient, decryptEnvelope, encryptRichMessage, decryptAttachments, encryptMediaToRecipient, encryptMediaWithAttachments, decryptMediaEnvelope, } from "./crypto.js";
19
19
  export { loadOrCreateOperatorKey } from "./keypair.js";
20
20
  export { parseWebhook, verifyWebhook } from "./webhooks.js";
21
21
  export { WEBHOOK_SIGNATURE_HEADER, WEBHOOK_ID_HEADER, WEBHOOK_EVENT_HEADER, } from "./webhooks.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
package/dist/types.d.ts CHANGED
@@ -212,6 +212,11 @@ export interface Message {
212
212
  replyTo?: Message | null;
213
213
  /** Emoji reactions attached to this message. */
214
214
  reactions?: MessageReaction[];
215
+ /**
216
+ * Encrypted JSON string containing rich message attachments (buttons, vcard,
217
+ * location, linkPreview). Only COMPANY-sent messages may include attachments.
218
+ */
219
+ attachments?: string | null;
215
220
  sentAt: string;
216
221
  }
217
222
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ixblix/sdk-js",
3
- "version": "0.5.0",
3
+ "version": "0.7.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",