@wazzapi/wazzapi 0.2.0 → 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 CHANGED
@@ -4,7 +4,7 @@ Official Node.js and TypeScript SDK for WazzAPI.
4
4
 
5
5
  This package is a modern Node.js and TypeScript SDK for WazzAPI, built with Bun-powered development, typed models, ESM/CJS output, and an API surface that feels natural in TypeScript.
6
6
 
7
- Use it to send WhatsApp messages, manage contacts and groups, work with templates, verify webhooks, and download encrypted WhatsApp media.
7
+ Use it to inspect WhatsApp devices, send WhatsApp messages, manage contacts and groups, work with templates, verify webhooks, and download encrypted WhatsApp media.
8
8
 
9
9
  ## Highlights
10
10
 
@@ -16,6 +16,7 @@ Use it to send WhatsApp messages, manage contacts and groups, work with template
16
16
  - snake_case aliases for compatibility with existing naming styles
17
17
  - built-in webhook verification helpers
18
18
  - encrypted media download and decryption helpers
19
+ - typed device listing and inspection APIs
19
20
  - standard and advanced runnable examples
20
21
 
21
22
  ## Supported Node.js versions
@@ -87,9 +88,10 @@ console.log(response.message_id, response.status);
87
88
 
88
89
  ## API shape
89
90
 
90
- The main client exposes four primary resources:
91
+ The main client exposes five primary resources:
91
92
 
92
93
  - `client.contacts`
94
+ - `client.devices`
93
95
  - `client.groups`
94
96
  - `client.messages`
95
97
  - `client.templates`
@@ -97,6 +99,7 @@ The main client exposes four primary resources:
97
99
  Preferred TypeScript method names use camelCase:
98
100
 
99
101
  - `client.contacts.listGroups()`
102
+ - `client.devices.get()`
100
103
  - `client.groups.getParticipants()`
101
104
  - `client.messages.sendImage()`
102
105
  - `client.templates.builtinVariables()`
@@ -173,6 +176,7 @@ console.log(file.file_name, file.file_size);
173
176
  ### Standard examples
174
177
 
175
178
  - `examples/list-contacts.ts`
179
+ - `examples/list-devices.ts`
176
180
  - `examples/send-message.ts`
177
181
  - `examples/create-template.ts`
178
182
  - `examples/preview-template.ts`
@@ -191,6 +195,7 @@ Topic-based documentation is available in `docs/`:
191
195
  - `docs/README.md`
192
196
  - `docs/authentication.md`
193
197
  - `docs/client.md`
198
+ - `docs/devices.md`
194
199
  - `docs/messages.md`
195
200
  - `docs/groups.md`
196
201
  - `docs/contacts.md`
@@ -205,6 +210,7 @@ Repository: <https://github.com/wazzapihq/wazzapi-node>
205
210
 
206
211
  ```bash
207
212
  bun run examples/list-contacts.ts
213
+ bun run examples/list-devices.ts
208
214
  bun run examples/send-message.ts
209
215
  bun run examples/create-template.ts
210
216
  bun run examples/preview-template.ts
package/dist/index.cjs CHANGED
@@ -61,6 +61,9 @@ __export(index_exports, {
61
61
  parseContactSyncStatusResponse: () => parseContactSyncStatusResponse,
62
62
  parseContactSyncStatusResponseList: () => parseContactSyncStatusResponseList,
63
63
  parseCreateGroupResponseModel: () => parseCreateGroupResponseModel,
64
+ parseDeviceItem: () => parseDeviceItem,
65
+ parseDeviceListResponse: () => parseDeviceListResponse,
66
+ parseDeviceResponse: () => parseDeviceResponse,
64
67
  parseGroupDetailResponse: () => parseGroupDetailResponse,
65
68
  parseGroupInviteInfoResponseModel: () => parseGroupInviteInfoResponseModel,
66
69
  parseGroupInviteLinkResponseModel: () => parseGroupInviteLinkResponseModel,
@@ -259,6 +262,9 @@ __export(models_exports, {
259
262
  parseContactSyncStatusResponse: () => parseContactSyncStatusResponse,
260
263
  parseContactSyncStatusResponseList: () => parseContactSyncStatusResponseList,
261
264
  parseCreateGroupResponseModel: () => parseCreateGroupResponseModel,
265
+ parseDeviceItem: () => parseDeviceItem,
266
+ parseDeviceListResponse: () => parseDeviceListResponse,
267
+ parseDeviceResponse: () => parseDeviceResponse,
262
268
  parseGroupDetailResponse: () => parseGroupDetailResponse,
263
269
  parseGroupInviteInfoResponseModel: () => parseGroupInviteInfoResponseModel,
264
270
  parseGroupInviteLinkResponseModel: () => parseGroupInviteLinkResponseModel,
@@ -373,6 +379,32 @@ function parseContactSyncStatusResponseList(input) {
373
379
  return mapArray(input, parseContactSyncStatusResponse);
374
380
  }
375
381
 
382
+ // src/models/devices.ts
383
+ function parseDeviceItem(input) {
384
+ return withDateFields(input, [
385
+ "created_at",
386
+ "updated_at",
387
+ "last_connected_at",
388
+ "last_health_check_at",
389
+ "last_contact_sync_at"
390
+ ]);
391
+ }
392
+ function parseDeviceListResponse(input) {
393
+ const output = cloneObject(input);
394
+ const typedInput = typeof input === "object" && input ? input : void 0;
395
+ output.devices = mapArray(typedInput?.devices, parseDeviceItem);
396
+ return output;
397
+ }
398
+ function parseDeviceResponse(input) {
399
+ return withDateFields(input, [
400
+ "created_at",
401
+ "updated_at",
402
+ "last_connected_at",
403
+ "last_health_check_at",
404
+ "last_contact_sync_at"
405
+ ]);
406
+ }
407
+
376
408
  // src/models/groups.ts
377
409
  function parseGroupListItem(input) {
378
410
  const output = cloneObject(input);
@@ -760,6 +792,21 @@ var ContactsResource = class extends BaseResource {
760
792
  }
761
793
  };
762
794
 
795
+ // src/resources/devices.ts
796
+ var DevicesResource = class extends BaseResource {
797
+ async list(options) {
798
+ return this._client._request("GET", "/api/v1/devices", {
799
+ params: options,
800
+ responseParser: parseDeviceListResponse
801
+ });
802
+ }
803
+ async get(deviceId) {
804
+ return this._client._request("GET", `/api/v1/devices/${deviceId}`, {
805
+ responseParser: parseDeviceResponse
806
+ });
807
+ }
808
+ };
809
+
763
810
  // src/resources/groups.ts
764
811
  var GroupsResource = class extends BaseResource {
765
812
  async list(options) {
@@ -1165,6 +1212,7 @@ var WazzapiClient = class {
1165
1212
  fetch: fetcher
1166
1213
  };
1167
1214
  this.contacts = new ContactsResource(this);
1215
+ this.devices = new DevicesResource(this);
1168
1216
  this.groups = new GroupsResource(this);
1169
1217
  this.messages = new MessagesResource(this);
1170
1218
  this.templates = new TemplatesResource(this);
@@ -1470,7 +1518,7 @@ var verify_webhook_signature = verifyWebhookSignature;
1470
1518
  var parse_webhook = parseWebhook;
1471
1519
 
1472
1520
  // src/index.ts
1473
- var __version__ = "0.2.0";
1521
+ var __version__ = "0.3.0";
1474
1522
  // Annotate the CommonJS export names for ESM import in node:
1475
1523
  0 && (module.exports = {
1476
1524
  DEFAULT_BASE_URL,
@@ -1514,6 +1562,9 @@ var __version__ = "0.2.0";
1514
1562
  parseContactSyncStatusResponse,
1515
1563
  parseContactSyncStatusResponseList,
1516
1564
  parseCreateGroupResponseModel,
1565
+ parseDeviceItem,
1566
+ parseDeviceListResponse,
1567
+ parseDeviceResponse,
1517
1568
  parseGroupDetailResponse,
1518
1569
  parseGroupInviteInfoResponseModel,
1519
1570
  parseGroupInviteLinkResponseModel,
package/dist/index.d.cts CHANGED
@@ -171,6 +171,41 @@ declare function parseContactSyncResponse(input: unknown): ContactSyncResponse;
171
171
  declare function parseContactSyncStatusResponse(input: unknown): ContactSyncStatusResponse;
172
172
  declare function parseContactSyncStatusResponseList(input: unknown): ContactSyncStatusResponse[];
173
173
 
174
+ interface DeviceItem extends WazzapiModel {
175
+ id: string;
176
+ name: string;
177
+ session_name: string;
178
+ status: string;
179
+ is_primary: boolean;
180
+ auto_warmer_enabled: boolean;
181
+ total_messages_sent: number;
182
+ total_messages_received: number;
183
+ contacts_synced_count: number;
184
+ created_at: Date;
185
+ updated_at: Date;
186
+ phone_number?: string | null;
187
+ last_connected_at?: Date | null;
188
+ last_health_check_at?: Date | null;
189
+ last_contact_sync_at?: Date | null;
190
+ last_contact_sync_status?: string | null;
191
+ }
192
+ interface DeviceListResponse extends WazzapiModel {
193
+ devices: DeviceItem[];
194
+ total: number;
195
+ limit: number;
196
+ offset: number;
197
+ }
198
+ interface DeviceResponse extends DeviceItem {
199
+ timezone: string;
200
+ connection_attempts: number;
201
+ daily_message_limit: number;
202
+ message_delay_ms: number;
203
+ backend_id?: string | null;
204
+ }
205
+ declare function parseDeviceItem(input: unknown): DeviceItem;
206
+ declare function parseDeviceListResponse(input: unknown): DeviceListResponse;
207
+ declare function parseDeviceResponse(input: unknown): DeviceResponse;
208
+
174
209
  interface GroupListItem extends WazzapiModel {
175
210
  id: string;
176
211
  name: string;
@@ -621,6 +656,9 @@ type index_ContactSyncStatusResponse = ContactSyncStatusResponse;
621
656
  type index_ContactUpdateRequest = ContactUpdateRequest;
622
657
  type index_CreateGroupRequest = CreateGroupRequest;
623
658
  type index_CreateGroupResponseModel = CreateGroupResponseModel;
659
+ type index_DeviceItem = DeviceItem;
660
+ type index_DeviceListResponse = DeviceListResponse;
661
+ type index_DeviceResponse = DeviceResponse;
624
662
  type index_DeviceWebhookEvent = DeviceWebhookEvent;
625
663
  type index_GroupDetailResponse = GroupDetailResponse;
626
664
  type index_GroupInviteInfoResponseModel = GroupInviteInfoResponseModel;
@@ -690,6 +728,9 @@ declare const index_parseContactSyncResponse: typeof parseContactSyncResponse;
690
728
  declare const index_parseContactSyncStatusResponse: typeof parseContactSyncStatusResponse;
691
729
  declare const index_parseContactSyncStatusResponseList: typeof parseContactSyncStatusResponseList;
692
730
  declare const index_parseCreateGroupResponseModel: typeof parseCreateGroupResponseModel;
731
+ declare const index_parseDeviceItem: typeof parseDeviceItem;
732
+ declare const index_parseDeviceListResponse: typeof parseDeviceListResponse;
733
+ declare const index_parseDeviceResponse: typeof parseDeviceResponse;
693
734
  declare const index_parseGroupDetailResponse: typeof parseGroupDetailResponse;
694
735
  declare const index_parseGroupInviteInfoResponseModel: typeof parseGroupInviteInfoResponseModel;
695
736
  declare const index_parseGroupInviteLinkResponseModel: typeof parseGroupInviteLinkResponseModel;
@@ -720,7 +761,7 @@ declare const index_parseTemplatePreviewResponse: typeof parseTemplatePreviewRes
720
761
  declare const index_parseTemplateResponse: typeof parseTemplateResponse;
721
762
  declare const index_parseWebhookPayload: typeof parseWebhookPayload;
722
763
  declare namespace index {
723
- export { type index_AddToGroupRequest as AddToGroupRequest, type index_AddToGroupResponse as AddToGroupResponse, type index_BuiltinVariableInfo as BuiltinVariableInfo, type index_BuiltinVariablesResponse as BuiltinVariablesResponse, type index_BulkDeleteRequest as BulkDeleteRequest, type index_BulkDeleteResponse as BulkDeleteResponse, type index_ButtonReplyRequest as ButtonReplyRequest, type index_CSVExportResponse as CSVExportResponse, type index_CSVImportRequest as CSVImportRequest, type index_CSVImportResponse as CSVImportResponse, type index_CancelMessageResponse as CancelMessageResponse, type index_ContactCreateRequest as ContactCreateRequest, type index_ContactGroupCreateRequest as ContactGroupCreateRequest, type index_ContactGroupItem as ContactGroupItem, type index_ContactGroupListResponse as ContactGroupListResponse, type index_ContactGroupMembersResponse as ContactGroupMembersResponse, type index_ContactGroupUpdateRequest as ContactGroupUpdateRequest, type index_ContactItem as ContactItem, type index_ContactListResponse as ContactListResponse, type index_ContactResponse as ContactResponse, type index_ContactSyncHistoryItem as ContactSyncHistoryItem, type index_ContactSyncHistoryResponse as ContactSyncHistoryResponse, type index_ContactSyncRequest as ContactSyncRequest, type index_ContactSyncResponse as ContactSyncResponse, type index_ContactSyncStatusResponse as ContactSyncStatusResponse, type index_ContactUpdateRequest as ContactUpdateRequest, type index_CreateGroupRequest as CreateGroupRequest, type index_CreateGroupResponseModel as CreateGroupResponseModel, type index_DeviceWebhookEvent as DeviceWebhookEvent, type index_GroupDetailResponse as GroupDetailResponse, type index_GroupInviteInfoResponseModel as GroupInviteInfoResponseModel, type index_GroupInviteLinkResponseModel as GroupInviteLinkResponseModel, type index_GroupListItem as GroupListItem, type index_GroupListResponse as GroupListResponse, type index_GroupOperationResponseModel as GroupOperationResponseModel, type index_GroupParticipantItem as GroupParticipantItem, type index_GroupParticipantsResponse as GroupParticipantsResponse, type index_InteractiveButton as InteractiveButton, type index_InteractiveMessageResponse as InteractiveMessageResponse, type index_InteractiveRow as InteractiveRow, type index_InteractiveSection as InteractiveSection, type index_InviteInfoRequest as InviteInfoRequest, type index_JoinGroupRequest as JoinGroupRequest, type index_ListReplyRequest as ListReplyRequest, type index_MediaDownloadResult as MediaDownloadResult, type index_MessageItem as MessageItem, type index_MessageListResponse as MessageListResponse, type index_MessageResponse as MessageResponse, type index_MessageStatsResponse as MessageStatsResponse, type index_MessageWebhookEvent as MessageWebhookEvent, type index_PublicDeviceWebhook as PublicDeviceWebhook, type index_PublicMessageWebhook as PublicMessageWebhook, type index_PublicWebhookDeviceData as PublicWebhookDeviceData, type index_PublicWebhookMessageData as PublicWebhookMessageData, type index_RemoveFromGroupRequest as RemoveFromGroupRequest, type index_RetryMessageResponse as RetryMessageResponse, type index_SendGroupMediaRequest as SendGroupMediaRequest, type index_SendGroupResponse as SendGroupResponse, type index_SendGroupTextRequest as SendGroupTextRequest, type index_SendMessageRequest as SendMessageRequest, type index_SendMessageResponse as SendMessageResponse, type index_SetGroupAnnounceRequest as SetGroupAnnounceRequest, type index_SetGroupEphemeralRequest as SetGroupEphemeralRequest, type index_SetGroupLockedRequest as SetGroupLockedRequest, type index_SetGroupNameRequest as SetGroupNameRequest, type index_SetGroupPhotoRequest as SetGroupPhotoRequest, type index_SetGroupTopicRequest as SetGroupTopicRequest, type index_TemplateCreateRequest as TemplateCreateRequest, type index_TemplateItem as TemplateItem, type index_TemplateListResponse as TemplateListResponse, type index_TemplatePreviewRequest as TemplatePreviewRequest, type index_TemplatePreviewResponse as TemplatePreviewResponse, type index_TemplateResponse as TemplateResponse, type index_TemplateUpdateRequest as TemplateUpdateRequest, type index_UpdateParticipantsRequest as UpdateParticipantsRequest, type index_WazzapiModel as WazzapiModel, type index_WebhookEvent as WebhookEvent, type index_WebhookPayload as WebhookPayload, index_parseAddToGroupResponse as parseAddToGroupResponse, index_parseBuiltinVariableInfo as parseBuiltinVariableInfo, index_parseBuiltinVariablesResponse as parseBuiltinVariablesResponse, index_parseBulkDeleteResponse as parseBulkDeleteResponse, index_parseCSVExportResponse as parseCSVExportResponse, index_parseCSVImportResponse as parseCSVImportResponse, index_parseCancelMessageResponse as parseCancelMessageResponse, index_parseContactGroupItem as parseContactGroupItem, index_parseContactGroupListResponse as parseContactGroupListResponse, index_parseContactGroupMembersResponse as parseContactGroupMembersResponse, index_parseContactItem as parseContactItem, index_parseContactListResponse as parseContactListResponse, index_parseContactResponse as parseContactResponse, index_parseContactSyncHistoryItem as parseContactSyncHistoryItem, index_parseContactSyncHistoryResponse as parseContactSyncHistoryResponse, index_parseContactSyncResponse as parseContactSyncResponse, index_parseContactSyncStatusResponse as parseContactSyncStatusResponse, index_parseContactSyncStatusResponseList as parseContactSyncStatusResponseList, index_parseCreateGroupResponseModel as parseCreateGroupResponseModel, index_parseGroupDetailResponse as parseGroupDetailResponse, index_parseGroupInviteInfoResponseModel as parseGroupInviteInfoResponseModel, index_parseGroupInviteLinkResponseModel as parseGroupInviteLinkResponseModel, index_parseGroupListItem as parseGroupListItem, index_parseGroupListResponse as parseGroupListResponse, index_parseGroupOperationResponseModel as parseGroupOperationResponseModel, index_parseGroupParticipantItem as parseGroupParticipantItem, index_parseGroupParticipantsResponse as parseGroupParticipantsResponse, index_parseInteractiveButton as parseInteractiveButton, index_parseInteractiveMessageResponse as parseInteractiveMessageResponse, index_parseInteractiveRow as parseInteractiveRow, index_parseInteractiveSection as parseInteractiveSection, index_parseMediaDownloadResult as parseMediaDownloadResult, index_parseMessageItem as parseMessageItem, index_parseMessageListResponse as parseMessageListResponse, index_parseMessageResponse as parseMessageResponse, index_parseMessageStatsResponse as parseMessageStatsResponse, index_parsePublicDeviceWebhook as parsePublicDeviceWebhook, index_parsePublicMessageWebhook as parsePublicMessageWebhook, index_parsePublicWebhookDeviceData as parsePublicWebhookDeviceData, index_parsePublicWebhookMessageData as parsePublicWebhookMessageData, index_parseRetryMessageResponse as parseRetryMessageResponse, index_parseSendGroupResponse as parseSendGroupResponse, index_parseSendMessageResponse as parseSendMessageResponse, index_parseTemplateItem as parseTemplateItem, index_parseTemplateListResponse as parseTemplateListResponse, index_parseTemplatePreviewResponse as parseTemplatePreviewResponse, index_parseTemplateResponse as parseTemplateResponse, index_parseWebhookPayload as parseWebhookPayload };
764
+ export { type index_AddToGroupRequest as AddToGroupRequest, type index_AddToGroupResponse as AddToGroupResponse, type index_BuiltinVariableInfo as BuiltinVariableInfo, type index_BuiltinVariablesResponse as BuiltinVariablesResponse, type index_BulkDeleteRequest as BulkDeleteRequest, type index_BulkDeleteResponse as BulkDeleteResponse, type index_ButtonReplyRequest as ButtonReplyRequest, type index_CSVExportResponse as CSVExportResponse, type index_CSVImportRequest as CSVImportRequest, type index_CSVImportResponse as CSVImportResponse, type index_CancelMessageResponse as CancelMessageResponse, type index_ContactCreateRequest as ContactCreateRequest, type index_ContactGroupCreateRequest as ContactGroupCreateRequest, type index_ContactGroupItem as ContactGroupItem, type index_ContactGroupListResponse as ContactGroupListResponse, type index_ContactGroupMembersResponse as ContactGroupMembersResponse, type index_ContactGroupUpdateRequest as ContactGroupUpdateRequest, type index_ContactItem as ContactItem, type index_ContactListResponse as ContactListResponse, type index_ContactResponse as ContactResponse, type index_ContactSyncHistoryItem as ContactSyncHistoryItem, type index_ContactSyncHistoryResponse as ContactSyncHistoryResponse, type index_ContactSyncRequest as ContactSyncRequest, type index_ContactSyncResponse as ContactSyncResponse, type index_ContactSyncStatusResponse as ContactSyncStatusResponse, type index_ContactUpdateRequest as ContactUpdateRequest, type index_CreateGroupRequest as CreateGroupRequest, type index_CreateGroupResponseModel as CreateGroupResponseModel, type index_DeviceItem as DeviceItem, type index_DeviceListResponse as DeviceListResponse, type index_DeviceResponse as DeviceResponse, type index_DeviceWebhookEvent as DeviceWebhookEvent, type index_GroupDetailResponse as GroupDetailResponse, type index_GroupInviteInfoResponseModel as GroupInviteInfoResponseModel, type index_GroupInviteLinkResponseModel as GroupInviteLinkResponseModel, type index_GroupListItem as GroupListItem, type index_GroupListResponse as GroupListResponse, type index_GroupOperationResponseModel as GroupOperationResponseModel, type index_GroupParticipantItem as GroupParticipantItem, type index_GroupParticipantsResponse as GroupParticipantsResponse, type index_InteractiveButton as InteractiveButton, type index_InteractiveMessageResponse as InteractiveMessageResponse, type index_InteractiveRow as InteractiveRow, type index_InteractiveSection as InteractiveSection, type index_InviteInfoRequest as InviteInfoRequest, type index_JoinGroupRequest as JoinGroupRequest, type index_ListReplyRequest as ListReplyRequest, type index_MediaDownloadResult as MediaDownloadResult, type index_MessageItem as MessageItem, type index_MessageListResponse as MessageListResponse, type index_MessageResponse as MessageResponse, type index_MessageStatsResponse as MessageStatsResponse, type index_MessageWebhookEvent as MessageWebhookEvent, type index_PublicDeviceWebhook as PublicDeviceWebhook, type index_PublicMessageWebhook as PublicMessageWebhook, type index_PublicWebhookDeviceData as PublicWebhookDeviceData, type index_PublicWebhookMessageData as PublicWebhookMessageData, type index_RemoveFromGroupRequest as RemoveFromGroupRequest, type index_RetryMessageResponse as RetryMessageResponse, type index_SendGroupMediaRequest as SendGroupMediaRequest, type index_SendGroupResponse as SendGroupResponse, type index_SendGroupTextRequest as SendGroupTextRequest, type index_SendMessageRequest as SendMessageRequest, type index_SendMessageResponse as SendMessageResponse, type index_SetGroupAnnounceRequest as SetGroupAnnounceRequest, type index_SetGroupEphemeralRequest as SetGroupEphemeralRequest, type index_SetGroupLockedRequest as SetGroupLockedRequest, type index_SetGroupNameRequest as SetGroupNameRequest, type index_SetGroupPhotoRequest as SetGroupPhotoRequest, type index_SetGroupTopicRequest as SetGroupTopicRequest, type index_TemplateCreateRequest as TemplateCreateRequest, type index_TemplateItem as TemplateItem, type index_TemplateListResponse as TemplateListResponse, type index_TemplatePreviewRequest as TemplatePreviewRequest, type index_TemplatePreviewResponse as TemplatePreviewResponse, type index_TemplateResponse as TemplateResponse, type index_TemplateUpdateRequest as TemplateUpdateRequest, type index_UpdateParticipantsRequest as UpdateParticipantsRequest, type index_WazzapiModel as WazzapiModel, type index_WebhookEvent as WebhookEvent, type index_WebhookPayload as WebhookPayload, index_parseAddToGroupResponse as parseAddToGroupResponse, index_parseBuiltinVariableInfo as parseBuiltinVariableInfo, index_parseBuiltinVariablesResponse as parseBuiltinVariablesResponse, index_parseBulkDeleteResponse as parseBulkDeleteResponse, index_parseCSVExportResponse as parseCSVExportResponse, index_parseCSVImportResponse as parseCSVImportResponse, index_parseCancelMessageResponse as parseCancelMessageResponse, index_parseContactGroupItem as parseContactGroupItem, index_parseContactGroupListResponse as parseContactGroupListResponse, index_parseContactGroupMembersResponse as parseContactGroupMembersResponse, index_parseContactItem as parseContactItem, index_parseContactListResponse as parseContactListResponse, index_parseContactResponse as parseContactResponse, index_parseContactSyncHistoryItem as parseContactSyncHistoryItem, index_parseContactSyncHistoryResponse as parseContactSyncHistoryResponse, index_parseContactSyncResponse as parseContactSyncResponse, index_parseContactSyncStatusResponse as parseContactSyncStatusResponse, index_parseContactSyncStatusResponseList as parseContactSyncStatusResponseList, index_parseCreateGroupResponseModel as parseCreateGroupResponseModel, index_parseDeviceItem as parseDeviceItem, index_parseDeviceListResponse as parseDeviceListResponse, index_parseDeviceResponse as parseDeviceResponse, index_parseGroupDetailResponse as parseGroupDetailResponse, index_parseGroupInviteInfoResponseModel as parseGroupInviteInfoResponseModel, index_parseGroupInviteLinkResponseModel as parseGroupInviteLinkResponseModel, index_parseGroupListItem as parseGroupListItem, index_parseGroupListResponse as parseGroupListResponse, index_parseGroupOperationResponseModel as parseGroupOperationResponseModel, index_parseGroupParticipantItem as parseGroupParticipantItem, index_parseGroupParticipantsResponse as parseGroupParticipantsResponse, index_parseInteractiveButton as parseInteractiveButton, index_parseInteractiveMessageResponse as parseInteractiveMessageResponse, index_parseInteractiveRow as parseInteractiveRow, index_parseInteractiveSection as parseInteractiveSection, index_parseMediaDownloadResult as parseMediaDownloadResult, index_parseMessageItem as parseMessageItem, index_parseMessageListResponse as parseMessageListResponse, index_parseMessageResponse as parseMessageResponse, index_parseMessageStatsResponse as parseMessageStatsResponse, index_parsePublicDeviceWebhook as parsePublicDeviceWebhook, index_parsePublicMessageWebhook as parsePublicMessageWebhook, index_parsePublicWebhookDeviceData as parsePublicWebhookDeviceData, index_parsePublicWebhookMessageData as parsePublicWebhookMessageData, index_parseRetryMessageResponse as parseRetryMessageResponse, index_parseSendGroupResponse as parseSendGroupResponse, index_parseSendMessageResponse as parseSendMessageResponse, index_parseTemplateItem as parseTemplateItem, index_parseTemplateListResponse as parseTemplateListResponse, index_parseTemplatePreviewResponse as parseTemplatePreviewResponse, index_parseTemplateResponse as parseTemplateResponse, index_parseWebhookPayload as parseWebhookPayload };
724
765
  }
725
766
 
726
767
  type JsonObject = Record<string, unknown>;
@@ -791,6 +832,18 @@ declare class ContactsResource extends BaseResource {
791
832
  delete(contactId: string): Promise<void>;
792
833
  }
793
834
 
835
+ declare class DevicesResource extends BaseResource {
836
+ list(options?: {
837
+ limit?: number;
838
+ offset?: number;
839
+ status?: string;
840
+ search?: string;
841
+ sort_by?: string;
842
+ sort_order?: string;
843
+ }): Promise<DeviceListResponse>;
844
+ get(deviceId: string): Promise<DeviceResponse>;
845
+ }
846
+
794
847
  declare class GroupsResource extends BaseResource {
795
848
  list(options: {
796
849
  session_name: string;
@@ -937,6 +990,7 @@ interface WazzapiHttpConfig {
937
990
  declare class WazzapiClient {
938
991
  readonly http: WazzapiHttpConfig;
939
992
  readonly contacts: ContactsResource;
993
+ readonly devices: DevicesResource;
940
994
  readonly groups: GroupsResource;
941
995
  readonly messages: MessagesResource;
942
996
  readonly templates: TemplatesResource;
@@ -1007,6 +1061,6 @@ declare const generate_webhook_signature: typeof generateWebhookSignature;
1007
1061
  declare const verify_webhook_signature: typeof verifyWebhookSignature;
1008
1062
  declare const parse_webhook: typeof parseWebhook;
1009
1063
 
1010
- declare const __version__ = "0.2.0";
1064
+ declare const __version__ = "0.3.0";
1011
1065
 
1012
- export { type AddToGroupRequest, type AddToGroupResponse, type BuiltinVariableInfo, type BuiltinVariablesResponse, type BulkDeleteRequest, type BulkDeleteResponse, type ButtonReplyRequest, type CSVExportResponse, type CSVImportRequest, type CSVImportResponse, type CancelMessageResponse, type ContactCreateRequest, type ContactGroupCreateRequest, type ContactGroupItem, type ContactGroupListResponse, type ContactGroupMembersResponse, type ContactGroupUpdateRequest, type ContactItem, type ContactListResponse, type ContactResponse, type ContactSyncHistoryItem, type ContactSyncHistoryResponse, type ContactSyncRequest, type ContactSyncResponse, type ContactSyncStatusResponse, type ContactUpdateRequest, type CreateGroupRequest, type CreateGroupResponseModel, DEFAULT_BASE_URL, type DeviceWebhookEvent, EVENT_HEADER, EVENT_ID_HEADER, type GroupDetailResponse, type GroupInviteInfoResponseModel, type GroupInviteLinkResponseModel, type GroupListItem, type GroupListResponse, type GroupOperationResponseModel, type GroupParticipantItem, type GroupParticipantsResponse, type InteractiveButton, type InteractiveMessageResponse, type InteractiveRow, type InteractiveSection, type InviteInfoRequest, type JoinGroupRequest, type ListReplyRequest, type MediaDownloadResult, type MessageItem, type MessageListResponse, type MessageResponse, type MessageStatsResponse, type MessageWebhookEvent, type PublicDeviceWebhook, type PublicMessageWebhook, type PublicWebhookDeviceData, type PublicWebhookMessageData, type RemoveFromGroupRequest, type RetryMessageResponse, SIGNATURE_HEADER, type SendGroupMediaRequest, type SendGroupResponse, type SendGroupTextRequest, type SendMessageRequest, type SendMessageResponse, type SetGroupAnnounceRequest, type SetGroupEphemeralRequest, type SetGroupLockedRequest, type SetGroupNameRequest, type SetGroupPhotoRequest, type SetGroupTopicRequest, type TemplateCreateRequest, type TemplateItem, type TemplateListResponse, type TemplatePreviewRequest, type TemplatePreviewResponse, type TemplateResponse, type TemplateUpdateRequest, type UpdateParticipantsRequest, WazzapiAPIError, WazzapiClient, WazzapiError, WazzapiMediaError, type WazzapiModel, WazzapiWebhookError, WazzapiWebhookParseError, WazzapiWebhookVerificationError, type WebhookEvent, WebhookHandler, type WebhookPayload, __version__, _decryptWaMedia, _decrypt_wa_media, _mediaInfoBytes, _media_info_bytes, downloadMedia, download_media, generateWebhookSignature, generate_webhook_signature, index as models, parseAddToGroupResponse, parseBuiltinVariableInfo, parseBuiltinVariablesResponse, parseBulkDeleteResponse, parseCSVExportResponse, parseCSVImportResponse, parseCancelMessageResponse, parseContactGroupItem, parseContactGroupListResponse, parseContactGroupMembersResponse, parseContactItem, parseContactListResponse, parseContactResponse, parseContactSyncHistoryItem, parseContactSyncHistoryResponse, parseContactSyncResponse, parseContactSyncStatusResponse, parseContactSyncStatusResponseList, parseCreateGroupResponseModel, parseGroupDetailResponse, parseGroupInviteInfoResponseModel, parseGroupInviteLinkResponseModel, parseGroupListItem, parseGroupListResponse, parseGroupOperationResponseModel, parseGroupParticipantItem, parseGroupParticipantsResponse, parseInteractiveButton, parseInteractiveMessageResponse, parseInteractiveRow, parseInteractiveSection, parseMediaDownloadResult, parseMessageItem, parseMessageListResponse, parseMessageResponse, parseMessageStatsResponse, parsePublicDeviceWebhook, parsePublicMessageWebhook, parsePublicWebhookDeviceData, parsePublicWebhookMessageData, parseRetryMessageResponse, parseSendGroupResponse, parseSendMessageResponse, parseTemplateItem, parseTemplateListResponse, parseTemplatePreviewResponse, parseTemplateResponse, parseWebhook, parseWebhookPayload, parse_webhook, verifyWebhookSignature, verify_webhook_signature };
1066
+ export { type AddToGroupRequest, type AddToGroupResponse, type BuiltinVariableInfo, type BuiltinVariablesResponse, type BulkDeleteRequest, type BulkDeleteResponse, type ButtonReplyRequest, type CSVExportResponse, type CSVImportRequest, type CSVImportResponse, type CancelMessageResponse, type ContactCreateRequest, type ContactGroupCreateRequest, type ContactGroupItem, type ContactGroupListResponse, type ContactGroupMembersResponse, type ContactGroupUpdateRequest, type ContactItem, type ContactListResponse, type ContactResponse, type ContactSyncHistoryItem, type ContactSyncHistoryResponse, type ContactSyncRequest, type ContactSyncResponse, type ContactSyncStatusResponse, type ContactUpdateRequest, type CreateGroupRequest, type CreateGroupResponseModel, DEFAULT_BASE_URL, type DeviceItem, type DeviceListResponse, type DeviceResponse, type DeviceWebhookEvent, EVENT_HEADER, EVENT_ID_HEADER, type GroupDetailResponse, type GroupInviteInfoResponseModel, type GroupInviteLinkResponseModel, type GroupListItem, type GroupListResponse, type GroupOperationResponseModel, type GroupParticipantItem, type GroupParticipantsResponse, type InteractiveButton, type InteractiveMessageResponse, type InteractiveRow, type InteractiveSection, type InviteInfoRequest, type JoinGroupRequest, type ListReplyRequest, type MediaDownloadResult, type MessageItem, type MessageListResponse, type MessageResponse, type MessageStatsResponse, type MessageWebhookEvent, type PublicDeviceWebhook, type PublicMessageWebhook, type PublicWebhookDeviceData, type PublicWebhookMessageData, type RemoveFromGroupRequest, type RetryMessageResponse, SIGNATURE_HEADER, type SendGroupMediaRequest, type SendGroupResponse, type SendGroupTextRequest, type SendMessageRequest, type SendMessageResponse, type SetGroupAnnounceRequest, type SetGroupEphemeralRequest, type SetGroupLockedRequest, type SetGroupNameRequest, type SetGroupPhotoRequest, type SetGroupTopicRequest, type TemplateCreateRequest, type TemplateItem, type TemplateListResponse, type TemplatePreviewRequest, type TemplatePreviewResponse, type TemplateResponse, type TemplateUpdateRequest, type UpdateParticipantsRequest, WazzapiAPIError, WazzapiClient, WazzapiError, WazzapiMediaError, type WazzapiModel, WazzapiWebhookError, WazzapiWebhookParseError, WazzapiWebhookVerificationError, type WebhookEvent, WebhookHandler, type WebhookPayload, __version__, _decryptWaMedia, _decrypt_wa_media, _mediaInfoBytes, _media_info_bytes, downloadMedia, download_media, generateWebhookSignature, generate_webhook_signature, index as models, parseAddToGroupResponse, parseBuiltinVariableInfo, parseBuiltinVariablesResponse, parseBulkDeleteResponse, parseCSVExportResponse, parseCSVImportResponse, parseCancelMessageResponse, parseContactGroupItem, parseContactGroupListResponse, parseContactGroupMembersResponse, parseContactItem, parseContactListResponse, parseContactResponse, parseContactSyncHistoryItem, parseContactSyncHistoryResponse, parseContactSyncResponse, parseContactSyncStatusResponse, parseContactSyncStatusResponseList, parseCreateGroupResponseModel, parseDeviceItem, parseDeviceListResponse, parseDeviceResponse, parseGroupDetailResponse, parseGroupInviteInfoResponseModel, parseGroupInviteLinkResponseModel, parseGroupListItem, parseGroupListResponse, parseGroupOperationResponseModel, parseGroupParticipantItem, parseGroupParticipantsResponse, parseInteractiveButton, parseInteractiveMessageResponse, parseInteractiveRow, parseInteractiveSection, parseMediaDownloadResult, parseMessageItem, parseMessageListResponse, parseMessageResponse, parseMessageStatsResponse, parsePublicDeviceWebhook, parsePublicMessageWebhook, parsePublicWebhookDeviceData, parsePublicWebhookMessageData, parseRetryMessageResponse, parseSendGroupResponse, parseSendMessageResponse, parseTemplateItem, parseTemplateListResponse, parseTemplatePreviewResponse, parseTemplateResponse, parseWebhook, parseWebhookPayload, parse_webhook, verifyWebhookSignature, verify_webhook_signature };
package/dist/index.d.ts CHANGED
@@ -171,6 +171,41 @@ declare function parseContactSyncResponse(input: unknown): ContactSyncResponse;
171
171
  declare function parseContactSyncStatusResponse(input: unknown): ContactSyncStatusResponse;
172
172
  declare function parseContactSyncStatusResponseList(input: unknown): ContactSyncStatusResponse[];
173
173
 
174
+ interface DeviceItem extends WazzapiModel {
175
+ id: string;
176
+ name: string;
177
+ session_name: string;
178
+ status: string;
179
+ is_primary: boolean;
180
+ auto_warmer_enabled: boolean;
181
+ total_messages_sent: number;
182
+ total_messages_received: number;
183
+ contacts_synced_count: number;
184
+ created_at: Date;
185
+ updated_at: Date;
186
+ phone_number?: string | null;
187
+ last_connected_at?: Date | null;
188
+ last_health_check_at?: Date | null;
189
+ last_contact_sync_at?: Date | null;
190
+ last_contact_sync_status?: string | null;
191
+ }
192
+ interface DeviceListResponse extends WazzapiModel {
193
+ devices: DeviceItem[];
194
+ total: number;
195
+ limit: number;
196
+ offset: number;
197
+ }
198
+ interface DeviceResponse extends DeviceItem {
199
+ timezone: string;
200
+ connection_attempts: number;
201
+ daily_message_limit: number;
202
+ message_delay_ms: number;
203
+ backend_id?: string | null;
204
+ }
205
+ declare function parseDeviceItem(input: unknown): DeviceItem;
206
+ declare function parseDeviceListResponse(input: unknown): DeviceListResponse;
207
+ declare function parseDeviceResponse(input: unknown): DeviceResponse;
208
+
174
209
  interface GroupListItem extends WazzapiModel {
175
210
  id: string;
176
211
  name: string;
@@ -621,6 +656,9 @@ type index_ContactSyncStatusResponse = ContactSyncStatusResponse;
621
656
  type index_ContactUpdateRequest = ContactUpdateRequest;
622
657
  type index_CreateGroupRequest = CreateGroupRequest;
623
658
  type index_CreateGroupResponseModel = CreateGroupResponseModel;
659
+ type index_DeviceItem = DeviceItem;
660
+ type index_DeviceListResponse = DeviceListResponse;
661
+ type index_DeviceResponse = DeviceResponse;
624
662
  type index_DeviceWebhookEvent = DeviceWebhookEvent;
625
663
  type index_GroupDetailResponse = GroupDetailResponse;
626
664
  type index_GroupInviteInfoResponseModel = GroupInviteInfoResponseModel;
@@ -690,6 +728,9 @@ declare const index_parseContactSyncResponse: typeof parseContactSyncResponse;
690
728
  declare const index_parseContactSyncStatusResponse: typeof parseContactSyncStatusResponse;
691
729
  declare const index_parseContactSyncStatusResponseList: typeof parseContactSyncStatusResponseList;
692
730
  declare const index_parseCreateGroupResponseModel: typeof parseCreateGroupResponseModel;
731
+ declare const index_parseDeviceItem: typeof parseDeviceItem;
732
+ declare const index_parseDeviceListResponse: typeof parseDeviceListResponse;
733
+ declare const index_parseDeviceResponse: typeof parseDeviceResponse;
693
734
  declare const index_parseGroupDetailResponse: typeof parseGroupDetailResponse;
694
735
  declare const index_parseGroupInviteInfoResponseModel: typeof parseGroupInviteInfoResponseModel;
695
736
  declare const index_parseGroupInviteLinkResponseModel: typeof parseGroupInviteLinkResponseModel;
@@ -720,7 +761,7 @@ declare const index_parseTemplatePreviewResponse: typeof parseTemplatePreviewRes
720
761
  declare const index_parseTemplateResponse: typeof parseTemplateResponse;
721
762
  declare const index_parseWebhookPayload: typeof parseWebhookPayload;
722
763
  declare namespace index {
723
- export { type index_AddToGroupRequest as AddToGroupRequest, type index_AddToGroupResponse as AddToGroupResponse, type index_BuiltinVariableInfo as BuiltinVariableInfo, type index_BuiltinVariablesResponse as BuiltinVariablesResponse, type index_BulkDeleteRequest as BulkDeleteRequest, type index_BulkDeleteResponse as BulkDeleteResponse, type index_ButtonReplyRequest as ButtonReplyRequest, type index_CSVExportResponse as CSVExportResponse, type index_CSVImportRequest as CSVImportRequest, type index_CSVImportResponse as CSVImportResponse, type index_CancelMessageResponse as CancelMessageResponse, type index_ContactCreateRequest as ContactCreateRequest, type index_ContactGroupCreateRequest as ContactGroupCreateRequest, type index_ContactGroupItem as ContactGroupItem, type index_ContactGroupListResponse as ContactGroupListResponse, type index_ContactGroupMembersResponse as ContactGroupMembersResponse, type index_ContactGroupUpdateRequest as ContactGroupUpdateRequest, type index_ContactItem as ContactItem, type index_ContactListResponse as ContactListResponse, type index_ContactResponse as ContactResponse, type index_ContactSyncHistoryItem as ContactSyncHistoryItem, type index_ContactSyncHistoryResponse as ContactSyncHistoryResponse, type index_ContactSyncRequest as ContactSyncRequest, type index_ContactSyncResponse as ContactSyncResponse, type index_ContactSyncStatusResponse as ContactSyncStatusResponse, type index_ContactUpdateRequest as ContactUpdateRequest, type index_CreateGroupRequest as CreateGroupRequest, type index_CreateGroupResponseModel as CreateGroupResponseModel, type index_DeviceWebhookEvent as DeviceWebhookEvent, type index_GroupDetailResponse as GroupDetailResponse, type index_GroupInviteInfoResponseModel as GroupInviteInfoResponseModel, type index_GroupInviteLinkResponseModel as GroupInviteLinkResponseModel, type index_GroupListItem as GroupListItem, type index_GroupListResponse as GroupListResponse, type index_GroupOperationResponseModel as GroupOperationResponseModel, type index_GroupParticipantItem as GroupParticipantItem, type index_GroupParticipantsResponse as GroupParticipantsResponse, type index_InteractiveButton as InteractiveButton, type index_InteractiveMessageResponse as InteractiveMessageResponse, type index_InteractiveRow as InteractiveRow, type index_InteractiveSection as InteractiveSection, type index_InviteInfoRequest as InviteInfoRequest, type index_JoinGroupRequest as JoinGroupRequest, type index_ListReplyRequest as ListReplyRequest, type index_MediaDownloadResult as MediaDownloadResult, type index_MessageItem as MessageItem, type index_MessageListResponse as MessageListResponse, type index_MessageResponse as MessageResponse, type index_MessageStatsResponse as MessageStatsResponse, type index_MessageWebhookEvent as MessageWebhookEvent, type index_PublicDeviceWebhook as PublicDeviceWebhook, type index_PublicMessageWebhook as PublicMessageWebhook, type index_PublicWebhookDeviceData as PublicWebhookDeviceData, type index_PublicWebhookMessageData as PublicWebhookMessageData, type index_RemoveFromGroupRequest as RemoveFromGroupRequest, type index_RetryMessageResponse as RetryMessageResponse, type index_SendGroupMediaRequest as SendGroupMediaRequest, type index_SendGroupResponse as SendGroupResponse, type index_SendGroupTextRequest as SendGroupTextRequest, type index_SendMessageRequest as SendMessageRequest, type index_SendMessageResponse as SendMessageResponse, type index_SetGroupAnnounceRequest as SetGroupAnnounceRequest, type index_SetGroupEphemeralRequest as SetGroupEphemeralRequest, type index_SetGroupLockedRequest as SetGroupLockedRequest, type index_SetGroupNameRequest as SetGroupNameRequest, type index_SetGroupPhotoRequest as SetGroupPhotoRequest, type index_SetGroupTopicRequest as SetGroupTopicRequest, type index_TemplateCreateRequest as TemplateCreateRequest, type index_TemplateItem as TemplateItem, type index_TemplateListResponse as TemplateListResponse, type index_TemplatePreviewRequest as TemplatePreviewRequest, type index_TemplatePreviewResponse as TemplatePreviewResponse, type index_TemplateResponse as TemplateResponse, type index_TemplateUpdateRequest as TemplateUpdateRequest, type index_UpdateParticipantsRequest as UpdateParticipantsRequest, type index_WazzapiModel as WazzapiModel, type index_WebhookEvent as WebhookEvent, type index_WebhookPayload as WebhookPayload, index_parseAddToGroupResponse as parseAddToGroupResponse, index_parseBuiltinVariableInfo as parseBuiltinVariableInfo, index_parseBuiltinVariablesResponse as parseBuiltinVariablesResponse, index_parseBulkDeleteResponse as parseBulkDeleteResponse, index_parseCSVExportResponse as parseCSVExportResponse, index_parseCSVImportResponse as parseCSVImportResponse, index_parseCancelMessageResponse as parseCancelMessageResponse, index_parseContactGroupItem as parseContactGroupItem, index_parseContactGroupListResponse as parseContactGroupListResponse, index_parseContactGroupMembersResponse as parseContactGroupMembersResponse, index_parseContactItem as parseContactItem, index_parseContactListResponse as parseContactListResponse, index_parseContactResponse as parseContactResponse, index_parseContactSyncHistoryItem as parseContactSyncHistoryItem, index_parseContactSyncHistoryResponse as parseContactSyncHistoryResponse, index_parseContactSyncResponse as parseContactSyncResponse, index_parseContactSyncStatusResponse as parseContactSyncStatusResponse, index_parseContactSyncStatusResponseList as parseContactSyncStatusResponseList, index_parseCreateGroupResponseModel as parseCreateGroupResponseModel, index_parseGroupDetailResponse as parseGroupDetailResponse, index_parseGroupInviteInfoResponseModel as parseGroupInviteInfoResponseModel, index_parseGroupInviteLinkResponseModel as parseGroupInviteLinkResponseModel, index_parseGroupListItem as parseGroupListItem, index_parseGroupListResponse as parseGroupListResponse, index_parseGroupOperationResponseModel as parseGroupOperationResponseModel, index_parseGroupParticipantItem as parseGroupParticipantItem, index_parseGroupParticipantsResponse as parseGroupParticipantsResponse, index_parseInteractiveButton as parseInteractiveButton, index_parseInteractiveMessageResponse as parseInteractiveMessageResponse, index_parseInteractiveRow as parseInteractiveRow, index_parseInteractiveSection as parseInteractiveSection, index_parseMediaDownloadResult as parseMediaDownloadResult, index_parseMessageItem as parseMessageItem, index_parseMessageListResponse as parseMessageListResponse, index_parseMessageResponse as parseMessageResponse, index_parseMessageStatsResponse as parseMessageStatsResponse, index_parsePublicDeviceWebhook as parsePublicDeviceWebhook, index_parsePublicMessageWebhook as parsePublicMessageWebhook, index_parsePublicWebhookDeviceData as parsePublicWebhookDeviceData, index_parsePublicWebhookMessageData as parsePublicWebhookMessageData, index_parseRetryMessageResponse as parseRetryMessageResponse, index_parseSendGroupResponse as parseSendGroupResponse, index_parseSendMessageResponse as parseSendMessageResponse, index_parseTemplateItem as parseTemplateItem, index_parseTemplateListResponse as parseTemplateListResponse, index_parseTemplatePreviewResponse as parseTemplatePreviewResponse, index_parseTemplateResponse as parseTemplateResponse, index_parseWebhookPayload as parseWebhookPayload };
764
+ export { type index_AddToGroupRequest as AddToGroupRequest, type index_AddToGroupResponse as AddToGroupResponse, type index_BuiltinVariableInfo as BuiltinVariableInfo, type index_BuiltinVariablesResponse as BuiltinVariablesResponse, type index_BulkDeleteRequest as BulkDeleteRequest, type index_BulkDeleteResponse as BulkDeleteResponse, type index_ButtonReplyRequest as ButtonReplyRequest, type index_CSVExportResponse as CSVExportResponse, type index_CSVImportRequest as CSVImportRequest, type index_CSVImportResponse as CSVImportResponse, type index_CancelMessageResponse as CancelMessageResponse, type index_ContactCreateRequest as ContactCreateRequest, type index_ContactGroupCreateRequest as ContactGroupCreateRequest, type index_ContactGroupItem as ContactGroupItem, type index_ContactGroupListResponse as ContactGroupListResponse, type index_ContactGroupMembersResponse as ContactGroupMembersResponse, type index_ContactGroupUpdateRequest as ContactGroupUpdateRequest, type index_ContactItem as ContactItem, type index_ContactListResponse as ContactListResponse, type index_ContactResponse as ContactResponse, type index_ContactSyncHistoryItem as ContactSyncHistoryItem, type index_ContactSyncHistoryResponse as ContactSyncHistoryResponse, type index_ContactSyncRequest as ContactSyncRequest, type index_ContactSyncResponse as ContactSyncResponse, type index_ContactSyncStatusResponse as ContactSyncStatusResponse, type index_ContactUpdateRequest as ContactUpdateRequest, type index_CreateGroupRequest as CreateGroupRequest, type index_CreateGroupResponseModel as CreateGroupResponseModel, type index_DeviceItem as DeviceItem, type index_DeviceListResponse as DeviceListResponse, type index_DeviceResponse as DeviceResponse, type index_DeviceWebhookEvent as DeviceWebhookEvent, type index_GroupDetailResponse as GroupDetailResponse, type index_GroupInviteInfoResponseModel as GroupInviteInfoResponseModel, type index_GroupInviteLinkResponseModel as GroupInviteLinkResponseModel, type index_GroupListItem as GroupListItem, type index_GroupListResponse as GroupListResponse, type index_GroupOperationResponseModel as GroupOperationResponseModel, type index_GroupParticipantItem as GroupParticipantItem, type index_GroupParticipantsResponse as GroupParticipantsResponse, type index_InteractiveButton as InteractiveButton, type index_InteractiveMessageResponse as InteractiveMessageResponse, type index_InteractiveRow as InteractiveRow, type index_InteractiveSection as InteractiveSection, type index_InviteInfoRequest as InviteInfoRequest, type index_JoinGroupRequest as JoinGroupRequest, type index_ListReplyRequest as ListReplyRequest, type index_MediaDownloadResult as MediaDownloadResult, type index_MessageItem as MessageItem, type index_MessageListResponse as MessageListResponse, type index_MessageResponse as MessageResponse, type index_MessageStatsResponse as MessageStatsResponse, type index_MessageWebhookEvent as MessageWebhookEvent, type index_PublicDeviceWebhook as PublicDeviceWebhook, type index_PublicMessageWebhook as PublicMessageWebhook, type index_PublicWebhookDeviceData as PublicWebhookDeviceData, type index_PublicWebhookMessageData as PublicWebhookMessageData, type index_RemoveFromGroupRequest as RemoveFromGroupRequest, type index_RetryMessageResponse as RetryMessageResponse, type index_SendGroupMediaRequest as SendGroupMediaRequest, type index_SendGroupResponse as SendGroupResponse, type index_SendGroupTextRequest as SendGroupTextRequest, type index_SendMessageRequest as SendMessageRequest, type index_SendMessageResponse as SendMessageResponse, type index_SetGroupAnnounceRequest as SetGroupAnnounceRequest, type index_SetGroupEphemeralRequest as SetGroupEphemeralRequest, type index_SetGroupLockedRequest as SetGroupLockedRequest, type index_SetGroupNameRequest as SetGroupNameRequest, type index_SetGroupPhotoRequest as SetGroupPhotoRequest, type index_SetGroupTopicRequest as SetGroupTopicRequest, type index_TemplateCreateRequest as TemplateCreateRequest, type index_TemplateItem as TemplateItem, type index_TemplateListResponse as TemplateListResponse, type index_TemplatePreviewRequest as TemplatePreviewRequest, type index_TemplatePreviewResponse as TemplatePreviewResponse, type index_TemplateResponse as TemplateResponse, type index_TemplateUpdateRequest as TemplateUpdateRequest, type index_UpdateParticipantsRequest as UpdateParticipantsRequest, type index_WazzapiModel as WazzapiModel, type index_WebhookEvent as WebhookEvent, type index_WebhookPayload as WebhookPayload, index_parseAddToGroupResponse as parseAddToGroupResponse, index_parseBuiltinVariableInfo as parseBuiltinVariableInfo, index_parseBuiltinVariablesResponse as parseBuiltinVariablesResponse, index_parseBulkDeleteResponse as parseBulkDeleteResponse, index_parseCSVExportResponse as parseCSVExportResponse, index_parseCSVImportResponse as parseCSVImportResponse, index_parseCancelMessageResponse as parseCancelMessageResponse, index_parseContactGroupItem as parseContactGroupItem, index_parseContactGroupListResponse as parseContactGroupListResponse, index_parseContactGroupMembersResponse as parseContactGroupMembersResponse, index_parseContactItem as parseContactItem, index_parseContactListResponse as parseContactListResponse, index_parseContactResponse as parseContactResponse, index_parseContactSyncHistoryItem as parseContactSyncHistoryItem, index_parseContactSyncHistoryResponse as parseContactSyncHistoryResponse, index_parseContactSyncResponse as parseContactSyncResponse, index_parseContactSyncStatusResponse as parseContactSyncStatusResponse, index_parseContactSyncStatusResponseList as parseContactSyncStatusResponseList, index_parseCreateGroupResponseModel as parseCreateGroupResponseModel, index_parseDeviceItem as parseDeviceItem, index_parseDeviceListResponse as parseDeviceListResponse, index_parseDeviceResponse as parseDeviceResponse, index_parseGroupDetailResponse as parseGroupDetailResponse, index_parseGroupInviteInfoResponseModel as parseGroupInviteInfoResponseModel, index_parseGroupInviteLinkResponseModel as parseGroupInviteLinkResponseModel, index_parseGroupListItem as parseGroupListItem, index_parseGroupListResponse as parseGroupListResponse, index_parseGroupOperationResponseModel as parseGroupOperationResponseModel, index_parseGroupParticipantItem as parseGroupParticipantItem, index_parseGroupParticipantsResponse as parseGroupParticipantsResponse, index_parseInteractiveButton as parseInteractiveButton, index_parseInteractiveMessageResponse as parseInteractiveMessageResponse, index_parseInteractiveRow as parseInteractiveRow, index_parseInteractiveSection as parseInteractiveSection, index_parseMediaDownloadResult as parseMediaDownloadResult, index_parseMessageItem as parseMessageItem, index_parseMessageListResponse as parseMessageListResponse, index_parseMessageResponse as parseMessageResponse, index_parseMessageStatsResponse as parseMessageStatsResponse, index_parsePublicDeviceWebhook as parsePublicDeviceWebhook, index_parsePublicMessageWebhook as parsePublicMessageWebhook, index_parsePublicWebhookDeviceData as parsePublicWebhookDeviceData, index_parsePublicWebhookMessageData as parsePublicWebhookMessageData, index_parseRetryMessageResponse as parseRetryMessageResponse, index_parseSendGroupResponse as parseSendGroupResponse, index_parseSendMessageResponse as parseSendMessageResponse, index_parseTemplateItem as parseTemplateItem, index_parseTemplateListResponse as parseTemplateListResponse, index_parseTemplatePreviewResponse as parseTemplatePreviewResponse, index_parseTemplateResponse as parseTemplateResponse, index_parseWebhookPayload as parseWebhookPayload };
724
765
  }
725
766
 
726
767
  type JsonObject = Record<string, unknown>;
@@ -791,6 +832,18 @@ declare class ContactsResource extends BaseResource {
791
832
  delete(contactId: string): Promise<void>;
792
833
  }
793
834
 
835
+ declare class DevicesResource extends BaseResource {
836
+ list(options?: {
837
+ limit?: number;
838
+ offset?: number;
839
+ status?: string;
840
+ search?: string;
841
+ sort_by?: string;
842
+ sort_order?: string;
843
+ }): Promise<DeviceListResponse>;
844
+ get(deviceId: string): Promise<DeviceResponse>;
845
+ }
846
+
794
847
  declare class GroupsResource extends BaseResource {
795
848
  list(options: {
796
849
  session_name: string;
@@ -937,6 +990,7 @@ interface WazzapiHttpConfig {
937
990
  declare class WazzapiClient {
938
991
  readonly http: WazzapiHttpConfig;
939
992
  readonly contacts: ContactsResource;
993
+ readonly devices: DevicesResource;
940
994
  readonly groups: GroupsResource;
941
995
  readonly messages: MessagesResource;
942
996
  readonly templates: TemplatesResource;
@@ -1007,6 +1061,6 @@ declare const generate_webhook_signature: typeof generateWebhookSignature;
1007
1061
  declare const verify_webhook_signature: typeof verifyWebhookSignature;
1008
1062
  declare const parse_webhook: typeof parseWebhook;
1009
1063
 
1010
- declare const __version__ = "0.2.0";
1064
+ declare const __version__ = "0.3.0";
1011
1065
 
1012
- export { type AddToGroupRequest, type AddToGroupResponse, type BuiltinVariableInfo, type BuiltinVariablesResponse, type BulkDeleteRequest, type BulkDeleteResponse, type ButtonReplyRequest, type CSVExportResponse, type CSVImportRequest, type CSVImportResponse, type CancelMessageResponse, type ContactCreateRequest, type ContactGroupCreateRequest, type ContactGroupItem, type ContactGroupListResponse, type ContactGroupMembersResponse, type ContactGroupUpdateRequest, type ContactItem, type ContactListResponse, type ContactResponse, type ContactSyncHistoryItem, type ContactSyncHistoryResponse, type ContactSyncRequest, type ContactSyncResponse, type ContactSyncStatusResponse, type ContactUpdateRequest, type CreateGroupRequest, type CreateGroupResponseModel, DEFAULT_BASE_URL, type DeviceWebhookEvent, EVENT_HEADER, EVENT_ID_HEADER, type GroupDetailResponse, type GroupInviteInfoResponseModel, type GroupInviteLinkResponseModel, type GroupListItem, type GroupListResponse, type GroupOperationResponseModel, type GroupParticipantItem, type GroupParticipantsResponse, type InteractiveButton, type InteractiveMessageResponse, type InteractiveRow, type InteractiveSection, type InviteInfoRequest, type JoinGroupRequest, type ListReplyRequest, type MediaDownloadResult, type MessageItem, type MessageListResponse, type MessageResponse, type MessageStatsResponse, type MessageWebhookEvent, type PublicDeviceWebhook, type PublicMessageWebhook, type PublicWebhookDeviceData, type PublicWebhookMessageData, type RemoveFromGroupRequest, type RetryMessageResponse, SIGNATURE_HEADER, type SendGroupMediaRequest, type SendGroupResponse, type SendGroupTextRequest, type SendMessageRequest, type SendMessageResponse, type SetGroupAnnounceRequest, type SetGroupEphemeralRequest, type SetGroupLockedRequest, type SetGroupNameRequest, type SetGroupPhotoRequest, type SetGroupTopicRequest, type TemplateCreateRequest, type TemplateItem, type TemplateListResponse, type TemplatePreviewRequest, type TemplatePreviewResponse, type TemplateResponse, type TemplateUpdateRequest, type UpdateParticipantsRequest, WazzapiAPIError, WazzapiClient, WazzapiError, WazzapiMediaError, type WazzapiModel, WazzapiWebhookError, WazzapiWebhookParseError, WazzapiWebhookVerificationError, type WebhookEvent, WebhookHandler, type WebhookPayload, __version__, _decryptWaMedia, _decrypt_wa_media, _mediaInfoBytes, _media_info_bytes, downloadMedia, download_media, generateWebhookSignature, generate_webhook_signature, index as models, parseAddToGroupResponse, parseBuiltinVariableInfo, parseBuiltinVariablesResponse, parseBulkDeleteResponse, parseCSVExportResponse, parseCSVImportResponse, parseCancelMessageResponse, parseContactGroupItem, parseContactGroupListResponse, parseContactGroupMembersResponse, parseContactItem, parseContactListResponse, parseContactResponse, parseContactSyncHistoryItem, parseContactSyncHistoryResponse, parseContactSyncResponse, parseContactSyncStatusResponse, parseContactSyncStatusResponseList, parseCreateGroupResponseModel, parseGroupDetailResponse, parseGroupInviteInfoResponseModel, parseGroupInviteLinkResponseModel, parseGroupListItem, parseGroupListResponse, parseGroupOperationResponseModel, parseGroupParticipantItem, parseGroupParticipantsResponse, parseInteractiveButton, parseInteractiveMessageResponse, parseInteractiveRow, parseInteractiveSection, parseMediaDownloadResult, parseMessageItem, parseMessageListResponse, parseMessageResponse, parseMessageStatsResponse, parsePublicDeviceWebhook, parsePublicMessageWebhook, parsePublicWebhookDeviceData, parsePublicWebhookMessageData, parseRetryMessageResponse, parseSendGroupResponse, parseSendMessageResponse, parseTemplateItem, parseTemplateListResponse, parseTemplatePreviewResponse, parseTemplateResponse, parseWebhook, parseWebhookPayload, parse_webhook, verifyWebhookSignature, verify_webhook_signature };
1066
+ export { type AddToGroupRequest, type AddToGroupResponse, type BuiltinVariableInfo, type BuiltinVariablesResponse, type BulkDeleteRequest, type BulkDeleteResponse, type ButtonReplyRequest, type CSVExportResponse, type CSVImportRequest, type CSVImportResponse, type CancelMessageResponse, type ContactCreateRequest, type ContactGroupCreateRequest, type ContactGroupItem, type ContactGroupListResponse, type ContactGroupMembersResponse, type ContactGroupUpdateRequest, type ContactItem, type ContactListResponse, type ContactResponse, type ContactSyncHistoryItem, type ContactSyncHistoryResponse, type ContactSyncRequest, type ContactSyncResponse, type ContactSyncStatusResponse, type ContactUpdateRequest, type CreateGroupRequest, type CreateGroupResponseModel, DEFAULT_BASE_URL, type DeviceItem, type DeviceListResponse, type DeviceResponse, type DeviceWebhookEvent, EVENT_HEADER, EVENT_ID_HEADER, type GroupDetailResponse, type GroupInviteInfoResponseModel, type GroupInviteLinkResponseModel, type GroupListItem, type GroupListResponse, type GroupOperationResponseModel, type GroupParticipantItem, type GroupParticipantsResponse, type InteractiveButton, type InteractiveMessageResponse, type InteractiveRow, type InteractiveSection, type InviteInfoRequest, type JoinGroupRequest, type ListReplyRequest, type MediaDownloadResult, type MessageItem, type MessageListResponse, type MessageResponse, type MessageStatsResponse, type MessageWebhookEvent, type PublicDeviceWebhook, type PublicMessageWebhook, type PublicWebhookDeviceData, type PublicWebhookMessageData, type RemoveFromGroupRequest, type RetryMessageResponse, SIGNATURE_HEADER, type SendGroupMediaRequest, type SendGroupResponse, type SendGroupTextRequest, type SendMessageRequest, type SendMessageResponse, type SetGroupAnnounceRequest, type SetGroupEphemeralRequest, type SetGroupLockedRequest, type SetGroupNameRequest, type SetGroupPhotoRequest, type SetGroupTopicRequest, type TemplateCreateRequest, type TemplateItem, type TemplateListResponse, type TemplatePreviewRequest, type TemplatePreviewResponse, type TemplateResponse, type TemplateUpdateRequest, type UpdateParticipantsRequest, WazzapiAPIError, WazzapiClient, WazzapiError, WazzapiMediaError, type WazzapiModel, WazzapiWebhookError, WazzapiWebhookParseError, WazzapiWebhookVerificationError, type WebhookEvent, WebhookHandler, type WebhookPayload, __version__, _decryptWaMedia, _decrypt_wa_media, _mediaInfoBytes, _media_info_bytes, downloadMedia, download_media, generateWebhookSignature, generate_webhook_signature, index as models, parseAddToGroupResponse, parseBuiltinVariableInfo, parseBuiltinVariablesResponse, parseBulkDeleteResponse, parseCSVExportResponse, parseCSVImportResponse, parseCancelMessageResponse, parseContactGroupItem, parseContactGroupListResponse, parseContactGroupMembersResponse, parseContactItem, parseContactListResponse, parseContactResponse, parseContactSyncHistoryItem, parseContactSyncHistoryResponse, parseContactSyncResponse, parseContactSyncStatusResponse, parseContactSyncStatusResponseList, parseCreateGroupResponseModel, parseDeviceItem, parseDeviceListResponse, parseDeviceResponse, parseGroupDetailResponse, parseGroupInviteInfoResponseModel, parseGroupInviteLinkResponseModel, parseGroupListItem, parseGroupListResponse, parseGroupOperationResponseModel, parseGroupParticipantItem, parseGroupParticipantsResponse, parseInteractiveButton, parseInteractiveMessageResponse, parseInteractiveRow, parseInteractiveSection, parseMediaDownloadResult, parseMessageItem, parseMessageListResponse, parseMessageResponse, parseMessageStatsResponse, parsePublicDeviceWebhook, parsePublicMessageWebhook, parsePublicWebhookDeviceData, parsePublicWebhookMessageData, parseRetryMessageResponse, parseSendGroupResponse, parseSendMessageResponse, parseTemplateItem, parseTemplateListResponse, parseTemplatePreviewResponse, parseTemplateResponse, parseWebhook, parseWebhookPayload, parse_webhook, verifyWebhookSignature, verify_webhook_signature };
package/dist/index.js CHANGED
@@ -166,6 +166,9 @@ __export(models_exports, {
166
166
  parseContactSyncStatusResponse: () => parseContactSyncStatusResponse,
167
167
  parseContactSyncStatusResponseList: () => parseContactSyncStatusResponseList,
168
168
  parseCreateGroupResponseModel: () => parseCreateGroupResponseModel,
169
+ parseDeviceItem: () => parseDeviceItem,
170
+ parseDeviceListResponse: () => parseDeviceListResponse,
171
+ parseDeviceResponse: () => parseDeviceResponse,
169
172
  parseGroupDetailResponse: () => parseGroupDetailResponse,
170
173
  parseGroupInviteInfoResponseModel: () => parseGroupInviteInfoResponseModel,
171
174
  parseGroupInviteLinkResponseModel: () => parseGroupInviteLinkResponseModel,
@@ -280,6 +283,32 @@ function parseContactSyncStatusResponseList(input) {
280
283
  return mapArray(input, parseContactSyncStatusResponse);
281
284
  }
282
285
 
286
+ // src/models/devices.ts
287
+ function parseDeviceItem(input) {
288
+ return withDateFields(input, [
289
+ "created_at",
290
+ "updated_at",
291
+ "last_connected_at",
292
+ "last_health_check_at",
293
+ "last_contact_sync_at"
294
+ ]);
295
+ }
296
+ function parseDeviceListResponse(input) {
297
+ const output = cloneObject(input);
298
+ const typedInput = typeof input === "object" && input ? input : void 0;
299
+ output.devices = mapArray(typedInput?.devices, parseDeviceItem);
300
+ return output;
301
+ }
302
+ function parseDeviceResponse(input) {
303
+ return withDateFields(input, [
304
+ "created_at",
305
+ "updated_at",
306
+ "last_connected_at",
307
+ "last_health_check_at",
308
+ "last_contact_sync_at"
309
+ ]);
310
+ }
311
+
283
312
  // src/models/groups.ts
284
313
  function parseGroupListItem(input) {
285
314
  const output = cloneObject(input);
@@ -667,6 +696,21 @@ var ContactsResource = class extends BaseResource {
667
696
  }
668
697
  };
669
698
 
699
+ // src/resources/devices.ts
700
+ var DevicesResource = class extends BaseResource {
701
+ async list(options) {
702
+ return this._client._request("GET", "/api/v1/devices", {
703
+ params: options,
704
+ responseParser: parseDeviceListResponse
705
+ });
706
+ }
707
+ async get(deviceId) {
708
+ return this._client._request("GET", `/api/v1/devices/${deviceId}`, {
709
+ responseParser: parseDeviceResponse
710
+ });
711
+ }
712
+ };
713
+
670
714
  // src/resources/groups.ts
671
715
  var GroupsResource = class extends BaseResource {
672
716
  async list(options) {
@@ -1072,6 +1116,7 @@ var WazzapiClient = class {
1072
1116
  fetch: fetcher
1073
1117
  };
1074
1118
  this.contacts = new ContactsResource(this);
1119
+ this.devices = new DevicesResource(this);
1075
1120
  this.groups = new GroupsResource(this);
1076
1121
  this.messages = new MessagesResource(this);
1077
1122
  this.templates = new TemplatesResource(this);
@@ -1382,7 +1427,7 @@ var verify_webhook_signature = verifyWebhookSignature;
1382
1427
  var parse_webhook = parseWebhook;
1383
1428
 
1384
1429
  // src/index.ts
1385
- var __version__ = "0.2.0";
1430
+ var __version__ = "0.3.0";
1386
1431
  export {
1387
1432
  DEFAULT_BASE_URL,
1388
1433
  EVENT_HEADER,
@@ -1425,6 +1470,9 @@ export {
1425
1470
  parseContactSyncStatusResponse,
1426
1471
  parseContactSyncStatusResponseList,
1427
1472
  parseCreateGroupResponseModel,
1473
+ parseDeviceItem,
1474
+ parseDeviceListResponse,
1475
+ parseDeviceResponse,
1428
1476
  parseGroupDetailResponse,
1429
1477
  parseGroupInviteInfoResponseModel,
1430
1478
  parseGroupInviteLinkResponseModel,
package/docs/README.md CHANGED
@@ -4,6 +4,7 @@ Official documentation for the WazzAPI Node.js and TypeScript SDK.
4
4
 
5
5
  ## What you can do
6
6
 
7
+ - Inspect WhatsApp devices and read their connection metadata
7
8
  - Send direct WhatsApp messages, including text, image, video, voice, document, location, contact cards, buttons, and lists
8
9
  - Manage WhatsApp groups, including participants, invite links, and group settings
9
10
  - Manage contacts and contact groups
@@ -52,6 +53,7 @@ console.log(response.message_id);
52
53
 
53
54
  - [Authentication](./authentication.md)
54
55
  - [Client](./client.md)
56
+ - [Devices](./devices.md)
55
57
  - [Messages](./messages.md)
56
58
  - [Groups](./groups.md)
57
59
  - [Contacts](./contacts.md)
package/docs/client.md CHANGED
@@ -63,6 +63,7 @@ const client = new WazzapiClient({
63
63
  The client exposes resources as properties:
64
64
 
65
65
  - `client.contacts` — contact and contact-group management
66
+ - `client.devices` — organization device listing and device detail lookup
66
67
  - `client.groups` — WhatsApp group management
67
68
  - `client.messages` — send and manage messages
68
69
  - `client.templates` — template management
@@ -0,0 +1,39 @@
1
+ # Devices
2
+
3
+ Inspect WhatsApp devices available to your organization.
4
+
5
+ ## List devices
6
+
7
+ ```ts
8
+ import { WazzapiClient } from "@wazzapi/wazzapi";
9
+
10
+ const client = new WazzapiClient({ apiKey: process.env.WAZZAPI_API_KEY });
11
+ const response = await client.devices.list({
12
+ limit: 50,
13
+ status: "connected",
14
+ sort_by: "created_at",
15
+ sort_order: "desc",
16
+ });
17
+
18
+ for (const device of response.devices) {
19
+ console.log(device.id, device.name, device.status, device.phone_number);
20
+ }
21
+ ```
22
+
23
+ Supported filters from the public API reference include:
24
+
25
+ - `limit`
26
+ - `offset`
27
+ - `status`
28
+ - `search`
29
+ - `sort_by`
30
+ - `sort_order`
31
+
32
+ ## Get a device
33
+
34
+ ```ts
35
+ const device = await client.devices.get("device-id");
36
+
37
+ console.log(device.name, device.session_name, device.timezone);
38
+ console.log(device.daily_message_limit, device.message_delay_ms);
39
+ ```
@@ -0,0 +1,13 @@
1
+ import { WazzapiClient } from "../src";
2
+
3
+ const client = new WazzapiClient({ apiKey: process.env.WAZZAPI_API_KEY });
4
+ const response = await client.devices.list({
5
+ limit: 20,
6
+ status: "connected",
7
+ sort_by: "created_at",
8
+ sort_order: "desc",
9
+ });
10
+
11
+ response.devices.forEach((device) => {
12
+ console.log(device.id, device.name, device.status, device.phone_number);
13
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazzapi/wazzapi",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Typed Node.js SDK for WazzAPI",
5
5
  "license": "MIT",
6
6
  "type": "module",