@messagebird/sdk 0.6.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/index.d.mts CHANGED
@@ -503,8 +503,30 @@ type EventSmsAccepted = {
503
503
  timestamp: string;
504
504
  data: EventSmsAcceptedData;
505
505
  };
506
+ type SuppressionId = string;
506
507
  /**
507
- * An email address was added to the workspace's suppression list (manually, via complaint, or via hard bounce). Payload schema not yet finalized.
508
+ * Payload of the email_suppression.created event.
509
+ */
510
+ type EventEmailSuppressionCreatedData = {
511
+ /**
512
+ * The suppression entry that was created.
513
+ */
514
+ suppression_id: SuppressionId;
515
+ /**
516
+ * The recipient address that was added to the suppression list.
517
+ */
518
+ email: string;
519
+ /**
520
+ * Why the address was suppressed.
521
+ */
522
+ reason: "hard_bounce" | "complaint" | "unsubscribe" | "manual";
523
+ /**
524
+ * The workspace the suppression belongs to.
525
+ */
526
+ workspace_id: WorkspaceId;
527
+ };
528
+ /**
529
+ * An email address was added to the workspace's suppression list (manually, via complaint, or via hard bounce).
508
530
  */
509
531
  type EventEmailSuppressionCreated = {
510
532
  /**
@@ -515,12 +537,7 @@ type EventEmailSuppressionCreated = {
515
537
  * When the event occurred.
516
538
  */
517
539
  timestamp: string;
518
- /**
519
- * Event payload. The fields for this event are not yet finalized.
520
- */
521
- data: {
522
- [key: string]: never;
523
- };
540
+ data: EventEmailSuppressionCreatedData;
524
541
  };
525
542
  /**
526
543
  * Payload of the email_mailbox.thread_created event.
@@ -1237,7 +1254,25 @@ type EventEmailAccepted = {
1237
1254
  data: EventEmailAcceptedData;
1238
1255
  };
1239
1256
  /**
1240
- * A sending domain completed DNS verification successfully. Payload schema not yet finalized.
1257
+ * Payload of the domain.verified event.
1258
+ */
1259
+ type EventDomainVerifiedData = {
1260
+ /**
1261
+ * The sending domain resource that verified.
1262
+ */
1263
+ domain_id: DomainId;
1264
+ /**
1265
+ * The sending domain hostname.
1266
+ */
1267
+ domain: string;
1268
+ /**
1269
+ * The workspace the domain is assigned to.
1270
+ */
1271
+ workspace_id: WorkspaceId;
1272
+ };
1273
+ type DomainId = string;
1274
+ /**
1275
+ * A sending domain completed DNS verification successfully.
1241
1276
  */
1242
1277
  type EventDomainVerified = {
1243
1278
  /**
@@ -1248,15 +1283,31 @@ type EventDomainVerified = {
1248
1283
  * When the event occurred.
1249
1284
  */
1250
1285
  timestamp: string;
1286
+ data: EventDomainVerifiedData;
1287
+ };
1288
+ /**
1289
+ * Payload of the domain.failed event.
1290
+ */
1291
+ type EventDomainFailedData = {
1251
1292
  /**
1252
- * Event payload. The fields for this event are not yet finalized.
1293
+ * The sending domain resource whose verification failed.
1253
1294
  */
1254
- data: {
1255
- [key: string]: never;
1256
- };
1295
+ domain_id: DomainId;
1296
+ /**
1297
+ * The sending domain hostname.
1298
+ */
1299
+ domain: string;
1300
+ /**
1301
+ * The workspace the domain is assigned to.
1302
+ */
1303
+ workspace_id: WorkspaceId;
1304
+ /**
1305
+ * Why verification failed, when a specific reason is available (for example, the DKIM record was not found at the expected selector).
1306
+ */
1307
+ failure_reason?: string | null;
1257
1308
  };
1258
1309
  /**
1259
- * A sending domain failed DNS verification. Payload schema not yet finalized.
1310
+ * A sending domain failed DNS verification.
1260
1311
  */
1261
1312
  type EventDomainFailed = {
1262
1313
  /**
@@ -1267,12 +1318,7 @@ type EventDomainFailed = {
1267
1318
  * When the event occurred.
1268
1319
  */
1269
1320
  timestamp: string;
1270
- /**
1271
- * Event payload. The fields for this event are not yet finalized.
1272
- */
1273
- data: {
1274
- [key: string]: never;
1275
- };
1321
+ data: EventDomainFailedData;
1276
1322
  };
1277
1323
  /**
1278
1324
  * Discriminated union of every webhook event the Bird platform emits.
@@ -1511,6 +1557,18 @@ type SendWhatsAppMessageRequest = {
1511
1557
  *
1512
1558
  */
1513
1559
  template?: SendWhatsAppMessageTemplate;
1560
+ /**
1561
+ * Structured `{name, value}` labels for filtering. Tags become first-class query dimensions: filter the list endpoint by tag name. Maximum 20 tags per send. Use tags for low-cardinality dimensions (`category`, `experiment_variant`). For arbitrary structured context you do not need as a filter dimension, use `metadata` instead.
1562
+ *
1563
+ */
1564
+ tags?: Array<Tag>;
1565
+ /**
1566
+ * Arbitrary JSON object stored on the message and returned on API reads. Maximum 2 KB serialized. Use metadata for per-send context like internal IDs and foreign keys. For low-cardinality filterable labels, use `tags` instead.
1567
+ *
1568
+ */
1569
+ metadata?: {
1570
+ [key: string]: unknown;
1571
+ };
1514
1572
  };
1515
1573
  type WhatsAppMessageTemplateComponentParameter = {
1516
1574
  /**
@@ -1639,6 +1697,116 @@ type WhatsAppMessage = {
1639
1697
  * When the message was read by the recipient. Null until then.
1640
1698
  */
1641
1699
  readonly read_at?: string | null;
1700
+ /**
1701
+ * Structured `{name, value}` filter labels applied to this message.
1702
+ */
1703
+ tags?: Array<Tag>;
1704
+ /**
1705
+ * Arbitrary JSON metadata stored on the message.
1706
+ */
1707
+ metadata?: {
1708
+ [key: string]: unknown;
1709
+ };
1710
+ };
1711
+ type VerificationCheckResult = {
1712
+ /**
1713
+ * Whether the submitted passcode verified this verification. true means the passcode was correct and the verification is now complete; false means it was not verified — see reason. A verification that has already reached a final state is no longer checkable and returns 404.
1714
+ */
1715
+ readonly success: boolean;
1716
+ /**
1717
+ * Why the check did not succeed, or null when success is true. incorrect_code means the passcode was wrong and attempts remain; expired means the time window elapsed; attempts_exhausted means too many incorrect attempts. Open enum — treat any unrecognized value as a future reason.
1718
+ */
1719
+ readonly reason?: string | null;
1720
+ verification: Verification;
1721
+ /**
1722
+ * The number of check attempts left, or null once the verification is complete.
1723
+ */
1724
+ readonly attempts_remaining?: number | null;
1725
+ };
1726
+ /**
1727
+ * The channel a passcode is delivered over. Open enum — new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
1728
+ */
1729
+ type VerificationChannel = string;
1730
+ type VerificationChannelEntry = {
1731
+ channel: VerificationChannel;
1732
+ };
1733
+ /**
1734
+ * The recipient to verify. Provide an email_address, a phone_number, or both; at least one is required.
1735
+ */
1736
+ type VerificationTo = {
1737
+ /**
1738
+ * The recipient's email address.
1739
+ */
1740
+ email_address?: string;
1741
+ /**
1742
+ * The recipient's phone number in E.164 format.
1743
+ */
1744
+ phone_number?: string;
1745
+ };
1746
+ type VerificationId = string;
1747
+ type Verification = {
1748
+ readonly id: VerificationId;
1749
+ /**
1750
+ * The verification's current state: pending (awaiting a valid passcode), verified, failed (too many incorrect attempts), or expired (the time window elapsed before a correct passcode).
1751
+ */
1752
+ readonly status: "pending" | "verified" | "failed" | "expired" | "canceled" | "blocked";
1753
+ /**
1754
+ * Why the verification reached its final state, or null while pending or once verified. Open enum — treat any unrecognized value as a future reason.
1755
+ */
1756
+ readonly reason?: string | null;
1757
+ readonly to: VerificationTo;
1758
+ /**
1759
+ * The ordered channels this verification uses to deliver the passcode. An email recipient is verified over email; a phone recipient is verified over SMS.
1760
+ */
1761
+ readonly channels: Array<VerificationChannelEntry>;
1762
+ /**
1763
+ * The channel the most recent passcode was sent on, or null before the first send. Open enum — new channels may be added over time, so treat any unrecognized value as a future channel rather than an error.
1764
+ */
1765
+ readonly last_channel?: string | null;
1766
+ /**
1767
+ * The key/value pairs attached when the verification was created.
1768
+ */
1769
+ readonly metadata?: {
1770
+ [key: string]: unknown;
1771
+ };
1772
+ /**
1773
+ * When the verification expires if no correct passcode is submitted.
1774
+ */
1775
+ readonly expires_at: string;
1776
+ /**
1777
+ * When the verification was completed, or null if it is not yet verified.
1778
+ */
1779
+ readonly verified_at?: string | null;
1780
+ } & Timestamps;
1781
+ type VerificationCheckRequest = {
1782
+ to: VerificationTo;
1783
+ /**
1784
+ * The passcode the recipient received.
1785
+ */
1786
+ code: string;
1787
+ };
1788
+ type VerificationCreateRequest = {
1789
+ to: VerificationTo;
1790
+ options?: VerificationOptions;
1791
+ /**
1792
+ * Optional key/value pairs to attach to the verification, for example a correlation id. Returned on the verification.
1793
+ */
1794
+ metadata?: {
1795
+ [key: string]: unknown;
1796
+ };
1797
+ };
1798
+ /**
1799
+ * Per-request overrides applied to this verification only.
1800
+ */
1801
+ type VerificationOptions = {
1802
+ /**
1803
+ * Passcode length for this verification, overriding the configured length.
1804
+ */
1805
+ code_length?: number;
1806
+ /**
1807
+ * Reorder or narrow the delivery channels for this request. List channel names in the order to try them; a channel you omit is not used for this request, and a channel not already enabled for the recipient is ignored. Omit the field to use the configured order.
1808
+ */
1809
+ channels?: Array<VerificationChannel>;
1642
1810
  };
1643
1811
  type SmsTemplateList = {
1644
1812
  /**
@@ -2306,7 +2474,7 @@ type EmailTemplateSend = unknown & {
2306
2474
  */
2307
2475
  id?: EmailTemplateId;
2308
2476
  /**
2309
- * The template to send, by its name handle (for example `welcome-email`).
2477
+ * The template to send, by its name handle — a workspace template (for example `welcome-email`) or a built-in `system` template (for example `bird_welcome`).
2310
2478
  */
2311
2479
  name?: TemplateName;
2312
2480
  /**
@@ -2629,7 +2797,7 @@ type ListEmailMessagesData = {
2629
2797
  */
2630
2798
  status?: "scheduled" | "accepted" | "processed" | "deferred" | "delivered" | "partial_failure" | "bounced" | "complained" | "rejected" | "canceled";
2631
2799
  /**
2632
- * Filter by tag. Accepts `name` to match any send carrying that tag name, or `name:value` to match a specific tag pair (e.g. `category:welcome`). Repeat the parameter to AND-combine several tag filters.
2800
+ * Filter by tag. Accepts `name` to match any message carrying that tag name, or `name:value` to match a specific tag pair (e.g. `category:welcome`). Repeat the parameter to AND-combine several tag filters.
2633
2801
  *
2634
2802
  */
2635
2803
  tag?: Array<string>;
@@ -2798,7 +2966,7 @@ type ListSmsMessagesData = {
2798
2966
  */
2799
2967
  from?: string;
2800
2968
  /**
2801
- * Filter by tag. Accepts `name` to match any message carrying that tag name, or `name:value` to match a specific tag pair. Repeat the parameter to AND-combine several tag filters.
2969
+ * Filter by tag. Accepts `name` to match any message carrying that tag name, or `name:value` to match a specific tag pair (e.g. `category:welcome`). Repeat the parameter to AND-combine several tag filters.
2802
2970
  *
2803
2971
  */
2804
2972
  tag?: Array<string>;
@@ -2860,6 +3028,11 @@ type ListWhatsAppMessagesData = {
2860
3028
  * Filter by business-scoped user ID (Meta identifier).
2861
3029
  */
2862
3030
  bsuid?: string;
3031
+ /**
3032
+ * Filter by tag. Accepts `name` to match any message carrying that tag name, or `name:value` to match a specific tag pair (e.g. `category:welcome`). Repeat the parameter to AND-combine several tag filters.
3033
+ *
3034
+ */
3035
+ tag?: Array<string>;
2863
3036
  };
2864
3037
  url: "/v1/whatsapp/messages";
2865
3038
  };
@@ -3734,6 +3907,46 @@ declare class WhatsappTemplatesResource extends Resource {
3734
3907
  list(options?: RequestOptions): APIPromise<WhatsAppTemplateList>;
3735
3908
  }
3736
3909
  //#endregion
3910
+ //#region src/resources/verify.d.ts
3911
+ /** Body for `bird.verify.verifications.create` — a recipient in `to`, plus optional `options`/`metadata`. */
3912
+ type VerificationCreateParams = VerificationCreateRequest;
3913
+ /** Body for `bird.verify.verifications.check` — the recipient in `to` and the submitted `code`. */
3914
+ type VerificationCheckParams = VerificationCheckRequest;
3915
+ declare class VerificationsResource extends Resource {
3916
+ /**
3917
+ * Start a verification and send a one-time passcode to the recipient in `to`
3918
+ * (a `phone_number` over SMS, an `email_address` over email, or both). Calling
3919
+ * again for the same recipient re-sends the code after the cooldown rather than
3920
+ * starting a second verification. The passcode is never returned — submit the
3921
+ * recipient's entry with `check`.
3922
+ *
3923
+ * @example Start over SMS
3924
+ * const verification = await bird.verify.verifications.create({
3925
+ * to: { phone_number: "+15551234567" },
3926
+ * });
3927
+ * console.log(verification.id, verification.status);
3928
+ */
3929
+ create(params: VerificationCreateParams, options?: RequestOptions): APIPromise<Verification>;
3930
+ /**
3931
+ * Check a passcode the recipient submitted. Identify the verification by the same
3932
+ * `to` recipient used to start it — no id needed. A wrong, expired, or already-used
3933
+ * code resolves with `success: false` and a `reason`, not an error.
3934
+ *
3935
+ * @example
3936
+ * const result = await bird.verify.verifications.check({
3937
+ * to: { phone_number: "+15551234567" },
3938
+ * code: "123456",
3939
+ * });
3940
+ * console.log(result.success);
3941
+ */
3942
+ check(params: VerificationCheckParams, options?: RequestOptions): APIPromise<VerificationCheckResult>;
3943
+ }
3944
+ /** The Verify product namespace — holds the `verifications` collection. */
3945
+ declare class VerifyResource {
3946
+ readonly verifications: VerificationsResource;
3947
+ constructor(...args: ConstructorParameters<typeof Resource>);
3948
+ }
3949
+ //#endregion
3737
3950
  //#region src/resources/webhooks.d.ts
3738
3951
  /** A verified webhook event — discriminated on `type` (ADR-0028 wire contract). */
3739
3952
  type BirdWebhookEvent = WebhookEvent;
@@ -3871,6 +4084,8 @@ declare class BirdClient<const O extends BirdClientOptions = BirdClientOptions>
3871
4084
  readonly whatsapp: WhatsappResource;
3872
4085
  /** WhatsApp templates — `bird.whatsappTemplates.list(...)`. */
3873
4086
  readonly whatsappTemplates: WhatsappTemplatesResource;
4087
+ /** The Verify product — `bird.verify.verifications.create(...)`, `.check(...)`. */
4088
+ readonly verify: VerifyResource;
3874
4089
  /** Contacts — `bird.contacts.create(...)`, `.list(...)`, `.get(...)`, `.batch(...)`, … */
3875
4090
  readonly contacts: ContactsResource;
3876
4091
  /** Audiences — `bird.audiences.create(...)`, `.list(...)`, `.addContacts(...)`, … */
@@ -3943,5 +4158,5 @@ declare const WebhookEventType: {
3943
4158
  /** A known webhook event type value. */
3944
4159
  type WebhookEventTypeValue = (typeof WebhookEventType)[keyof typeof WebhookEventType];
3945
4160
  //#endregion
3946
- export { type APIPromise, type Audience, type AudienceAddContactsParams, type AudienceContactsQuery, type AudienceCreateParams, type AudienceListQuery, type AudienceMember, type AudienceRemoveContactsParams, type AudienceUpdateParams, BirdAPIError, BirdAuthError, BirdBadRequestError, BirdBillingError, BirdClient, type BirdClientOptions, BirdConflictError, BirdConnectionError, BirdError, BirdInternalError, BirdMisdirectedError, BirdNotFoundError, BirdNotImplementedError, BirdPayloadTooLargeError, BirdPermissionError, BirdPreconditionError, BirdRateLimitError, type BirdRequest, type BirdResponse, BirdServiceUnavailableError, BirdTimeoutError, BirdValidationError, type BirdWebhookEvent, BirdWebhookVerificationError, type Contact, type ContactBatchParams, type ContactCreateParams, type ContactListQuery, type ContactProperty, type ContactPropertyCreateParams, type ContactPropertyListQuery, type ContactPropertyUpdateParams, type ContactUpdateParams, type ContactUpsertResult, type CursorPage, type EmailChannelDefaults, type EmailListQuery, type EmailMessage, type EmailSendBatchParams, type EmailSendBatchResult, type EmailSendParams, type ErrorDetail, type ErrorNextAction, type PaginatedPromise, type RequestOptions, type SafeResult, type SmsListQuery, type SmsMessage, type SmsSendBatchParams, type SmsSendBatchResult, type SmsSendParams, type SmsTemplate, type SmsTemplateList, type SmsTemplateListQuery, type UnmetGate, WebhookEventType, type WebhookEventTypeValue, type WebhookHeaders, type WebhookOptions, type WhatsAppEventList, type WhatsAppMessage, type WhatsAppTemplate, type WhatsAppTemplateList, type WhatsappListEventsQuery, type WhatsappListQuery, type WhatsappSendParams, baseUrlForRegion, regionFromApiKey };
4161
+ export { type APIPromise, type Audience, type AudienceAddContactsParams, type AudienceContactsQuery, type AudienceCreateParams, type AudienceListQuery, type AudienceMember, type AudienceRemoveContactsParams, type AudienceUpdateParams, BirdAPIError, BirdAuthError, BirdBadRequestError, BirdBillingError, BirdClient, type BirdClientOptions, BirdConflictError, BirdConnectionError, BirdError, BirdInternalError, BirdMisdirectedError, BirdNotFoundError, BirdNotImplementedError, BirdPayloadTooLargeError, BirdPermissionError, BirdPreconditionError, BirdRateLimitError, type BirdRequest, type BirdResponse, BirdServiceUnavailableError, BirdTimeoutError, BirdValidationError, type BirdWebhookEvent, BirdWebhookVerificationError, type Contact, type ContactBatchParams, type ContactCreateParams, type ContactListQuery, type ContactProperty, type ContactPropertyCreateParams, type ContactPropertyListQuery, type ContactPropertyUpdateParams, type ContactUpdateParams, type ContactUpsertResult, type CursorPage, type EmailChannelDefaults, type EmailListQuery, type EmailMessage, type EmailSendBatchParams, type EmailSendBatchResult, type EmailSendParams, type ErrorDetail, type ErrorNextAction, type PaginatedPromise, type RequestOptions, type SafeResult, type SmsListQuery, type SmsMessage, type SmsSendBatchParams, type SmsSendBatchResult, type SmsSendParams, type SmsTemplate, type SmsTemplateList, type SmsTemplateListQuery, type UnmetGate, type Verification, type VerificationCheckParams, type VerificationCheckResult, type VerificationCreateParams, WebhookEventType, type WebhookEventTypeValue, type WebhookHeaders, type WebhookOptions, type WhatsAppEventList, type WhatsAppMessage, type WhatsAppTemplate, type WhatsAppTemplateList, type WhatsappListEventsQuery, type WhatsappListQuery, type WhatsappSendParams, baseUrlForRegion, regionFromApiKey };
3947
4162
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -1804,6 +1804,50 @@ const getSmsTemplate = (options) => (options.client ?? client).get({
1804
1804
  ...options
1805
1805
  });
1806
1806
  /**
1807
+ * Create a verification
1808
+ *
1809
+ * Creates a verification for a recipient and sends them a one-time passcode. Provide a recipient in `to` — an email address (verified over email), a phone number (verified over SMS), or both. If a verification is already in progress for the same recipient, that one is reused and its passcode is re-sent once the resend cooldown has elapsed, rather than starting a second verification. The response includes the verification's current state; the passcode itself is never returned. Submit the passcode the recipient enters with the check endpoint.
1810
+ *
1811
+ */
1812
+ const createVerification = (options) => (options.client ?? client).post({
1813
+ security: [{
1814
+ scheme: "bearer",
1815
+ type: "http"
1816
+ }, {
1817
+ in: "cookie",
1818
+ name: "bird_session",
1819
+ type: "apiKey"
1820
+ }],
1821
+ url: "/v1/verify/verifications",
1822
+ ...options,
1823
+ headers: {
1824
+ "Content-Type": "application/json",
1825
+ ...options.headers
1826
+ }
1827
+ });
1828
+ /**
1829
+ * Check a verification passcode
1830
+ *
1831
+ * Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` recipient used to create it — you do not need to store a verification id. A wrong, expired, or already-used passcode is reported in the response body, with `success` set to `false` and a `reason` such as `incorrect_code` or `expired`, rather than as an HTTP error; only a missing verification, malformed input, or rate limiting return an error status.
1832
+ *
1833
+ */
1834
+ const createVerificationCheck = (options) => (options.client ?? client).post({
1835
+ security: [{
1836
+ scheme: "bearer",
1837
+ type: "http"
1838
+ }, {
1839
+ in: "cookie",
1840
+ name: "bird_session",
1841
+ type: "apiKey"
1842
+ }],
1843
+ url: "/v1/verify/verifications/check",
1844
+ ...options,
1845
+ headers: {
1846
+ "Content-Type": "application/json",
1847
+ ...options.headers
1848
+ }
1849
+ });
1850
+ /**
1807
1851
  * List WhatsApp messages
1808
1852
  *
1809
1853
  * Returns a paginated list of WhatsApp messages in the workspace, newest first.
@@ -2693,6 +2737,58 @@ var WhatsappTemplatesResource = class extends Resource {
2693
2737
  }
2694
2738
  };
2695
2739
  //#endregion
2740
+ //#region src/resources/verify.ts
2741
+ var VerificationsResource = class extends Resource {
2742
+ /**
2743
+ * Start a verification and send a one-time passcode to the recipient in `to`
2744
+ * (a `phone_number` over SMS, an `email_address` over email, or both). Calling
2745
+ * again for the same recipient re-sends the code after the cooldown rather than
2746
+ * starting a second verification. The passcode is never returned — submit the
2747
+ * recipient's entry with `check`.
2748
+ *
2749
+ * @example Start over SMS
2750
+ * const verification = await bird.verify.verifications.create({
2751
+ * to: { phone_number: "+15551234567" },
2752
+ * });
2753
+ * console.log(verification.id, verification.status);
2754
+ */
2755
+ create(params, options) {
2756
+ return this.call("POST", options, ({ signal, headers }) => createVerification({
2757
+ client: this.client,
2758
+ body: params,
2759
+ headers,
2760
+ signal
2761
+ }));
2762
+ }
2763
+ /**
2764
+ * Check a passcode the recipient submitted. Identify the verification by the same
2765
+ * `to` recipient used to start it — no id needed. A wrong, expired, or already-used
2766
+ * code resolves with `success: false` and a `reason`, not an error.
2767
+ *
2768
+ * @example
2769
+ * const result = await bird.verify.verifications.check({
2770
+ * to: { phone_number: "+15551234567" },
2771
+ * code: "123456",
2772
+ * });
2773
+ * console.log(result.success);
2774
+ */
2775
+ check(params, options) {
2776
+ return this.call("POST", options, ({ signal, headers }) => createVerificationCheck({
2777
+ client: this.client,
2778
+ body: params,
2779
+ headers,
2780
+ signal
2781
+ }));
2782
+ }
2783
+ };
2784
+ /** The Verify product namespace — holds the `verifications` collection. */
2785
+ var VerifyResource = class {
2786
+ verifications;
2787
+ constructor(...args) {
2788
+ this.verifications = new VerificationsResource(...args);
2789
+ }
2790
+ };
2791
+ //#endregion
2696
2792
  //#region src/resources/webhooks.ts
2697
2793
  var WebhooksResource = class {
2698
2794
  #secret;
@@ -2817,6 +2913,8 @@ var BirdClient = class {
2817
2913
  whatsapp;
2818
2914
  /** WhatsApp templates — `bird.whatsappTemplates.list(...)`. */
2819
2915
  whatsappTemplates;
2916
+ /** The Verify product — `bird.verify.verifications.create(...)`, `.check(...)`. */
2917
+ verify;
2820
2918
  /** Contacts — `bird.contacts.create(...)`, `.list(...)`, `.get(...)`, `.batch(...)`, … */
2821
2919
  contacts;
2822
2920
  /** Audiences — `bird.audiences.create(...)`, `.list(...)`, `.addContacts(...)`, … */
@@ -2832,9 +2930,9 @@ var BirdClient = class {
2832
2930
  this.#headers = {
2833
2931
  ...opts.defaultHeaders,
2834
2932
  Authorization: `Bearer ${opts.apiKey}`,
2835
- "User-Agent": `bird-sdk-js/0.6.0`,
2933
+ "User-Agent": `bird-sdk-js/0.7.0`,
2836
2934
  "Bird-Surface": "sdk-js",
2837
- "Bird-Version": "0.6.0"
2935
+ "Bird-Version": "0.7.0"
2838
2936
  };
2839
2937
  const caller = detectCaller();
2840
2938
  if (caller) this.#headers["Bird-Caller"] = caller;
@@ -2852,6 +2950,7 @@ var BirdClient = class {
2852
2950
  this.smsTemplates = new SmsTemplatesResource(this.core, this.#client);
2853
2951
  this.whatsapp = new WhatsappResource(this.core, this.#client);
2854
2952
  this.whatsappTemplates = new WhatsappTemplatesResource(this.core, this.#client);
2953
+ this.verify = new VerifyResource(this.core, this.#client);
2855
2954
  this.contacts = new ContactsResource(this.core, this.#client);
2856
2955
  this.audiences = new AudiencesResource(this.core, this.#client);
2857
2956
  this.contactProperties = new ContactPropertiesResource(this.core, this.#client);