@linqapp/sdk 0.25.0 → 0.27.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.
Files changed (192) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/README.md +2 -2
  3. package/api-promise.d.mts +1 -0
  4. package/api-promise.d.mts.map +1 -1
  5. package/api-promise.d.ts +1 -0
  6. package/api-promise.d.ts.map +1 -1
  7. package/api-promise.mjs +1 -0
  8. package/api-promise.mjs.map +1 -1
  9. package/client.d.mts +176 -87
  10. package/client.d.mts.map +1 -1
  11. package/client.d.ts +176 -87
  12. package/client.d.ts.map +1 -1
  13. package/client.js +167 -85
  14. package/client.js.map +1 -1
  15. package/client.mjs +167 -85
  16. package/client.mjs.map +1 -1
  17. package/core/api-promise.d.mts.map +1 -1
  18. package/core/api-promise.d.ts.map +1 -1
  19. package/core/api-promise.mjs.map +1 -1
  20. package/core/error.mjs.map +1 -1
  21. package/core/pagination.d.mts.map +1 -1
  22. package/core/pagination.d.ts.map +1 -1
  23. package/core/pagination.mjs.map +1 -1
  24. package/core/resource.d.mts.map +1 -1
  25. package/core/resource.d.ts.map +1 -1
  26. package/core/uploads.d.mts.map +1 -1
  27. package/core/uploads.d.ts.map +1 -1
  28. package/core/uploads.mjs.map +1 -1
  29. package/error.d.mts +1 -0
  30. package/error.d.mts.map +1 -1
  31. package/error.d.ts +1 -0
  32. package/error.d.ts.map +1 -1
  33. package/error.mjs +1 -0
  34. package/error.mjs.map +1 -1
  35. package/index.d.mts.map +1 -1
  36. package/index.d.ts.map +1 -1
  37. package/index.mjs.map +1 -1
  38. package/internal/detect-platform.mjs.map +1 -1
  39. package/internal/headers.mjs.map +1 -1
  40. package/internal/parse.d.mts.map +1 -1
  41. package/internal/parse.d.ts.map +1 -1
  42. package/internal/parse.mjs.map +1 -1
  43. package/internal/request-options.d.mts.map +1 -1
  44. package/internal/request-options.d.ts.map +1 -1
  45. package/internal/shims.d.mts +6 -0
  46. package/internal/shims.d.mts.map +1 -1
  47. package/internal/shims.d.ts +6 -0
  48. package/internal/shims.d.ts.map +1 -1
  49. package/internal/to-file.d.mts.map +1 -1
  50. package/internal/to-file.d.ts.map +1 -1
  51. package/internal/to-file.mjs.map +1 -1
  52. package/internal/types.d.mts +4 -4
  53. package/internal/types.d.mts.map +1 -1
  54. package/internal/types.d.ts +4 -4
  55. package/internal/types.d.ts.map +1 -1
  56. package/internal/uploads.d.mts.map +1 -1
  57. package/internal/uploads.d.ts.map +1 -1
  58. package/internal/uploads.mjs.map +1 -1
  59. package/internal/utils/base64.mjs.map +1 -1
  60. package/internal/utils/log.d.mts.map +1 -1
  61. package/internal/utils/log.d.ts.map +1 -1
  62. package/internal/utils/log.mjs.map +1 -1
  63. package/internal/utils/path.mjs.map +1 -1
  64. package/internal/utils/query.mjs.map +1 -1
  65. package/internal/utils/values.mjs.map +1 -1
  66. package/internal/utils.d.mts.map +1 -1
  67. package/internal/utils.d.ts.map +1 -1
  68. package/internal/utils.mjs.map +1 -1
  69. package/package.json +4 -2
  70. package/pagination.d.mts +1 -0
  71. package/pagination.d.mts.map +1 -1
  72. package/pagination.d.ts +1 -0
  73. package/pagination.d.ts.map +1 -1
  74. package/pagination.mjs +1 -0
  75. package/pagination.mjs.map +1 -1
  76. package/resource.d.mts +1 -0
  77. package/resource.d.mts.map +1 -1
  78. package/resource.d.ts +1 -0
  79. package/resource.d.ts.map +1 -1
  80. package/resource.mjs +1 -0
  81. package/resource.mjs.map +1 -1
  82. package/resources/attachments.d.mts.map +1 -1
  83. package/resources/attachments.d.ts.map +1 -1
  84. package/resources/attachments.mjs.map +1 -1
  85. package/resources/capability.d.mts.map +1 -1
  86. package/resources/capability.d.ts.map +1 -1
  87. package/resources/capability.mjs.map +1 -1
  88. package/resources/chats/chats.d.mts +4 -0
  89. package/resources/chats/chats.d.mts.map +1 -1
  90. package/resources/chats/chats.d.ts +4 -0
  91. package/resources/chats/chats.d.ts.map +1 -1
  92. package/resources/chats/chats.js +4 -0
  93. package/resources/chats/chats.js.map +1 -1
  94. package/resources/chats/chats.mjs +4 -0
  95. package/resources/chats/chats.mjs.map +1 -1
  96. package/resources/chats/index.d.mts +1 -0
  97. package/resources/chats/index.d.mts.map +1 -1
  98. package/resources/chats/index.d.ts +1 -0
  99. package/resources/chats/index.d.ts.map +1 -1
  100. package/resources/chats/index.js +3 -1
  101. package/resources/chats/index.js.map +1 -1
  102. package/resources/chats/index.mjs +1 -0
  103. package/resources/chats/index.mjs.map +1 -1
  104. package/resources/chats/location.d.mts +107 -0
  105. package/resources/chats/location.d.mts.map +1 -0
  106. package/resources/chats/location.d.ts +107 -0
  107. package/resources/chats/location.d.ts.map +1 -0
  108. package/resources/chats/location.js +68 -0
  109. package/resources/chats/location.js.map +1 -0
  110. package/resources/chats/location.mjs +64 -0
  111. package/resources/chats/location.mjs.map +1 -0
  112. package/resources/chats/messages.d.mts +3 -2
  113. package/resources/chats/messages.d.mts.map +1 -1
  114. package/resources/chats/messages.d.ts +3 -2
  115. package/resources/chats/messages.d.ts.map +1 -1
  116. package/resources/chats/messages.mjs.map +1 -1
  117. package/resources/chats/participants.d.mts.map +1 -1
  118. package/resources/chats/participants.d.ts.map +1 -1
  119. package/resources/chats/participants.mjs.map +1 -1
  120. package/resources/chats/typing.d.mts.map +1 -1
  121. package/resources/chats/typing.d.ts.map +1 -1
  122. package/resources/chats/typing.mjs.map +1 -1
  123. package/resources/chats.d.mts.map +1 -1
  124. package/resources/chats.d.ts.map +1 -1
  125. package/resources/chats.mjs.map +1 -1
  126. package/resources/contact-card.d.mts.map +1 -1
  127. package/resources/contact-card.d.ts.map +1 -1
  128. package/resources/contact-card.mjs.map +1 -1
  129. package/resources/index.d.mts +1 -1
  130. package/resources/index.d.mts.map +1 -1
  131. package/resources/index.d.ts +1 -1
  132. package/resources/index.d.ts.map +1 -1
  133. package/resources/index.mjs.map +1 -1
  134. package/resources/messages.d.mts +9 -2
  135. package/resources/messages.d.mts.map +1 -1
  136. package/resources/messages.d.ts +9 -2
  137. package/resources/messages.d.ts.map +1 -1
  138. package/resources/messages.mjs.map +1 -1
  139. package/resources/phone-numbers.d.mts.map +1 -1
  140. package/resources/phone-numbers.d.ts.map +1 -1
  141. package/resources/phone-numbers.mjs.map +1 -1
  142. package/resources/phonenumbers.d.mts.map +1 -1
  143. package/resources/phonenumbers.d.ts.map +1 -1
  144. package/resources/phonenumbers.mjs.map +1 -1
  145. package/resources/webhook-events.d.mts +83 -44
  146. package/resources/webhook-events.d.mts.map +1 -1
  147. package/resources/webhook-events.d.ts +83 -44
  148. package/resources/webhook-events.d.ts.map +1 -1
  149. package/resources/webhook-events.js +81 -42
  150. package/resources/webhook-events.js.map +1 -1
  151. package/resources/webhook-events.mjs +81 -42
  152. package/resources/webhook-events.mjs.map +1 -1
  153. package/resources/webhook-subscriptions.d.mts +89 -44
  154. package/resources/webhook-subscriptions.d.mts.map +1 -1
  155. package/resources/webhook-subscriptions.d.ts +89 -44
  156. package/resources/webhook-subscriptions.d.ts.map +1 -1
  157. package/resources/webhook-subscriptions.js +90 -45
  158. package/resources/webhook-subscriptions.js.map +1 -1
  159. package/resources/webhook-subscriptions.mjs +90 -45
  160. package/resources/webhook-subscriptions.mjs.map +1 -1
  161. package/resources/webhooks.d.mts +10 -7
  162. package/resources/webhooks.d.mts.map +1 -1
  163. package/resources/webhooks.d.ts +10 -7
  164. package/resources/webhooks.d.ts.map +1 -1
  165. package/resources/webhooks.js +9 -1
  166. package/resources/webhooks.js.map +1 -1
  167. package/resources/webhooks.mjs +9 -1
  168. package/resources/webhooks.mjs.map +1 -1
  169. package/resources.d.mts.map +1 -1
  170. package/resources.d.ts.map +1 -1
  171. package/resources.mjs.map +1 -1
  172. package/src/client.ts +180 -86
  173. package/src/resources/chats/chats.ts +10 -0
  174. package/src/resources/chats/index.ts +1 -0
  175. package/src/resources/chats/location.ts +138 -0
  176. package/src/resources/chats/messages.ts +3 -2
  177. package/src/resources/index.ts +1 -1
  178. package/src/resources/messages.ts +10 -2
  179. package/src/resources/webhook-events.ts +85 -44
  180. package/src/resources/webhook-subscriptions.ts +89 -44
  181. package/src/resources/webhooks.ts +20 -8
  182. package/src/version.ts +1 -1
  183. package/uploads.d.mts +1 -0
  184. package/uploads.d.mts.map +1 -1
  185. package/uploads.d.ts +1 -0
  186. package/uploads.d.ts.map +1 -1
  187. package/uploads.mjs +1 -0
  188. package/uploads.mjs.map +1 -1
  189. package/version.d.mts +1 -1
  190. package/version.d.ts +1 -1
  191. package/version.js +1 -1
  192. package/version.mjs +1 -1
package/client.js CHANGED
@@ -40,6 +40,7 @@ class LinqAPIV3 {
40
40
  * API Client for interfacing with the Linq API V3 API.
41
41
  *
42
42
  * @param {string | undefined} [opts.apiKey=process.env['LINQ_API_V3_API_KEY'] ?? undefined]
43
+ * @param {string | null | undefined} [opts.webhookSecret=process.env['LINQ_WEBHOOK_SECRET'] ?? null]
43
44
  * @param {string} [opts.baseURL=process.env['LINQ_API_V3_BASE_URL'] ?? https://api.linqapp.com/api/partner] - Override the default base URL for the API.
44
45
  * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
45
46
  * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.
@@ -48,7 +49,7 @@ class LinqAPIV3 {
48
49
  * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.
49
50
  * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.
50
51
  */
51
- constructor({ baseURL = (0, env_1.readEnv)('LINQ_API_V3_BASE_URL'), apiKey = (0, env_1.readEnv)('LINQ_API_V3_API_KEY'), ...opts } = {}) {
52
+ constructor({ baseURL = (0, env_1.readEnv)('LINQ_API_V3_BASE_URL'), apiKey = (0, env_1.readEnv)('LINQ_API_V3_API_KEY'), webhookSecret = (0, env_1.readEnv)('LINQ_WEBHOOK_SECRET') ?? null, ...opts } = {}) {
52
53
  _LinqAPIV3_instances.add(this);
53
54
  _LinqAPIV3_encoder.set(this, void 0);
54
55
  this.chats = new API.Chats(this);
@@ -291,55 +292,82 @@ class LinqAPIV3 {
291
292
  *
292
293
  * ## Webhook Headers
293
294
  *
294
- * Each webhook request includes the following headers:
295
+ * All webhook requests include two sets of headers. **If you have an existing integration
296
+ * using the `X-Webhook-*` headers, nothing changes** — those headers are still sent on
297
+ * every delivery and work exactly as before. The new `webhook-*` headers follow the
298
+ * [Standard Webhooks](https://github.com/standard-webhooks/standard-webhooks) specification.
299
+ * You can safely ignore them if your current verification code works and you don't want to use this convention.
300
+ *
301
+ * ### Standard Webhooks Headers (Recommended)
302
+ *
303
+ * Used by [our SDK](https://github.com/linq-team/linq-node) and any [Standard Webhooks library](https://github.com/standard-webhooks/standard-webhooks).
295
304
  *
296
305
  * | Header | Description |
297
306
  * |--------|-------------|
298
- * | `X-Webhook-Event` | The event type (e.g., `message.sent`, `message.received`) |
299
- * | `X-Webhook-Subscription-ID` | Your webhook subscription ID |
300
- * | `X-Webhook-Timestamp` | Unix timestamp (seconds) when the webhook was sent |
301
- * | `X-Webhook-Signature` | HMAC-SHA256 signature for verification |
307
+ * | `webhook-id` | Unique event identifier (use as idempotency key) |
308
+ * | `webhook-timestamp` | Unix timestamp (seconds) when the webhook was sent |
309
+ * | `webhook-signature` | Standard Webhooks signature (`v1,{base64}` format) |
302
310
  *
303
- * ## Verifying Webhook Signatures
311
+ * ### Legacy Headers (Deprecated)
312
+ *
313
+ * Still sent on every delivery for backwards compatibility. Existing verification code
314
+ * using these headers continues to work — no changes required.
304
315
  *
305
- * All webhooks are signed using HMAC-SHA256. You should always verify the signature
306
- * to ensure the webhook originated from Linq and hasn't been tampered with.
316
+ * | Header | Description |
317
+ * |--------|-------------|
318
+ * | `X-Webhook-Event` | *(deprecated)* Event type (e.g., `message.sent`) |
319
+ * | `X-Webhook-Subscription-ID` | *(deprecated)* Webhook subscription ID |
320
+ * | `X-Webhook-Timestamp` | *(deprecated)* Unix timestamp (seconds) |
321
+ * | `X-Webhook-Signature` | *(deprecated)* HMAC-SHA256 signature (hex-encoded) |
307
322
  *
308
- * **Signature Construction:**
323
+ * ## Signing Secrets
309
324
  *
310
- * The signature is computed over a concatenation of the timestamp and payload:
325
+ * Signing secrets use the Standard Webhooks format: a `whsec_` prefix followed
326
+ * by base64-encoded random bytes (e.g., `whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw7Jxx2Oll+OE=`).
311
327
  *
312
- * ```
313
- * {timestamp}.{payload}
314
- * ```
328
+ * Strip the `whsec_` prefix and base64-decode the remainder to get the raw key bytes.
315
329
  *
316
- * Where:
317
- * - `timestamp` is the value from the `X-Webhook-Timestamp` header
318
- * - `payload` is the raw JSON request body (exact bytes, not re-serialized)
330
+ * ## Verifying Webhook Signatures
331
+ *
332
+ * Webhooks are signed following the [Standard Webhooks specification](https://github.com/standard-webhooks/standard-webhooks).
333
+ * You can use any [Standard Webhooks library](https://github.com/standard-webhooks/standard-webhooks) to verify
334
+ * signatures, or implement verification manually:
335
+ *
336
+ * **Signed content:** `{webhook-id}.{webhook-timestamp}.{body}`
319
337
  *
320
338
  * **Verification Steps:**
321
339
  *
322
- * 1. Extract the `X-Webhook-Timestamp` and `X-Webhook-Signature` headers
323
- * 2. Get the raw request body bytes (do not parse and re-serialize)
324
- * 3. Concatenate: `"{timestamp}.{payload}"`
325
- * 4. Compute HMAC-SHA256 using your signing secret as the key
326
- * 5. Hex-encode the result and compare with `X-Webhook-Signature`
327
- * 6. Use constant-time comparison to prevent timing attacks
340
+ * 1. Extract the `webhook-id`, `webhook-timestamp`, and `webhook-signature` headers
341
+ * 2. Reject if the timestamp is more than 5 minutes old (replay protection)
342
+ * 3. Get the raw request body bytes (do not parse and re-serialize)
343
+ * 4. Construct signed content: `"{webhook-id}.{webhook-timestamp}.{body}"`
344
+ * 5. Strip the `whsec_` prefix from your secret and base64-decode to get key bytes
345
+ * 6. Compute HMAC-SHA256 using the key bytes over the signed content
346
+ * 7. Base64-encode the result and compare with the value after `v1,` in `webhook-signature`
347
+ * 8. Use constant-time comparison to prevent timing attacks
328
348
  *
329
349
  * **Example (Python):**
330
350
  *
331
351
  * ```python
332
- * import hmac
333
- * import hashlib
334
- *
335
- * def verify_webhook(signing_secret, payload, timestamp, signature):
336
- * message = f"{timestamp}.{payload.decode('utf-8')}"
337
- * expected = hmac.new(
338
- * signing_secret.encode('utf-8'),
339
- * message.encode('utf-8'),
340
- * hashlib.sha256
341
- * ).hexdigest()
342
- * return hmac.compare_digest(expected, signature)
352
+ * import base64, hmac, hashlib
353
+ *
354
+ * def verify_webhook(secret, body, headers):
355
+ * msg_id = headers['webhook-id']
356
+ * timestamp = headers['webhook-timestamp']
357
+ * signature = headers['webhook-signature']
358
+ *
359
+ * secret_str = secret.removeprefix('whsec_')
360
+ * key = base64.b64decode(secret_str)
361
+ *
362
+ * signed_content = f"{msg_id}.{timestamp}.{body}"
363
+ * expected = base64.b64encode(
364
+ * hmac.new(key, signed_content.encode(), hashlib.sha256).digest()
365
+ * ).decode()
366
+ *
367
+ * for sig in signature.split(' '):
368
+ * if sig.startswith('v1,') and hmac.compare_digest(expected, sig[3:]):
369
+ * return True
370
+ * return False
343
371
  * ```
344
372
  *
345
373
  * **Example (Node.js):**
@@ -347,16 +375,28 @@ class LinqAPIV3 {
347
375
  * ```javascript
348
376
  * const crypto = require('crypto');
349
377
  *
350
- * function verifyWebhook(signingSecret, payload, timestamp, signature) {
351
- * const message = `${timestamp}.${payload}`;
378
+ * function verifyWebhook(secret, rawBody, headers) {
379
+ * const msgId = headers['webhook-id'];
380
+ * const timestamp = headers['webhook-timestamp'];
381
+ * const signature = headers['webhook-signature'];
382
+ *
383
+ * const secretStr = secret.startsWith('whsec_') ? secret.slice(6) : secret;
384
+ * const keyBytes = Buffer.from(secretStr, 'base64');
385
+ * const signedContent = `${msgId}.${timestamp}.${rawBody}`;
352
386
  * const expected = crypto
353
- * .createHmac('sha256', signingSecret)
354
- * .update(message)
355
- * .digest('hex');
356
- * return crypto.timingSafeEqual(
357
- * Buffer.from(expected),
358
- * Buffer.from(signature)
359
- * );
387
+ * .createHmac('sha256', keyBytes)
388
+ * .update(signedContent)
389
+ * .digest('base64');
390
+ *
391
+ * return signature.split(' ').some(sig => {
392
+ * if (!sig.startsWith('v1,')) return false;
393
+ * try {
394
+ * return crypto.timingSafeEqual(
395
+ * Buffer.from(expected, 'base64'),
396
+ * Buffer.from(sig.slice(3), 'base64')
397
+ * );
398
+ * } catch { return false; }
399
+ * });
360
400
  * }
361
401
  * ```
362
402
  *
@@ -382,55 +422,82 @@ class LinqAPIV3 {
382
422
  *
383
423
  * ## Webhook Headers
384
424
  *
385
- * Each webhook request includes the following headers:
425
+ * All webhook requests include two sets of headers. **If you have an existing integration
426
+ * using the `X-Webhook-*` headers, nothing changes** — those headers are still sent on
427
+ * every delivery and work exactly as before. The new `webhook-*` headers follow the
428
+ * [Standard Webhooks](https://github.com/standard-webhooks/standard-webhooks) specification.
429
+ * You can safely ignore them if your current verification code works and you don't want to use this convention.
430
+ *
431
+ * ### Standard Webhooks Headers (Recommended)
432
+ *
433
+ * Used by [our SDK](https://github.com/linq-team/linq-node) and any [Standard Webhooks library](https://github.com/standard-webhooks/standard-webhooks).
386
434
  *
387
435
  * | Header | Description |
388
436
  * |--------|-------------|
389
- * | `X-Webhook-Event` | The event type (e.g., `message.sent`, `message.received`) |
390
- * | `X-Webhook-Subscription-ID` | Your webhook subscription ID |
391
- * | `X-Webhook-Timestamp` | Unix timestamp (seconds) when the webhook was sent |
392
- * | `X-Webhook-Signature` | HMAC-SHA256 signature for verification |
437
+ * | `webhook-id` | Unique event identifier (use as idempotency key) |
438
+ * | `webhook-timestamp` | Unix timestamp (seconds) when the webhook was sent |
439
+ * | `webhook-signature` | Standard Webhooks signature (`v1,{base64}` format) |
393
440
  *
394
- * ## Verifying Webhook Signatures
441
+ * ### Legacy Headers (Deprecated)
442
+ *
443
+ * Still sent on every delivery for backwards compatibility. Existing verification code
444
+ * using these headers continues to work — no changes required.
395
445
  *
396
- * All webhooks are signed using HMAC-SHA256. You should always verify the signature
397
- * to ensure the webhook originated from Linq and hasn't been tampered with.
446
+ * | Header | Description |
447
+ * |--------|-------------|
448
+ * | `X-Webhook-Event` | *(deprecated)* Event type (e.g., `message.sent`) |
449
+ * | `X-Webhook-Subscription-ID` | *(deprecated)* Webhook subscription ID |
450
+ * | `X-Webhook-Timestamp` | *(deprecated)* Unix timestamp (seconds) |
451
+ * | `X-Webhook-Signature` | *(deprecated)* HMAC-SHA256 signature (hex-encoded) |
398
452
  *
399
- * **Signature Construction:**
453
+ * ## Signing Secrets
400
454
  *
401
- * The signature is computed over a concatenation of the timestamp and payload:
455
+ * Signing secrets use the Standard Webhooks format: a `whsec_` prefix followed
456
+ * by base64-encoded random bytes (e.g., `whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw7Jxx2Oll+OE=`).
402
457
  *
403
- * ```
404
- * {timestamp}.{payload}
405
- * ```
458
+ * Strip the `whsec_` prefix and base64-decode the remainder to get the raw key bytes.
406
459
  *
407
- * Where:
408
- * - `timestamp` is the value from the `X-Webhook-Timestamp` header
409
- * - `payload` is the raw JSON request body (exact bytes, not re-serialized)
460
+ * ## Verifying Webhook Signatures
461
+ *
462
+ * Webhooks are signed following the [Standard Webhooks specification](https://github.com/standard-webhooks/standard-webhooks).
463
+ * You can use any [Standard Webhooks library](https://github.com/standard-webhooks/standard-webhooks) to verify
464
+ * signatures, or implement verification manually:
465
+ *
466
+ * **Signed content:** `{webhook-id}.{webhook-timestamp}.{body}`
410
467
  *
411
468
  * **Verification Steps:**
412
469
  *
413
- * 1. Extract the `X-Webhook-Timestamp` and `X-Webhook-Signature` headers
414
- * 2. Get the raw request body bytes (do not parse and re-serialize)
415
- * 3. Concatenate: `"{timestamp}.{payload}"`
416
- * 4. Compute HMAC-SHA256 using your signing secret as the key
417
- * 5. Hex-encode the result and compare with `X-Webhook-Signature`
418
- * 6. Use constant-time comparison to prevent timing attacks
470
+ * 1. Extract the `webhook-id`, `webhook-timestamp`, and `webhook-signature` headers
471
+ * 2. Reject if the timestamp is more than 5 minutes old (replay protection)
472
+ * 3. Get the raw request body bytes (do not parse and re-serialize)
473
+ * 4. Construct signed content: `"{webhook-id}.{webhook-timestamp}.{body}"`
474
+ * 5. Strip the `whsec_` prefix from your secret and base64-decode to get key bytes
475
+ * 6. Compute HMAC-SHA256 using the key bytes over the signed content
476
+ * 7. Base64-encode the result and compare with the value after `v1,` in `webhook-signature`
477
+ * 8. Use constant-time comparison to prevent timing attacks
419
478
  *
420
479
  * **Example (Python):**
421
480
  *
422
481
  * ```python
423
- * import hmac
424
- * import hashlib
425
- *
426
- * def verify_webhook(signing_secret, payload, timestamp, signature):
427
- * message = f"{timestamp}.{payload.decode('utf-8')}"
428
- * expected = hmac.new(
429
- * signing_secret.encode('utf-8'),
430
- * message.encode('utf-8'),
431
- * hashlib.sha256
432
- * ).hexdigest()
433
- * return hmac.compare_digest(expected, signature)
482
+ * import base64, hmac, hashlib
483
+ *
484
+ * def verify_webhook(secret, body, headers):
485
+ * msg_id = headers['webhook-id']
486
+ * timestamp = headers['webhook-timestamp']
487
+ * signature = headers['webhook-signature']
488
+ *
489
+ * secret_str = secret.removeprefix('whsec_')
490
+ * key = base64.b64decode(secret_str)
491
+ *
492
+ * signed_content = f"{msg_id}.{timestamp}.{body}"
493
+ * expected = base64.b64encode(
494
+ * hmac.new(key, signed_content.encode(), hashlib.sha256).digest()
495
+ * ).decode()
496
+ *
497
+ * for sig in signature.split(' '):
498
+ * if sig.startswith('v1,') and hmac.compare_digest(expected, sig[3:]):
499
+ * return True
500
+ * return False
434
501
  * ```
435
502
  *
436
503
  * **Example (Node.js):**
@@ -438,16 +505,28 @@ class LinqAPIV3 {
438
505
  * ```javascript
439
506
  * const crypto = require('crypto');
440
507
  *
441
- * function verifyWebhook(signingSecret, payload, timestamp, signature) {
442
- * const message = `${timestamp}.${payload}`;
508
+ * function verifyWebhook(secret, rawBody, headers) {
509
+ * const msgId = headers['webhook-id'];
510
+ * const timestamp = headers['webhook-timestamp'];
511
+ * const signature = headers['webhook-signature'];
512
+ *
513
+ * const secretStr = secret.startsWith('whsec_') ? secret.slice(6) : secret;
514
+ * const keyBytes = Buffer.from(secretStr, 'base64');
515
+ * const signedContent = `${msgId}.${timestamp}.${rawBody}`;
443
516
  * const expected = crypto
444
- * .createHmac('sha256', signingSecret)
445
- * .update(message)
446
- * .digest('hex');
447
- * return crypto.timingSafeEqual(
448
- * Buffer.from(expected),
449
- * Buffer.from(signature)
450
- * );
517
+ * .createHmac('sha256', keyBytes)
518
+ * .update(signedContent)
519
+ * .digest('base64');
520
+ *
521
+ * return signature.split(' ').some(sig => {
522
+ * if (!sig.startsWith('v1,')) return false;
523
+ * try {
524
+ * return crypto.timingSafeEqual(
525
+ * Buffer.from(expected, 'base64'),
526
+ * Buffer.from(sig.slice(3), 'base64')
527
+ * );
528
+ * } catch { return false; }
529
+ * });
451
530
  * }
452
531
  * ```
453
532
  *
@@ -482,6 +561,7 @@ class LinqAPIV3 {
482
561
  }
483
562
  const options = {
484
563
  apiKey,
564
+ webhookSecret,
485
565
  ...opts,
486
566
  baseURL: baseURL || `https://api.linqapp.com/api/partner`,
487
567
  };
@@ -512,6 +592,7 @@ class LinqAPIV3 {
512
592
  }
513
593
  this._options = options;
514
594
  this.apiKey = apiKey;
595
+ this.webhookSecret = webhookSecret;
515
596
  }
516
597
  /**
517
598
  * Create a new client instance re-using the same options given to the current client with optional overriding.
@@ -527,6 +608,7 @@ class LinqAPIV3 {
527
608
  fetch: this.fetch,
528
609
  fetchOptions: this.fetchOptions,
529
610
  apiKey: this.apiKey,
611
+ webhookSecret: this.webhookSecret,
530
612
  ...options,
531
613
  });
532
614
  return client;
package/client.js.map CHANGED
@@ -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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"}