meta-cloud-api 0.2.44 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +180 -64
  2. package/dist/{BusinessProfileApi-DE7Nnuy_.d.ts → BusinessProfileApi-WXscSgo-.d.ts} +4 -3
  3. package/dist/{EncryptionApi-PHxeI2G_.d.ts → EncryptionApi-D7pt-OXT.d.ts} +3 -2
  4. package/dist/FlowApi-UAvzhJfV.d.ts +136 -0
  5. package/dist/{MediaApi-B2vtjiCm.d.ts → MediaApi-BrEKpqi_.d.ts} +3 -2
  6. package/dist/{MessageApi-ptFlWg3O.d.ts → MessageApi-Circorzz.d.ts} +4 -3
  7. package/dist/{PhoneNumberApi-DMb_G3uw.d.ts → PhoneNumberApi-DKlu9PHl.d.ts} +4 -3
  8. package/dist/{QrCodeApi-D3rVKuxV.d.ts → QrCodeApi-7vDwIBHR.d.ts} +3 -2
  9. package/dist/{RegistrationApi-DZBJWAZS.d.ts → RegistrationApi-qO_qoti9.d.ts} +4 -3
  10. package/dist/{TemplateApi-BFeM9qJS.d.ts → TemplateApi-xGgIZt89.d.ts} +5 -4
  11. package/dist/{TwoStepVerificationApi-6jV5pDxS.d.ts → TwoStepVerificationApi-DfNPIz-C.d.ts} +3 -2
  12. package/dist/{WabaApi-B8Gv2UNE.d.ts → WabaApi-DqQi_68m.d.ts} +3 -2
  13. package/dist/{WebhookHandler-Bxxi6SdT.d.ts → WebhookProcessor-ByAe7Kf_.d.ts} +22 -32
  14. package/dist/WhatsApp-BIBtT-y9.d.ts +82 -0
  15. package/dist/api/encryption/index.d.ts +10 -0
  16. package/dist/api/encryption/index.js +2 -0
  17. package/dist/api/flow/index.d.ts +10 -0
  18. package/dist/api/flow/index.js +2 -0
  19. package/dist/api/index.d.ts +16 -0
  20. package/dist/api/index.js +2 -0
  21. package/dist/api/media/index.d.ts +10 -0
  22. package/dist/api/media/index.js +2 -0
  23. package/dist/{features → api}/messages/index.d.ts +6 -5
  24. package/dist/api/messages/index.js +2 -0
  25. package/dist/{features → api}/phone/index.d.ts +6 -5
  26. package/dist/api/phone/index.js +2 -0
  27. package/dist/{features → api}/profile/index.d.ts +6 -5
  28. package/dist/api/profile/index.js +2 -0
  29. package/dist/api/qrCode/index.d.ts +10 -0
  30. package/dist/api/qrCode/index.js +2 -0
  31. package/dist/api/registration/index.d.ts +10 -0
  32. package/dist/api/registration/index.js +2 -0
  33. package/dist/{features → api}/template/index.d.ts +6 -5
  34. package/dist/api/template/index.js +2 -0
  35. package/dist/api/twoStepVerification/index.d.ts +10 -0
  36. package/dist/api/twoStepVerification/index.js +2 -0
  37. package/dist/api/waba/index.d.ts +10 -0
  38. package/dist/api/waba/index.js +2 -0
  39. package/dist/api/waba/index.js.map +1 -0
  40. package/dist/base-CdGDdVEl.d.ts +18 -0
  41. package/dist/{chunk-2NJVBJUN.js → chunk-7QBIZCJ4.js} +2 -2
  42. package/dist/chunk-7QBIZCJ4.js.map +1 -0
  43. package/dist/chunk-AMHQGG6Z.js +2 -0
  44. package/dist/{chunk-4C666HHU.js.map → chunk-AMHQGG6Z.js.map} +1 -1
  45. package/dist/chunk-B7DCL6I7.js +10 -0
  46. package/dist/chunk-B7DCL6I7.js.map +1 -0
  47. package/dist/{chunk-7GL74SXM.js → chunk-CRZ7EUYR.js} +2 -2
  48. package/dist/chunk-CRZ7EUYR.js.map +1 -0
  49. package/dist/chunk-FKXSL2JK.js +3 -0
  50. package/dist/chunk-FKXSL2JK.js.map +1 -0
  51. package/dist/chunk-FSKBLPGE.js +2 -0
  52. package/dist/chunk-FSKBLPGE.js.map +1 -0
  53. package/dist/chunk-HJGN3PO4.js +3 -0
  54. package/dist/chunk-HJGN3PO4.js.map +1 -0
  55. package/dist/{chunk-7NQLQPLH.js → chunk-IYSR44P6.js} +2 -2
  56. package/dist/chunk-IYSR44P6.js.map +1 -0
  57. package/dist/chunk-JC6YMVID.js +2 -0
  58. package/dist/chunk-JC6YMVID.js.map +1 -0
  59. package/dist/{chunk-GT3XQN7Y.js → chunk-JPAV644F.js} +2 -2
  60. package/dist/chunk-JPAV644F.js.map +1 -0
  61. package/dist/{chunk-XPPDOFBN.js → chunk-JXCLRKQ7.js} +2 -2
  62. package/dist/chunk-JXCLRKQ7.js.map +1 -0
  63. package/dist/chunk-KMAH6636.js +2 -0
  64. package/dist/chunk-KMAH6636.js.map +1 -0
  65. package/dist/{chunk-5JGM556C.js → chunk-L4ESAO2S.js} +2 -2
  66. package/dist/chunk-L4ESAO2S.js.map +1 -0
  67. package/dist/chunk-LV3TULSI.js +2 -0
  68. package/dist/chunk-LV3TULSI.js.map +1 -0
  69. package/dist/{chunk-BZ5QDXNR.js → chunk-MJEG3K4V.js} +2 -2
  70. package/dist/chunk-MJEG3K4V.js.map +1 -0
  71. package/dist/chunk-NLF2JGYY.js +2 -0
  72. package/dist/chunk-NLF2JGYY.js.map +1 -0
  73. package/dist/chunk-OA2SW4AF.js +2 -0
  74. package/dist/chunk-OA2SW4AF.js.map +1 -0
  75. package/dist/chunk-PHPQ5HP3.js +2 -0
  76. package/dist/chunk-PHPQ5HP3.js.map +1 -0
  77. package/dist/chunk-RIL6QABY.js +2 -0
  78. package/dist/chunk-RIL6QABY.js.map +1 -0
  79. package/dist/chunk-RWCVPWRC.js +2 -0
  80. package/dist/chunk-RWCVPWRC.js.map +1 -0
  81. package/dist/chunk-SNNRWNGZ.js +2 -0
  82. package/dist/chunk-SNNRWNGZ.js.map +1 -0
  83. package/dist/chunk-UCBYECNQ.js +2 -0
  84. package/dist/chunk-UCBYECNQ.js.map +1 -0
  85. package/dist/chunk-VHAODWCN.js +2 -0
  86. package/dist/chunk-VHAODWCN.js.map +1 -0
  87. package/dist/chunk-WGGN32O2.js +2 -0
  88. package/dist/chunk-WGGN32O2.js.map +1 -0
  89. package/dist/{FlowApi-CASVC-Al.d.ts → common-DDXsNyLF.d.ts} +2 -133
  90. package/dist/core/webhook/frameworks/express.d.ts +48 -0
  91. package/dist/core/webhook/frameworks/express.js +2 -0
  92. package/dist/core/webhook/frameworks/express.js.map +1 -0
  93. package/dist/core/webhook/frameworks/nextjs.d.ts +44 -0
  94. package/dist/core/webhook/frameworks/nextjs.js +2 -0
  95. package/dist/core/webhook/frameworks/nextjs.js.map +1 -0
  96. package/dist/core/webhook/index.d.ts +21 -16
  97. package/dist/core/webhook/index.js +1 -1
  98. package/dist/core/whatsapp/index.d.ts +39 -15
  99. package/dist/core/whatsapp/index.js +1 -1
  100. package/dist/{enums-DvwSJq9w.d.ts → enums-BZd9T2ul.d.ts} +1 -1
  101. package/dist/httpsClient-v4gmltzS.d.ts +19 -0
  102. package/dist/index.d.ts +21 -82
  103. package/dist/index.js +1 -1
  104. package/dist/logger-BdE0Vyim.d.ts +9 -0
  105. package/dist/{base-BhCbbsxB.d.ts → request-vYMaEfk5.d.ts} +2 -16
  106. package/dist/{shared/types → types}/config.d.ts +1 -1
  107. package/dist/types/enums.d.ts +1 -0
  108. package/dist/{shared/types → types}/enums.js +1 -1
  109. package/dist/types/index.d.ts +6 -0
  110. package/dist/types/index.js +2 -0
  111. package/dist/types/index.js.map +1 -0
  112. package/dist/utils/index.d.ts +98 -0
  113. package/dist/utils/index.js +2 -0
  114. package/dist/utils/index.js.map +1 -0
  115. package/package.json +91 -34
  116. package/dist/chunk-2NJVBJUN.js.map +0 -1
  117. package/dist/chunk-3MO3BTBC.js +0 -2
  118. package/dist/chunk-3MO3BTBC.js.map +0 -1
  119. package/dist/chunk-4C666HHU.js +0 -2
  120. package/dist/chunk-4O3T25CT.js +0 -2
  121. package/dist/chunk-4O3T25CT.js.map +0 -1
  122. package/dist/chunk-5JGM556C.js.map +0 -1
  123. package/dist/chunk-5O5GLWIE.js +0 -3
  124. package/dist/chunk-5O5GLWIE.js.map +0 -1
  125. package/dist/chunk-7GL74SXM.js.map +0 -1
  126. package/dist/chunk-7NQLQPLH.js.map +0 -1
  127. package/dist/chunk-BZ5QDXNR.js.map +0 -1
  128. package/dist/chunk-CNGQISKS.js +0 -2
  129. package/dist/chunk-CNGQISKS.js.map +0 -1
  130. package/dist/chunk-GIQLIMOD.js +0 -2
  131. package/dist/chunk-GIQLIMOD.js.map +0 -1
  132. package/dist/chunk-GT3XQN7Y.js.map +0 -1
  133. package/dist/chunk-I222VSWK.js +0 -2
  134. package/dist/chunk-I222VSWK.js.map +0 -1
  135. package/dist/chunk-JGX3AVD7.js +0 -3
  136. package/dist/chunk-JGX3AVD7.js.map +0 -1
  137. package/dist/chunk-KFPOVYEJ.js +0 -2
  138. package/dist/chunk-KFPOVYEJ.js.map +0 -1
  139. package/dist/chunk-LGLRGXCE.js +0 -2
  140. package/dist/chunk-LGLRGXCE.js.map +0 -1
  141. package/dist/chunk-O2OTHNWM.js +0 -2
  142. package/dist/chunk-O2OTHNWM.js.map +0 -1
  143. package/dist/chunk-R36L2XYO.js +0 -2
  144. package/dist/chunk-R36L2XYO.js.map +0 -1
  145. package/dist/chunk-UQPD6GIF.js +0 -2
  146. package/dist/chunk-UQPD6GIF.js.map +0 -1
  147. package/dist/chunk-VW3LGHTJ.js +0 -2
  148. package/dist/chunk-VW3LGHTJ.js.map +0 -1
  149. package/dist/chunk-XPPDOFBN.js.map +0 -1
  150. package/dist/features/encryption/index.d.ts +0 -9
  151. package/dist/features/encryption/index.js +0 -2
  152. package/dist/features/flow/index.d.ts +0 -9
  153. package/dist/features/flow/index.js +0 -2
  154. package/dist/features/media/index.d.ts +0 -9
  155. package/dist/features/media/index.js +0 -2
  156. package/dist/features/messages/index.js +0 -2
  157. package/dist/features/phone/index.js +0 -2
  158. package/dist/features/profile/index.js +0 -2
  159. package/dist/features/qrCode/index.d.ts +0 -9
  160. package/dist/features/qrCode/index.js +0 -2
  161. package/dist/features/registration/index.d.ts +0 -9
  162. package/dist/features/registration/index.js +0 -2
  163. package/dist/features/template/index.js +0 -2
  164. package/dist/features/twoStepVerification/index.d.ts +0 -9
  165. package/dist/features/twoStepVerification/index.js +0 -2
  166. package/dist/features/waba/index.d.ts +0 -9
  167. package/dist/features/waba/index.js +0 -2
  168. package/dist/index-DiCI1vEz.d.ts +0 -100
  169. package/dist/shared/types/enums.d.ts +0 -1
  170. package/dist/shared/utils/isMetaError.d.ts +0 -21
  171. package/dist/shared/utils/isMetaError.js +0 -2
  172. package/dist/shared/utils/isMetaError.js.map +0 -1
  173. /package/dist/{features → api}/encryption/index.js.map +0 -0
  174. /package/dist/{features → api}/flow/index.js.map +0 -0
  175. /package/dist/{features/media → api}/index.js.map +0 -0
  176. /package/dist/{features/messages → api/media}/index.js.map +0 -0
  177. /package/dist/{features/phone → api/messages}/index.js.map +0 -0
  178. /package/dist/{features/profile → api/phone}/index.js.map +0 -0
  179. /package/dist/{features/qrCode → api/profile}/index.js.map +0 -0
  180. /package/dist/{features/registration → api/qrCode}/index.js.map +0 -0
  181. /package/dist/{features/template → api/registration}/index.js.map +0 -0
  182. /package/dist/{features/twoStepVerification → api/template}/index.js.map +0 -0
  183. /package/dist/{features/waba → api/twoStepVerification}/index.js.map +0 -0
  184. /package/dist/{shared/types → types}/config.js +0 -0
  185. /package/dist/{shared/types → types}/config.js.map +0 -0
  186. /package/dist/{shared/types → types}/enums.js.map +0 -0
@@ -0,0 +1,82 @@
1
+ import { WabaConfigType, WhatsAppConfig } from './types/config.js';
2
+ import { H as HttpMethodsEnum, l as SDKEnums } from './enums-BZd9T2ul.js';
3
+ import { R as RequesterClass } from './request-vYMaEfk5.js';
4
+ import { H as HttpsClientClass, a as HttpsClientResponseClass } from './httpsClient-v4gmltzS.js';
5
+ import { Agent } from 'https';
6
+ import { E as EncryptionApi } from './EncryptionApi-D7pt-OXT.js';
7
+ import { F as FlowApi } from './FlowApi-UAvzhJfV.js';
8
+ import { M as MediaApi } from './MediaApi-BrEKpqi_.js';
9
+ import { M as MessagesApi } from './MessageApi-Circorzz.js';
10
+ import { P as PhoneNumberApi } from './PhoneNumberApi-DKlu9PHl.js';
11
+ import { B as BusinessProfileApi } from './BusinessProfileApi-WXscSgo-.js';
12
+ import { Q as QrCodeApi } from './QrCodeApi-7vDwIBHR.js';
13
+ import { R as RegistrationApi } from './RegistrationApi-qO_qoti9.js';
14
+ import { T as TemplateApi } from './TemplateApi-xGgIZt89.js';
15
+ import { T as TwoStepVerificationApi } from './TwoStepVerificationApi-DfNPIz-C.js';
16
+ import { W as WabaApi } from './WabaApi-DqQi_68m.js';
17
+
18
+ declare class HttpsClient implements HttpsClientClass {
19
+ agent: Agent;
20
+ constructor();
21
+ clearSockets(): boolean;
22
+ sendRequest(hostname: string, path: string, method: HttpMethodsEnum, headers: HeadersInit, timeout: number, body?: BodyInit | null): Promise<HttpsClientResponseClass>;
23
+ }
24
+
25
+ declare class Requester implements RequesterClass {
26
+ client: Readonly<HttpsClient>;
27
+ accessToken: Readonly<string>;
28
+ phoneNumberId: Readonly<number>;
29
+ businessAcctId: Readonly<string>;
30
+ apiVersion: Readonly<string>;
31
+ userAgent: Readonly<string>;
32
+ host: Readonly<string>;
33
+ protocol: Readonly<string>;
34
+ constructor(apiVersion: string, phoneNumberId: number, accessToken: string, businessAcctId: string, userAgent: string);
35
+ buildHeader(contentType: string, additionalHeaders?: Record<string, string>): HeadersInit;
36
+ buildCAPIPath(endpoint: string): string;
37
+ sendRequest(method: HttpMethodsEnum, endpoint: string, timeout: number, body?: any, contentType?: string, additionalHeaders?: Record<string, string>): Promise<HttpsClientResponseClass>;
38
+ getJson<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, body?: any, additionalHeaders?: Record<string, string>): Promise<T>;
39
+ sendFormData<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, formData: FormData, additionalHeaders?: Record<string, string>): Promise<T>;
40
+ sendUrlEncodedForm<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, formData: Record<string, string>, additionalHeaders?: Record<string, string>): Promise<T>;
41
+ }
42
+
43
+ /**
44
+ * WhatsApp SDK Main Class following official patterns
45
+ * Provides unified access to WhatsApp Cloud API and Flows API
46
+ */
47
+ declare class WhatsApp {
48
+ config: WabaConfigType;
49
+ requester: Readonly<Requester>;
50
+ messages: MessagesApi;
51
+ media: MediaApi;
52
+ phoneNumbers: PhoneNumberApi;
53
+ twoStepVerification: TwoStepVerificationApi;
54
+ flows: FlowApi;
55
+ businessProfile: BusinessProfileApi;
56
+ templates: TemplateApi;
57
+ encryption: EncryptionApi;
58
+ qrCode: QrCodeApi;
59
+ registration: RegistrationApi;
60
+ waba: WabaApi;
61
+ constructor(config?: WhatsAppConfig);
62
+ /**
63
+ * Runtime configuration updates following official patterns
64
+ */
65
+ updateTimeout(timeout: number): void;
66
+ updateSenderNumberId(phoneNumberId: number): void;
67
+ updateAccessToken(accessToken: string): void;
68
+ /**
69
+ * Get SDK version
70
+ */
71
+ version(): string;
72
+ /**
73
+ * Static enums access
74
+ */
75
+ static get Enums(): typeof SDKEnums;
76
+ /**
77
+ * Get User-Agent string
78
+ */
79
+ getUserAgent(): string;
80
+ }
81
+
82
+ export { WhatsApp as W };
@@ -0,0 +1,10 @@
1
+ import { E as EncryptionApi } from '../../EncryptionApi-D7pt-OXT.js';
2
+ export { a as EncryptionClass, b as EncryptionPublicKeyResponse } from '../../EncryptionApi-D7pt-OXT.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { EncryptionApi, EncryptionApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as EncryptionApi,b as default}from'../../chunk-IYSR44P6.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { F as FlowApi } from '../../FlowApi-UAvzhJfV.js';
2
+ export { C as CreateFlowResponse, F as Flow, b as FlowActionEnum, c as FlowAssetsResponse, d as FlowCategoryEnum, e as FlowClass, f as FlowEndpointRequest, g as FlowEndpointResponse, h as FlowMigrationResponse, i as FlowPreviewResponse, k as FlowStatusEnum, a as FlowType, l as FlowTypeEnum, m as FlowValidationError, j as FlowsListResponse, U as UpdateFlowResponse, V as ValidateFlowJsonResponse } from '../../common-DDXsNyLF.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { FlowApi, FlowApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as FlowApi,b as default}from'../../chunk-JC6YMVID.js';export{a as FlowTypeEnum}from'../../chunk-NLF2JGYY.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,16 @@
1
+ export { E as EncryptionApi, a as EncryptionClass, b as EncryptionPublicKeyResponse } from '../EncryptionApi-D7pt-OXT.js';
2
+ export { F as FlowApi } from '../FlowApi-UAvzhJfV.js';
3
+ export { C as CreateFlowResponse, F as Flow, b as FlowActionEnum, c as FlowAssetsResponse, d as FlowCategoryEnum, e as FlowClass, f as FlowEndpointRequest, g as FlowEndpointResponse, h as FlowMigrationResponse, i as FlowPreviewResponse, k as FlowStatusEnum, a as FlowType, l as FlowTypeEnum, m as FlowValidationError, j as FlowsListResponse, U as UpdateFlowResponse, V as ValidateFlowJsonResponse } from '../common-DDXsNyLF.js';
4
+ export { M as MediaApi, a as MediaClass, b as MediaResponse, c as MediasResponse, U as UploadMediaResponse } from '../MediaApi-BrEKpqi_.js';
5
+ export { A as AudioMediaObject, C as ContactObject, D as DocumentMediaObject, I as ImageMediaObject, a as InteractiveObject, L as LocationObject, b as MessageRequestParams, d as MessageTemplateObject, M as MessagesApi, c as MessagesResponse, R as ReactionParams, S as StatusParams, e as StickerMediaObject, T as TextMessageParams, f as TextObject, V as VideoMediaObject } from '../MessageApi-Circorzz.js';
6
+ export { A as AccountMode, C as CodeVerificationStatus, a as Cursors, H as HealthStatus, b as HealthStatusEntity, M as MessagingLimitTier, P as PhoneNumberApi, c as PhoneNumberClass, d as PhoneNumberResponse, e as PhoneNumbersResponse, f as PlatformType, Q as QualityRating, g as QualityScore, R as RequestVerificationCodeRequest, T as Throughput, h as ThroughputLevel, i as TwoStepVerificationParams, V as VerifyCodeRequest } from '../PhoneNumberApi-DKlu9PHl.js';
7
+ export { B as BusinessProfileApi, a as BusinessProfileClass, b as BusinessProfileData, c as BusinessProfileField, d as BusinessProfileFieldsParam, e as BusinessProfileResponse, C as CreateUploadSessionParams, G as GetUploadHandleParams, U as UpdateBusinessProfileRequest, f as UploadBusinessProfileResponse, g as UploadHandle, h as UploadMediaParams, i as UploadSession, j as UploadSessionResponse } from '../BusinessProfileApi-WXscSgo-.js';
8
+ export { C as CreateQrCodeRequest, Q as QrCodeApi, a as QrCodeClass, b as QrCodeResponse, c as QrCodesResponse, U as UpdateQrCodeRequest } from '../QrCodeApi-7vDwIBHR.js';
9
+ export { R as RegistrationApi, a as RegistrationClass, b as RegistrationRequest } from '../RegistrationApi-qO_qoti9.js';
10
+ export { T as TemplateApi, a as TemplateClass, b as TemplateDeleteParams, c as TemplateGetParams, d as TemplateRequestBody, e as TemplateResponse } from '../TemplateApi-xGgIZt89.js';
11
+ export { T as TwoStepVerificationApi, a as TwoStepVerificationClass, b as TwoStepVerificationRequest } from '../TwoStepVerificationApi-DfNPIz-C.js';
12
+ export { U as UpdateWabaSubscription, b as WABAClass, a as WabaAccount, W as WabaApi, c as WabaSubscriptions } from '../WabaApi-DqQi_68m.js';
13
+ import '../base-CdGDdVEl.js';
14
+ import '../types/config.js';
15
+ import '../enums-BZd9T2ul.js';
16
+ import '../request-vYMaEfk5.js';
@@ -0,0 +1,2 @@
1
+ import'../chunk-AMHQGG6Z.js';export{b as QrCodeApi}from'../chunk-JPAV644F.js';export{b as RegistrationApi}from'../chunk-PHPQ5HP3.js';export{b as EncryptionApi}from'../chunk-IYSR44P6.js';export{b as TwoStepVerificationApi}from'../chunk-SNNRWNGZ.js';export{b as WabaApi}from'../chunk-L4ESAO2S.js';export{b as MessagesApi}from'../chunk-7QBIZCJ4.js';export{b as MediaApi}from'../chunk-JXCLRKQ7.js';export{b as BusinessProfileApi}from'../chunk-LV3TULSI.js';import'../chunk-CRZ7EUYR.js';export{b as FlowApi}from'../chunk-JC6YMVID.js';import'../chunk-NLF2JGYY.js';export{b as PhoneNumberApi}from'../chunk-FSKBLPGE.js';export{a as TemplateApi}from'../chunk-VHAODWCN.js';import'../chunk-MJEG3K4V.js';import'../chunk-RIL6QABY.js';import'../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { M as MediaApi } from '../../MediaApi-BrEKpqi_.js';
2
+ export { a as MediaClass, b as MediaResponse, c as MediasResponse, U as UploadMediaResponse } from '../../MediaApi-BrEKpqi_.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { MediaApi, MediaApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as MediaApi,b as default}from'../../chunk-JXCLRKQ7.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -1,8 +1,9 @@
1
- import { M as MessagesApi } from '../../MessageApi-ptFlWg3O.js';
2
- export { A as AudioMediaObject, C as ContactObject, D as DocumentMediaObject, I as ImageMediaObject, a as InteractiveObject, L as LocationObject, b as MessageRequestParams, d as MessageTemplateObject, c as MessagesResponse, R as ReactionParams, S as StatusParams, e as StickerMediaObject, T as TextMessageParams, f as TextObject, V as VideoMediaObject } from '../../MessageApi-ptFlWg3O.js';
3
- import '../../base-BhCbbsxB.js';
4
- import '../../shared/types/config.js';
5
- import '../../enums-DvwSJq9w.js';
1
+ import { M as MessagesApi } from '../../MessageApi-Circorzz.js';
2
+ export { A as AudioMediaObject, C as ContactObject, D as DocumentMediaObject, I as ImageMediaObject, a as InteractiveObject, L as LocationObject, b as MessageRequestParams, d as MessageTemplateObject, c as MessagesResponse, R as ReactionParams, S as StatusParams, e as StickerMediaObject, T as TextMessageParams, f as TextObject, V as VideoMediaObject } from '../../MessageApi-Circorzz.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
6
7
 
7
8
 
8
9
 
@@ -0,0 +1,2 @@
1
+ export{a as MessageApi,b as default}from'../../chunk-7QBIZCJ4.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -1,8 +1,9 @@
1
- import { P as PhoneNumberApi } from '../../PhoneNumberApi-DMb_G3uw.js';
2
- export { A as AccountMode, C as CodeVerificationStatus, a as Cursors, H as HealthStatus, b as HealthStatusEntity, M as MessagingLimitTier, c as PhoneNumberClass, d as PhoneNumberResponse, e as PhoneNumbersResponse, f as PlatformType, Q as QualityRating, g as QualityScore, R as RequestVerificationCodeRequest, T as Throughput, h as ThroughputLevel, i as TwoStepVerificationParams, V as VerifyCodeRequest } from '../../PhoneNumberApi-DMb_G3uw.js';
3
- import '../../base-BhCbbsxB.js';
4
- import '../../shared/types/config.js';
5
- import '../../enums-DvwSJq9w.js';
1
+ import { P as PhoneNumberApi } from '../../PhoneNumberApi-DKlu9PHl.js';
2
+ export { A as AccountMode, C as CodeVerificationStatus, a as Cursors, H as HealthStatus, b as HealthStatusEntity, M as MessagingLimitTier, c as PhoneNumberClass, d as PhoneNumberResponse, e as PhoneNumbersResponse, f as PlatformType, Q as QualityRating, g as QualityScore, R as RequestVerificationCodeRequest, T as Throughput, h as ThroughputLevel, i as TwoStepVerificationParams, V as VerifyCodeRequest } from '../../PhoneNumberApi-DKlu9PHl.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
6
7
 
7
8
 
8
9
 
@@ -0,0 +1,2 @@
1
+ export{a as PhoneNumberApi,b as default}from'../../chunk-FSKBLPGE.js';import'../../chunk-MJEG3K4V.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -1,8 +1,9 @@
1
- import { B as BusinessProfileApi } from '../../BusinessProfileApi-DE7Nnuy_.js';
2
- export { a as BusinessProfileClass, b as BusinessProfileData, c as BusinessProfileField, d as BusinessProfileFieldsParam, e as BusinessProfileResponse, C as CreateUploadSessionParams, G as GetUploadHandleParams, U as UpdateBusinessProfileRequest, f as UploadBusinessProfileResponse, g as UploadHandle, h as UploadMediaParams, i as UploadSession, j as UploadSessionResponse } from '../../BusinessProfileApi-DE7Nnuy_.js';
3
- import '../../base-BhCbbsxB.js';
4
- import '../../shared/types/config.js';
5
- import '../../enums-DvwSJq9w.js';
1
+ import { B as BusinessProfileApi } from '../../BusinessProfileApi-WXscSgo-.js';
2
+ export { a as BusinessProfileClass, b as BusinessProfileData, c as BusinessProfileField, d as BusinessProfileFieldsParam, e as BusinessProfileResponse, C as CreateUploadSessionParams, G as GetUploadHandleParams, U as UpdateBusinessProfileRequest, f as UploadBusinessProfileResponse, g as UploadHandle, h as UploadMediaParams, i as UploadSession, j as UploadSessionResponse } from '../../BusinessProfileApi-WXscSgo-.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
6
7
 
7
8
 
8
9
 
@@ -0,0 +1,2 @@
1
+ export{a as BusinessProfileApi,b as default}from'../../chunk-LV3TULSI.js';import'../../chunk-CRZ7EUYR.js';import'../../chunk-MJEG3K4V.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { Q as QrCodeApi } from '../../QrCodeApi-7vDwIBHR.js';
2
+ export { C as CreateQrCodeRequest, a as QrCodeClass, b as QrCodeResponse, c as QrCodesResponse, U as UpdateQrCodeRequest } from '../../QrCodeApi-7vDwIBHR.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { QrCodeApi, QrCodeApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as QrCodeApi,b as default}from'../../chunk-JPAV644F.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { R as RegistrationApi } from '../../RegistrationApi-qO_qoti9.js';
2
+ export { a as RegistrationClass, b as RegistrationRequest } from '../../RegistrationApi-qO_qoti9.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { RegistrationApi, RegistrationApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as RegistrationApi,b as default}from'../../chunk-PHPQ5HP3.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -1,8 +1,9 @@
1
- import { T as TemplateFormat, a as TemplateRequestBody } from '../../TemplateApi-BFeM9qJS.js';
2
- export { C as CatalogButton, g as ComponentTypes, h as CopyCodeButton, F as FlowButton, M as MPMButton, q as MediaCarouselCard, O as OTPButton, P as PhoneNumberButton, r as ProductCarouselCard, Q as QuickReplyButton, S as SPMButton, f as TemplateApi, i as TemplateBody, j as TemplateButton, k as TemplateButtons, l as TemplateCarousel, b as TemplateClass, c as TemplateDeleteParams, m as TemplateFooter, d as TemplateGetParams, n as TemplateHeader, o as TemplateHeaderExample, p as TemplateLimitedTimeOffer, e as TemplateResponse, U as URLButton, f as default } from '../../TemplateApi-BFeM9qJS.js';
3
- import { L as LanguagesEnum, C as CurrencyCodesEnum, a as CategoryEnum } from '../../enums-DvwSJq9w.js';
4
- import '../../base-BhCbbsxB.js';
5
- import '../../shared/types/config.js';
1
+ import { f as TemplateFormat, d as TemplateRequestBody } from '../../TemplateApi-xGgIZt89.js';
2
+ export { C as CatalogButton, g as ComponentTypes, h as CopyCodeButton, F as FlowButton, M as MPMButton, q as MediaCarouselCard, O as OTPButton, P as PhoneNumberButton, r as ProductCarouselCard, Q as QuickReplyButton, S as SPMButton, T as TemplateApi, i as TemplateBody, j as TemplateButton, k as TemplateButtons, l as TemplateCarousel, a as TemplateClass, b as TemplateDeleteParams, m as TemplateFooter, c as TemplateGetParams, n as TemplateHeader, o as TemplateHeaderExample, p as TemplateLimitedTimeOffer, e as TemplateResponse, U as URLButton, T as default } from '../../TemplateApi-xGgIZt89.js';
3
+ import { L as LanguagesEnum, i as CurrencyCodesEnum, a as CategoryEnum } from '../../enums-BZd9T2ul.js';
4
+ import '../../base-CdGDdVEl.js';
5
+ import '../../types/config.js';
6
+ import '../../request-vYMaEfk5.js';
6
7
 
7
8
  interface TextParameter {
8
9
  type: 'text';
@@ -0,0 +1,2 @@
1
+ export{a as TemplateApi,d as createAuthenticationTemplate,e as createCatalogTemplate,f as createCouponTemplate,g as createLimitedTimeOfferTemplate,i as createMPMTemplate,h as createMediaCardCarouselTemplate,c as createOTPTemplate,j as createProductCardCarouselTemplate,k as createSPMTemplate,b as createTemplate,a as default}from'../../chunk-VHAODWCN.js';import'../../chunk-MJEG3K4V.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { T as TwoStepVerificationApi } from '../../TwoStepVerificationApi-DfNPIz-C.js';
2
+ export { a as TwoStepVerificationClass, b as TwoStepVerificationRequest } from '../../TwoStepVerificationApi-DfNPIz-C.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { TwoStepVerificationApi, TwoStepVerificationApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as TwoStepVerificationApi,b as default}from'../../chunk-SNNRWNGZ.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { W as WabaApi } from '../../WabaApi-DqQi_68m.js';
2
+ export { U as UpdateWabaSubscription, b as WABAClass, a as WabaAccount, c as WabaSubscriptions } from '../../WabaApi-DqQi_68m.js';
3
+ import '../../base-CdGDdVEl.js';
4
+ import '../../types/config.js';
5
+ import '../../enums-BZd9T2ul.js';
6
+ import '../../request-vYMaEfk5.js';
7
+
8
+
9
+
10
+ export { WabaApi, WabaApi as default };
@@ -0,0 +1,2 @@
1
+ export{a as WabaApi,b as default}from'../../chunk-L4ESAO2S.js';import'../../chunk-CRZ7EUYR.js';import'../../chunk-RIL6QABY.js';import'../../chunk-KMAH6636.js';//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,18 @@
1
+ import { WabaConfigType } from './types/config.js';
2
+ import { H as HttpMethodsEnum } from './enums-BZd9T2ul.js';
3
+ import { R as RequesterClass } from './request-vYMaEfk5.js';
4
+
5
+ declare class BaseClass {
6
+ constructor(config: WabaConfigType);
7
+ }
8
+
9
+ declare class BaseAPI implements BaseClass {
10
+ protected config: WabaConfigType;
11
+ protected client: RequesterClass;
12
+ constructor(config: WabaConfigType, client: RequesterClass);
13
+ protected sendJson<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, body?: any): Promise<T>;
14
+ protected sendFormData<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, body?: any): Promise<T>;
15
+ protected sendUrlEncodedForm<T>(method: HttpMethodsEnum, endpoint: string, timeout: number, body?: any): Promise<T>;
16
+ }
17
+
18
+ export { BaseAPI as B, BaseClass as a };
@@ -1,2 +1,2 @@
1
- import {b}from'./chunk-VW3LGHTJ.js';var i=class extends b{commonMethod="POST";commonEndpoint="messages";constructor(e,s){super(e,s);}bodyBuilder(e,s,a,t){let n={messaging_product:"whatsapp",recipient_type:"individual",to:a,type:e,[e]:s};return t&&(n.context={message_id:t}),n}send(e){return this.sendJson(this.commonMethod,`${this.config.WA_PHONE_NUMBER_ID}/${this.commonEndpoint}`,this.config.REQUEST_TIMEOUT,e)}async audio(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("audio",s,a,t)))}async contacts(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("contacts",s,a,t)))}async document(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("document",s,a,t)))}async image(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("image",s,a,t)))}async interactive(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,a,t)))}async location(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("location",s,a,t)))}async sticker(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("sticker",s,a,t)))}async template(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("template",s,a,t)))}async text(e){let{body:s,to:a,replyMessageId:t,previewUrl:n}=e,o=typeof s=="string"?{body:s,preview_url:n}:{...s,preview_url:n??s.preview_url};return this.send(JSON.stringify(this.bodyBuilder("text",o,a,t)))}async video(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("video",s,a,t)))}async status(e){let s={messaging_product:"whatsapp",status:e.status,message_id:e.messageId,...e.typingIndicator&&{typing_indicator:e.typingIndicator}};return this.send(JSON.stringify(s))}async markAsRead(e){return this.status({status:"read",messageId:e.messageId})}async showTypingIndicator(e){return this.status({status:"read",messageId:e.messageId,typingIndicator:{type:"text"}})}async interactiveList(e){return this.interactive(e)}async interactiveCtaUrl(e){return this.interactive(e)}async interactiveLocationRequest(e){return this.interactive(e)}async interactiveAddressMessage(e){return this.interactive(e)}async interactiveReplyButtons(e){return this.interactive(e)}async interactiveFlow(e){return this.interactive(e)}async reaction(e){let s={message_id:e.messageId,emoji:e.emoji};return this.send(JSON.stringify(this.bodyBuilder("reaction",s,e.to)))}};var g=i;export{i as a,g as b};//# sourceMappingURL=chunk-2NJVBJUN.js.map
2
- //# sourceMappingURL=chunk-2NJVBJUN.js.map
1
+ import {a}from'./chunk-RIL6QABY.js';var i=class extends a{commonMethod="POST";commonEndpoint="messages";constructor(e,s){super(e,s);}bodyBuilder(e,s,a,t){let n={messaging_product:"whatsapp",recipient_type:"individual",to:a,type:e,[e]:s};return t&&(n.context={message_id:t}),n}send(e){return this.sendJson(this.commonMethod,`${this.config.WA_PHONE_NUMBER_ID}/${this.commonEndpoint}`,this.config.REQUEST_TIMEOUT,e)}async audio(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("audio",s,a,t)))}async contacts(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("contacts",s,a,t)))}async document(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("document",s,a,t)))}async image(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("image",s,a,t)))}async interactive(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,a,t)))}async location(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("location",s,a,t)))}async sticker(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("sticker",s,a,t)))}async template(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("template",s,a,t)))}async text(e){let{body:s,to:a,replyMessageId:t,previewUrl:n}=e,o=typeof s=="string"?{body:s,preview_url:n}:{...s,preview_url:n??s.preview_url};return this.send(JSON.stringify(this.bodyBuilder("text",o,a,t)))}async video(e){let{body:s,to:a,replyMessageId:t}=e;return this.send(JSON.stringify(this.bodyBuilder("video",s,a,t)))}async status(e){let s={messaging_product:"whatsapp",status:e.status,message_id:e.messageId,...e.typingIndicator&&{typing_indicator:e.typingIndicator}};return this.send(JSON.stringify(s))}async markAsRead(e){return this.status({status:"read",messageId:e.messageId})}async showTypingIndicator(e){return this.status({status:"read",messageId:e.messageId,typingIndicator:{type:"text"}})}async interactiveList(e){return this.interactive(e)}async interactiveCtaUrl(e){return this.interactive(e)}async interactiveLocationRequest(e){return this.interactive(e)}async interactiveAddressMessage(e){return this.interactive(e)}async interactiveReplyButtons(e){return this.interactive(e)}async interactiveFlow(e){return this.interactive(e)}async reaction(e){let s={message_id:e.messageId,emoji:e.emoji};return this.send(JSON.stringify(this.bodyBuilder("reaction",s,e.to)))}};var g=i;export{i as a,g as b};//# sourceMappingURL=chunk-7QBIZCJ4.js.map
2
+ //# sourceMappingURL=chunk-7QBIZCJ4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/messages/MessageApi.ts","../src/api/messages/index.ts"],"names":["MessagesApi","BaseAPI","config","client","type","payload","to","replyMessageId","body","params","previewUrl","textPayload","reactionPayload","messages_default"],"mappings":"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","file":"chunk-7QBIZCJ4.js","sourcesContent":["import { BaseAPI } from '../../types/base';\nimport type { WabaConfigType } from '../../types/config';\nimport {\n type ComponentTypesEnum,\n HttpMethodsEnum,\n type InteractiveTypesEnum,\n MessageTypesEnum,\n WabaConfigEnum,\n} from '../../types/enums';\nimport type { RequesterClass } from '../../types/request';\n\nimport type * as m from './types';\n\n/**\n * Maps each message type to its appropriate payload type\n */\nexport type MessagePayloadType<T extends MessageTypesEnum> = T extends MessageTypesEnum.Audio\n ? m.AudioMediaObject\n : T extends MessageTypesEnum.Contacts\n ? [m.ContactObject]\n : T extends MessageTypesEnum.Document\n ? m.DocumentMediaObject\n : T extends MessageTypesEnum.Image\n ? m.ImageMediaObject\n : T extends MessageTypesEnum.Interactive\n ? m.InteractiveObject\n : T extends MessageTypesEnum.Location\n ? m.LocationObject\n : T extends MessageTypesEnum.Template\n ? m.MessageTemplateObject<ComponentTypesEnum>\n : T extends MessageTypesEnum.Sticker\n ? m.StickerMediaObject\n : T extends MessageTypesEnum.Text\n ? m.TextObject\n : T extends MessageTypesEnum.Video\n ? m.VideoMediaObject\n : T extends MessageTypesEnum.Reaction\n ? { message_id: string; emoji: string }\n : never;\n\nexport default class MessagesApi extends BaseAPI implements m.MessagesClass {\n private readonly commonMethod = HttpMethodsEnum.Post;\n private readonly commonEndpoint = 'messages';\n\n constructor(config: WabaConfigType, client: RequesterClass) {\n super(config, client);\n }\n\n /**\n * Builds the request body for WhatsApp API messages\n * @param type The type of message to send\n * @param payload The message payload object\n * @param to The recipient's phone number\n * @param replyMessageId Optional message ID to reply to\n * @returns The formatted request body\n */\n bodyBuilder<T extends MessageTypesEnum>(\n type: T,\n payload: MessagePayloadType<T>,\n to: string,\n replyMessageId?: string,\n ) {\n const body: m.MessageRequestBody<T> = {\n messaging_product: 'whatsapp',\n recipient_type: 'individual',\n to,\n type,\n [type]: payload,\n };\n\n if (replyMessageId) body['context'] = { message_id: replyMessageId };\n\n return body;\n }\n\n /**\n * Sends a request to the WhatsApp API\n * @param body The request body to send\n * @returns Promise with the API response\n */\n private send(body: BodyInit | null): Promise<m.MessagesResponse> {\n return this.sendJson(\n this.commonMethod,\n `${this.config[WabaConfigEnum.PhoneNumberId]}/${this.commonEndpoint}`,\n this.config[WabaConfigEnum.RequestTimeout],\n body,\n );\n }\n\n /**\n * Sends an audio message via WhatsApp\n * @param params The audio message parameter object\n * @returns Promise with the message response\n */\n async audio(params: m.MessageRequestParams<m.AudioMediaObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Audio, body, to, replyMessageId)));\n }\n\n /**\n * Sends a contact card via WhatsApp\n * @param params The contact message parameter object\n * @returns Promise with the message response\n */\n async contacts(params: m.MessageRequestParams<[m.ContactObject]>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Contacts, body, to, replyMessageId)));\n }\n\n /**\n * Sends a document via WhatsApp\n * @param params The document message parameter object\n * @returns Promise with the message response\n */\n async document(params: m.MessageRequestParams<m.DocumentMediaObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Document, body, to, replyMessageId)));\n }\n\n /**\n * Sends an image via WhatsApp\n * @param params The image message parameter object\n * @returns Promise with the message response\n */\n async image(params: m.MessageRequestParams<m.ImageMediaObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Image, body, to, replyMessageId)));\n }\n\n /**\n * Sends an interactive message via WhatsApp\n * @param params The interactive message parameter object\n * @returns Promise with the message response\n */\n async interactive(params: m.MessageRequestParams<m.InteractiveObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Interactive, body, to, replyMessageId)));\n }\n\n /**\n * Sends a location via WhatsApp\n * @param params The location message parameter object\n * @returns Promise with the message response\n */\n async location(params: m.MessageRequestParams<m.LocationObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Location, body, to, replyMessageId)));\n }\n\n /**\n * Sends a sticker via WhatsApp\n * @param params The sticker message parameter object\n * @returns Promise with the message response\n */\n async sticker(params: m.MessageRequestParams<m.StickerMediaObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Sticker, body, to, replyMessageId)));\n }\n\n /**\n * Sends a template message via WhatsApp\n * @param params The template message parameter object\n * @returns Promise with the message response\n */\n async template(\n params: m.MessageRequestParams<m.MessageTemplateObject<ComponentTypesEnum>>,\n ): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Template, body, to, replyMessageId)));\n }\n\n /**\n * Sends a text message via WhatsApp\n * @param params The text message parameter object\n * @returns Promise with the message response\n */\n async text(params: m.TextMessageParams): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId, previewUrl } = params;\n\n // Handle both string and TextObject types\n const textPayload: m.TextObject =\n typeof body === 'string'\n ? { body, preview_url: previewUrl }\n : { ...body, preview_url: previewUrl ?? body.preview_url };\n\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Text, textPayload, to, replyMessageId)));\n }\n\n /**\n * Sends a video message via WhatsApp\n * @param params The video message parameter object\n * @returns Promise with the message response\n */\n async video(params: m.MessageRequestParams<m.VideoMediaObject>): Promise<m.MessagesResponse> {\n const { body, to, replyMessageId } = params;\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Video, body, to, replyMessageId)));\n }\n\n /**\n * Updates message status (mark as read, etc.)\n * @param params The status update parameters\n * @returns Promise with the API response\n */\n async status(params: m.StatusParams): Promise<m.MessagesResponse> {\n const body = {\n messaging_product: 'whatsapp',\n status: params.status,\n message_id: params.messageId,\n ...(params.typingIndicator && { typing_indicator: params.typingIndicator }),\n };\n\n return this.send(JSON.stringify(body));\n }\n\n /**\n * Marks a message as read\n * @param params Object containing messageId\n * @returns Promise with the API response\n */\n async markAsRead(params: { messageId: string }): Promise<m.MessagesResponse> {\n return this.status({\n status: 'read',\n messageId: params.messageId,\n });\n }\n\n /**\n * Shows typing indicator\n * @param params Object containing messageId\n * @returns Promise with the API response\n */\n async showTypingIndicator(params: { messageId: string }): Promise<m.MessagesResponse> {\n return this.status({\n status: 'read',\n messageId: params.messageId,\n typingIndicator: { type: 'text' },\n });\n }\n\n /**\n * Sends a list interactive message\n * @param params The list interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveList(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.List }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends a CTA URL interactive message\n * @param params The CTA URL interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveCtaUrl(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.CtaUrl }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends a location request interactive message\n * @param params The location request interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveLocationRequest(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.LocationRequest }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends an address message interactive message\n * @param params The address message interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveAddressMessage(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.AddressMessage }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends a reply buttons interactive message\n * @param params The reply buttons interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveReplyButtons(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.Button }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends a flow interactive message\n * @param params The flow interactive message parameters\n * @returns Promise with the message response\n */\n async interactiveFlow(\n params: m.MessageRequestParams<m.InteractiveObject & { type: InteractiveTypesEnum.Flow }>,\n ): Promise<m.MessagesResponse> {\n return this.interactive(params);\n }\n\n /**\n * Sends a reaction to a message\n * @param params The reaction parameters\n * @returns Promise with the message response\n */\n async reaction(params: m.ReactionParams): Promise<m.MessagesResponse> {\n const reactionPayload = {\n message_id: params.messageId,\n emoji: params.emoji,\n };\n\n return this.send(JSON.stringify(this.bodyBuilder(MessageTypesEnum.Reaction, reactionPayload, params.to)));\n }\n}\n","import MessageApi from './MessageApi';\n\nexport default MessageApi;\n\nexport { MessageApi };\n\nexport type {\n AudioMediaObject,\n ContactObject,\n DocumentMediaObject,\n ImageMediaObject,\n InteractiveObject,\n LocationObject,\n MessageRequestParams,\n MessageTemplateObject,\n MessagesResponse,\n ReactionParams,\n StatusParams,\n StickerMediaObject,\n TextMessageParams,\n TextObject,\n VideoMediaObject,\n} from './types';\n"]}
@@ -0,0 +1,2 @@
1
+ //# sourceMappingURL=chunk-AMHQGG6Z.js.map
2
+ //# sourceMappingURL=chunk-AMHQGG6Z.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-4C666HHU.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-AMHQGG6Z.js"}
@@ -0,0 +1,10 @@
1
+ import {a,b as b$a,d as d$1,e,c}from'./chunk-FKXSL2JK.js';import {b as b$7}from'./chunk-JPAV644F.js';import {b as b$8}from'./chunk-PHPQ5HP3.js';import {b as b$6}from'./chunk-IYSR44P6.js';import {b as b$3}from'./chunk-SNNRWNGZ.js';import {b as b$9}from'./chunk-L4ESAO2S.js';import {b}from'./chunk-7QBIZCJ4.js';import {b as b$1}from'./chunk-JXCLRKQ7.js';import {b as b$5}from'./chunk-LV3TULSI.js';import {b as b$4}from'./chunk-JC6YMVID.js';import {b as b$2}from'./chunk-FSKBLPGE.js';import {a as a$1}from'./chunk-VHAODWCN.js';import {z}from'./chunk-KMAH6636.js';import {Agent}from'https';var k="UTILS",M=false,U=new a(k,process.env.DEBUG==="true"||M),H=3e3,B=30,V=2e4,$=s=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!s?.accessToken)throw U.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},q=s=>($(s),{M4D_APP_ID:s?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:s?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:s?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:s?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:s?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:s?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:s?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:s?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:s?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||H,MAX_RETRIES_AFTER_WAIT:s?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||B,REQUEST_TIMEOUT:s?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||V,DEBUG:s?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:s?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:s?.passphrase||process.env.FLOW_API_PASSPHRASE||""});var x="HttpsClient",F=false,v=new a(x,process.env.DEBUG==="true"||F),m=class{agent;constructor(){this.agent=new Agent({keepAlive:true});}clearSockets(){return this.agent.destroy(),true}async sendRequest(e,r,t,o,i,u){let a=`https://${e}/${r}`,h=new AbortController,n=setTimeout(()=>h.abort(),i);try{let c=await fetch(a,{method:t,headers:o,body:u,signal:h.signal});return v.log(`${t} : ${a} - ${JSON.stringify(c)}`),clearTimeout(n),new E(c)}catch(c){throw v.error(`${t} : ${a} - ${JSON.stringify(c)}`),c}}},E=class{res;respStatusCode;respHeaders;constructor(e){this.res=e,this.respStatusCode=e.status,this.respHeaders=Object.fromEntries(e.headers.entries());}statusCode(){return this.respStatusCode}headers(){return this.respHeaders}rawResponse(){return this.res}async json(){try{return await this.res.json()}catch(e){throw new Error("Failed to parse response body to JSON: "+e.message)}}};var K="REQUESTER",j=false,J=new a(K,process.env.DEBUG==="true"||j),g=class{client;accessToken;phoneNumberId;businessAcctId;apiVersion;userAgent;host;protocol="https:";constructor(e,r,t,o,i){this.client=new m,this.host="graph.facebook.com",this.apiVersion=e||"22",this.phoneNumberId=r,this.accessToken=t,this.businessAcctId=o,this.userAgent=i;}buildHeader(e,r){let t={Authorization:`Bearer ${this.accessToken}`,"User-Agent":this.userAgent};return e!=="multipart/form-data"&&(t["Content-Type"]=e),r&&Object.assign(t,r),t}buildCAPIPath(e){return `v${this.apiVersion}.0/${e}`}async sendRequest(e,r,t,o,i="application/json",u){let a=i;o instanceof FormData?a="multipart/form-data":typeof o=="string"&&o.startsWith("<?xml")&&(a="application/xml");let h=`${this.protocol.toLowerCase()}//${this.host}/${this.buildCAPIPath(r)}`;J.log(`${e} : ${h} (${a})`);try{let n=await this.client.sendRequest(this.host,this.buildCAPIPath(r),e,this.buildHeader(a,u),t,e==="POST"||e==="PUT"?o:void 0);if(!n.rawResponse().ok){let c$1=await n.json();throw c(c$1)?c$1:{name:"MetaError",message:"Unknown error occurred",error:{message:c$1.message||"Unknown error occurred",type:"UnknownError",code:n.statusCode(),fbtrace_id:""}}}return n}catch(n){throw c(n)?n:{name:"MetaError",message:n instanceof Error?n.message:"Network error occurred",error:{message:n instanceof Error?n.message:"Network error occurred",type:"NetworkError",code:500,fbtrace_id:""}}}}async getJson(e,r,t,o,i){return await(await this.sendRequest(e,r,t,o,"application/json",i)).json()}async sendFormData(e,r,t,o,i){return await(await this.sendRequest(e,r,t,o,"multipart/form-data",i)).json()}async sendUrlEncodedForm(e,r,t,o,i){let u=new URLSearchParams(o).toString();return await(await this.sendRequest(e,r,t,u,"application/x-www-form-urlencoded",i)).json()}};function D(){process.env.NODE_ENV==="test"||process.env.VITEST==="true"||typeof global<"u"&&global.__VITEST__||console.log("\x1B[36m%s\x1B[0m",`
2
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557
3
+ \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2551
4
+ \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551
5
+ \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2551
6
+ \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
7
+ \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D
8
+ `);}var Q="WHATSAPP",d=new a(Q,process.env.DEBUG==="true"),f=class{config;requester;messages;media;phoneNumbers;twoStepVerification;flows;businessProfile;templates;encryption;qrCode;registration;waba;constructor(e){D(),this.config=q(e),this.requester=new g(this.config.CLOUD_API_VERSION,this.config.WA_PHONE_NUMBER_ID,this.config.CLOUD_API_ACCESS_TOKEN,this.config.WA_BUSINESS_ACCOUNT_ID,this.getUserAgent()),this.messages=new b(this.config,this.requester),this.media=new b$1(this.config,this.requester),this.phoneNumbers=new b$2(this.config,this.requester),this.twoStepVerification=new b$3(this.config,this.requester),this.flows=new b$4(this.config,this.requester),this.businessProfile=new b$5(this.config,this.requester),this.templates=new a$1(this.config,this.requester),this.encryption=new b$6(this.config,this.requester),this.qrCode=new b$7(this.config,this.requester),this.registration=new b$8(this.config,this.requester),this.waba=new b$9(this.config,this.requester),d.log(`
9
+ `+b$a(this.config));}updateTimeout(e){this.config.REQUEST_TIMEOUT=e,"updateTimeout"in this.requester&&this.requester.updateTimeout(e),d.log(`Timeout updated to ${e}ms`);}updateSenderNumberId(e){this.config.WA_PHONE_NUMBER_ID=e,d.log(`Sender number ID updated to ${e}`);}updateAccessToken(e){this.config.CLOUD_API_ACCESS_TOKEN=e,"updateAccessToken"in this.requester&&this.requester.updateAccessToken(e),d.log("Access token updated");}version(){return d$1()}static get Enums(){return z}getUserAgent(){return e()}};export{q as a,f as b};//# sourceMappingURL=chunk-B7DCL6I7.js.map
10
+ //# sourceMappingURL=chunk-B7DCL6I7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config/importConfig.ts","../src/utils/http/httpsClient.ts","../src/utils/http/request.ts","../src/utils/logoConsole.ts","../src/core/whatsapp/WhatsApp.ts"],"names":["LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","HttpsClient","Agent","hostname","path","method","headers","timeout","body","url","controller","timeoutId","response","HttpsClientResponse","error","resp","err","Requester","apiVersion","phoneNumberId","accessToken","businessAcctId","userAgent","contentType","additionalHeaders","endpoint","effectiveContentType","errorData","isMetaError","formData","urlEncodedBody","printLogo","WhatsApp","messages_default","media_default","phone_default","twoStepVerification_default","flow_default","profile_default","TemplateApi","encryption_default","qrCode_default","registration_default","waba_default","formatConfigTable","getVersion","enums_exports","getUserAgent"],"mappings":"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","file":"chunk-B7DCL6I7.js","sourcesContent":["import type { WabaConfigType, WhatsAppConfig } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from '../utils/logger';\n\nconst LIB_NAME = 'UTILS';\nconst LOG_LOCAL = false;\nconst LOGGER = new Logger(LIB_NAME, process.env.DEBUG === 'true' || LOG_LOCAL);\nconst DEFAULT_LISTENER_PORT = 3000;\nconst DEFAULT_MAX_RETRIES_AFTER_WAIT = 30;\nconst DEFAULT_REQUEST_TIMEOUT = 20000;\n\nconst emptyConfigChecker = (config: WhatsAppConfig | undefined) => {\n if (!process.env[WabaConfigEnum.AccessToken] && !config?.accessToken) {\n LOGGER.log(`Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined.`);\n throw new Error('Missing WhatsApp access token.');\n }\n};\n\nexport const importConfig = (inputConfig?: WhatsAppConfig) => {\n emptyConfigChecker(inputConfig);\n\n const wabaConfig: WabaConfigType = {\n [WabaConfigEnum.AppId]: inputConfig?.appId || process.env.M4D_APP_ID || '',\n [WabaConfigEnum.AppSecret]: inputConfig?.appSecret || process.env.M4D_APP_SECRET || '',\n [WabaConfigEnum.PhoneNumberId]: inputConfig?.phoneNumberId || Number(process.env.WA_PHONE_NUMBER_ID),\n [WabaConfigEnum.BusinessAcctId]: inputConfig?.businessAcctId || process.env.WA_BUSINESS_ACCOUNT_ID || '',\n [WabaConfigEnum.APIVersion]: inputConfig?.apiVersion || process.env.CLOUD_API_VERSION || '',\n [WabaConfigEnum.AccessToken]: inputConfig?.accessToken || process.env.CLOUD_API_ACCESS_TOKEN || '',\n [WabaConfigEnum.WebhookEndpoint]: inputConfig?.webhookEndpoint || process.env.WEBHOOK_ENDPOINT || '',\n [WabaConfigEnum.WebhookVerificationToken]:\n inputConfig?.webhookVerificationToken || process.env.WEBHOOK_VERIFICATION_TOKEN || '',\n [WabaConfigEnum.ListenerPort]:\n inputConfig?.listenerPort || parseInt(process.env.LISTENER_PORT || '') || DEFAULT_LISTENER_PORT,\n [WabaConfigEnum.MaxRetriesAfterWait]:\n inputConfig?.maxRetriesAfterWait ||\n parseInt(process.env.MAX_RETRIES_AFTER_WAIT || '') ||\n DEFAULT_MAX_RETRIES_AFTER_WAIT,\n [WabaConfigEnum.RequestTimeout]:\n inputConfig?.requestTimeout || parseInt(process.env.REQUEST_TIMEOUT || '') || DEFAULT_REQUEST_TIMEOUT,\n [WabaConfigEnum.Debug]: inputConfig?.debug || process.env.DEBUG === 'true',\n [WabaConfigEnum.PrivatePem]: inputConfig?.privatePem || process.env.FLOW_API_PRIVATE_PEM || '',\n [WabaConfigEnum.Passphrase]: inputConfig?.passphrase || process.env.FLOW_API_PASSPHRASE || '',\n };\n\n return wabaConfig;\n};\n","import { Agent } from 'https';\n\nimport { HttpMethodsEnum } from '../../types/enums';\nimport { HttpsClientClass, HttpsClientResponseClass, ResponseHeaders, ResponseJSONBody } from '../../types/httpsClient';\nimport Logger from '../logger';\n\nconst LIB_NAME = 'HttpsClient';\nconst LOG_LOCAL = false;\nconst LOGGER = new Logger(LIB_NAME, process.env.DEBUG === 'true' || LOG_LOCAL);\n\nexport default class HttpsClient implements HttpsClientClass {\n agent: Agent;\n\n constructor() {\n this.agent = new Agent({ keepAlive: true });\n }\n\n clearSockets(): boolean {\n this.agent.destroy();\n return true;\n }\n\n async sendRequest(\n hostname: string,\n path: string,\n method: HttpMethodsEnum,\n headers: HeadersInit,\n timeout: number,\n body?: BodyInit | null,\n ): Promise<HttpsClientResponseClass> {\n const url = `https://${hostname}/${path}`;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetch(url, {\n method,\n headers,\n body,\n signal: controller.signal,\n });\n LOGGER.log(`${method} : ${url} - ${JSON.stringify(response)}`);\n\n clearTimeout(timeoutId);\n return new HttpsClientResponse(response);\n } catch (error) {\n LOGGER.error(`${method} : ${url} - ${JSON.stringify(error)}`);\n throw error;\n }\n }\n}\n\nexport class HttpsClientResponse implements HttpsClientResponseClass {\n res: Response;\n respStatusCode: number;\n respHeaders: ResponseHeaders;\n\n constructor(resp: Response) {\n this.res = resp;\n this.respStatusCode = resp.status;\n this.respHeaders = Object.fromEntries(resp.headers.entries());\n }\n\n statusCode(): number {\n return this.respStatusCode;\n }\n\n headers(): ResponseHeaders {\n return this.respHeaders;\n }\n\n rawResponse(): Response {\n return this.res;\n }\n\n async json(): Promise<ResponseJSONBody> {\n try {\n return (await this.res.json()) as ResponseJSONBody;\n } catch (err) {\n // TODO Error Handling\n throw new Error('Failed to parse response body to JSON: ' + (err as Error).message);\n }\n }\n}\n","import type { HttpMethodsEnum } from '../../types/enums';\nimport type { RequesterClass } from '../../types/request';\nimport { isMetaError, MetaError } from '../isMetaError';\nimport Logger from '../logger';\nimport HttpsClient from './httpsClient';\n\nconst LIB_NAME = 'REQUESTER';\nconst LOG_LOCAL = false;\nconst LOGGER = new Logger(LIB_NAME, process.env.DEBUG === 'true' || LOG_LOCAL);\n\nexport default class Requester implements RequesterClass {\n client: Readonly<HttpsClient>;\n accessToken: Readonly<string>;\n phoneNumberId: Readonly<number>;\n businessAcctId: Readonly<string>;\n apiVersion: Readonly<string>;\n userAgent: Readonly<string>;\n host: Readonly<string>;\n protocol: Readonly<string> = 'https:';\n\n constructor(\n apiVersion: string,\n phoneNumberId: number,\n accessToken: string,\n businessAcctId: string,\n userAgent: string,\n ) {\n this.client = new HttpsClient();\n this.host = 'graph.facebook.com';\n this.apiVersion = apiVersion || '22';\n this.phoneNumberId = phoneNumberId;\n this.accessToken = accessToken;\n this.businessAcctId = businessAcctId;\n this.userAgent = userAgent;\n }\n\n buildHeader(contentType: string, additionalHeaders?: Record<string, string>): HeadersInit {\n const headers: HeadersInit = {\n Authorization: `Bearer ${this.accessToken}`,\n 'User-Agent': this.userAgent,\n };\n\n if (contentType !== 'multipart/form-data') {\n headers['Content-Type'] = contentType;\n }\n\n if (additionalHeaders) {\n Object.assign(headers, additionalHeaders);\n }\n\n return headers;\n }\n\n buildCAPIPath(endpoint: string): string {\n return `v${this.apiVersion}.0/${endpoint}`;\n }\n\n async sendRequest(\n method: HttpMethodsEnum,\n endpoint: string,\n timeout: number,\n body?: any,\n contentType: string = 'application/json',\n additionalHeaders?: Record<string, string>,\n ) {\n let effectiveContentType = contentType;\n\n if (body instanceof FormData) {\n effectiveContentType = 'multipart/form-data';\n } else if (typeof body === 'string' && body.startsWith('<?xml')) {\n effectiveContentType = 'application/xml';\n }\n\n const path = `${this.protocol.toLowerCase()}//${this.host}/${this.buildCAPIPath(endpoint)}`;\n\n LOGGER.log(`${method} : ${path} (${effectiveContentType})`);\n\n try {\n const response = await this.client.sendRequest(\n this.host,\n this.buildCAPIPath(endpoint),\n method,\n this.buildHeader(effectiveContentType, additionalHeaders),\n timeout,\n method === 'POST' || method === 'PUT' ? body : undefined,\n );\n\n if (!response.rawResponse().ok) {\n const errorData = await response.json();\n if (isMetaError(errorData)) {\n throw errorData;\n }\n // If the error doesn't match Meta's format, create a generic MetaError\n throw {\n name: 'MetaError',\n message: 'Unknown error occurred',\n error: {\n message: errorData.message || 'Unknown error occurred',\n type: 'UnknownError',\n code: response.statusCode(),\n fbtrace_id: '',\n },\n } as MetaError;\n }\n\n return response;\n } catch (error) {\n if (isMetaError(error)) {\n throw error;\n }\n // Handle network errors or other unexpected errors\n throw {\n name: 'MetaError',\n message: error instanceof Error ? error.message : 'Network error occurred',\n error: {\n message: error instanceof Error ? error.message : 'Network error occurred',\n type: 'NetworkError',\n code: 500,\n fbtrace_id: '',\n },\n } as MetaError;\n }\n }\n\n async getJson<T>(\n method: HttpMethodsEnum,\n endpoint: string,\n timeout: number,\n body?: any,\n additionalHeaders?: Record<string, string>,\n ): Promise<T> {\n const res = await this.sendRequest(method, endpoint, timeout, body, 'application/json', additionalHeaders);\n return (await res.json()) as T;\n }\n\n async sendFormData<T>(\n method: HttpMethodsEnum,\n endpoint: string,\n timeout: number,\n formData: FormData,\n additionalHeaders?: Record<string, string>,\n ): Promise<T> {\n const res = await this.sendRequest(\n method,\n endpoint,\n timeout,\n formData,\n 'multipart/form-data',\n additionalHeaders,\n );\n return (await res.json()) as T;\n }\n\n async sendUrlEncodedForm<T>(\n method: HttpMethodsEnum,\n endpoint: string,\n timeout: number,\n formData: Record<string, string>,\n additionalHeaders?: Record<string, string>,\n ): Promise<T> {\n const urlEncodedBody = new URLSearchParams(formData).toString();\n const res = await this.sendRequest(\n method,\n endpoint,\n timeout,\n urlEncodedBody,\n 'application/x-www-form-urlencoded',\n additionalHeaders,\n );\n return (await res.json()) as T;\n }\n}\n","export function printLogo() {\n // 테스트 환경에서는 로고를 출력하지 않음\n if (\n process.env.NODE_ENV === 'test' ||\n process.env.VITEST === 'true' ||\n (typeof global !== 'undefined' && (global as any).__VITEST__)\n ) {\n return;\n }\n\n console.log(\n '\\x1b[36m%s\\x1b[0m',\n `\n██████╗ ██╗ ██████╗ ██╗ ██╗ ██████╗ █████╗ ██████╗ ██╗\n██╔════╝ ██║ ██╔═══██╗ ██║ ██║ ██╔══██╗ ██╔══██╗ ██╔══██╗ ██║\n██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ███████║ ██████╔╝ ██║\n██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██╔══██║ ██╔═══╝ ██║\n╚██████╗ ███████╗ ╚██████╔╝ ╚██████╔╝ ██████╔╝ ██║ ██║ ██║ ██║\n ╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝\n`,\n );\n}\n","import { importConfig } from '../../config/importConfig';\nimport { WabaConfigType, WhatsAppConfig } from '../../types/config';\nimport * as SDKEnums from '../../types/enums';\nimport { formatConfigTable } from '../../utils/configTable';\nimport Requester from '../../utils/http/request';\nimport Logger from '../../utils/logger';\nimport { getUserAgent, getVersion } from '../../utils/version';\n\nimport {\n BusinessProfileApi,\n EncryptionApi,\n FlowApi,\n MediaApi,\n MessagesApi,\n PhoneNumberApi,\n QrCodeApi,\n RegistrationApi,\n TemplateApi,\n TwoStepVerificationApi,\n WabaApi,\n} from '../../api';\nimport { printLogo } from '../../utils/logoConsole';\n\nconst LIB_NAME = 'WHATSAPP';\nconst LOGGER = new Logger(LIB_NAME, process.env.DEBUG === 'true');\n\n/**\n * WhatsApp SDK Main Class following official patterns\n * Provides unified access to WhatsApp Cloud API and Flows API\n */\nexport default class WhatsApp {\n config: WabaConfigType;\n requester: Readonly<Requester>;\n messages: MessagesApi;\n media: MediaApi;\n phoneNumbers: PhoneNumberApi;\n twoStepVerification: TwoStepVerificationApi;\n flows: FlowApi;\n businessProfile: BusinessProfileApi;\n templates: TemplateApi;\n encryption: EncryptionApi;\n qrCode: QrCodeApi;\n registration: RegistrationApi;\n waba: WabaApi;\n\n constructor(config?: WhatsAppConfig) {\n printLogo();\n this.config = importConfig(config);\n\n this.requester = new Requester(\n this.config[SDKEnums.WabaConfigEnum.APIVersion],\n this.config[SDKEnums.WabaConfigEnum.PhoneNumberId],\n this.config[SDKEnums.WabaConfigEnum.AccessToken],\n this.config[SDKEnums.WabaConfigEnum.BusinessAcctId],\n this.getUserAgent(),\n );\n\n this.messages = new MessagesApi(this.config, this.requester);\n this.media = new MediaApi(this.config, this.requester);\n this.phoneNumbers = new PhoneNumberApi(this.config, this.requester);\n this.twoStepVerification = new TwoStepVerificationApi(this.config, this.requester);\n this.flows = new FlowApi(this.config, this.requester);\n this.businessProfile = new BusinessProfileApi(this.config, this.requester);\n this.templates = new TemplateApi(this.config, this.requester);\n this.encryption = new EncryptionApi(this.config, this.requester);\n this.qrCode = new QrCodeApi(this.config, this.requester);\n this.registration = new RegistrationApi(this.config, this.requester);\n this.waba = new WabaApi(this.config, this.requester);\n\n LOGGER.log('\\n' + formatConfigTable(this.config));\n }\n\n /**\n * Runtime configuration updates following official patterns\n */\n updateTimeout(timeout: number): void {\n this.config[SDKEnums.WabaConfigEnum.RequestTimeout] = timeout;\n if ('updateTimeout' in this.requester) {\n (this.requester as any).updateTimeout(timeout);\n }\n LOGGER.log(`Timeout updated to ${timeout}ms`);\n }\n\n updateSenderNumberId(phoneNumberId: number): void {\n this.config[SDKEnums.WabaConfigEnum.PhoneNumberId] = phoneNumberId;\n LOGGER.log(`Sender number ID updated to ${phoneNumberId}`);\n }\n\n updateAccessToken(accessToken: string): void {\n this.config[SDKEnums.WabaConfigEnum.AccessToken] = accessToken;\n if ('updateAccessToken' in this.requester) {\n (this.requester as any).updateAccessToken(accessToken);\n }\n LOGGER.log('Access token updated');\n }\n\n /**\n * Get SDK version\n */\n version(): string {\n return getVersion();\n }\n\n /**\n * Static enums access\n */\n static get Enums() {\n return SDKEnums;\n }\n\n /**\n * Get User-Agent string\n */\n getUserAgent(): string {\n return getUserAgent();\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- function n(r){if(!r)return "";let t="";return Array.isArray(r)?t=r.join(","):typeof r=="string"?t=r:t=Object.entries(r).filter(([i,e])=>e).map(([i])=>i).join(","),t?`?fields=${t}`:""}export{n as a};//# sourceMappingURL=chunk-7GL74SXM.js.map
2
- //# sourceMappingURL=chunk-7GL74SXM.js.map
1
+ function n(r){if(!r)return "";let t="";return Array.isArray(r)?t=r.join(","):typeof r=="string"?t=r:t=Object.entries(r).filter(([i,e])=>e).map(([i])=>i).join(","),t?`?fields=${t}`:""}export{n as a};//# sourceMappingURL=chunk-CRZ7EUYR.js.map
2
+ //# sourceMappingURL=chunk-CRZ7EUYR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/buildFieldsQueryString.ts"],"names":["buildFieldsQueryString","fields","fieldParams","_","value","key"],"mappings":"AAAO,SAASA,CAAAA,CAAuBC,CAAAA,CAAoC,CACvE,GAAI,CAACA,EAAQ,OAAO,EAAA,CAEpB,IAAIC,CAAAA,CAAc,EAAA,CAElB,OAAI,MAAM,OAAA,CAAQD,CAAM,CAAA,CACpBC,CAAAA,CAAcD,CAAAA,CAAO,IAAA,CAAK,GAAG,CAAA,CACtB,OAAOA,CAAAA,EAAW,QAAA,CACzBC,CAAAA,CAAcD,CAAAA,CAEdC,EAAc,MAAA,CAAO,OAAA,CAAQD,CAAM,CAAA,CAC9B,MAAA,CAAO,CAAC,CAACE,CAAAA,CAAGC,CAAK,CAAA,GAAMA,CAAK,CAAA,CAC5B,GAAA,CAAI,CAAC,CAACC,CAAG,CAAA,GAAMA,CAAG,CAAA,CAClB,IAAA,CAAK,GAAG,CAAA,CAGVH,CAAAA,CAAc,CAAA,QAAA,EAAWA,CAAW,CAAA,CAAA,CAAK,EACpD","file":"chunk-CRZ7EUYR.js","sourcesContent":["export function buildFieldsQueryString(fields?: string[] | string): string {\n if (!fields) return '';\n\n let fieldParams = '';\n\n if (Array.isArray(fields)) {\n fieldParams = fields.join(',');\n } else if (typeof fields === 'string') {\n fieldParams = fields;\n } else {\n fieldParams = Object.entries(fields)\n .filter(([_, value]) => value)\n .map(([key]) => key)\n .join(',');\n }\n\n return fieldParams ? `?fields=${fieldParams}` : '';\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import {readFileSync}from'fs';import {join}from'path';var s=class{name;debug;constructor(t,o=false){this.name=t,this.debug=o;}log(...t){if(this.debug){let o=`[ ${Date.now()} ]`;this.name&&(o+=` - ${this.name}`),console.log.apply(console,[o,": ",...t]);}}error(...t){let o=`[ ${Date.now()} ] - ERROR`;this.name&&(o+=` - ${this.name}`),console.error.apply(console,[o,": ",...t]);}warn(...t){let o=`[ ${Date.now()} ] - WARN`;this.name&&(o+=` - ${this.name}`),console.warn.apply(console,[o,": ",...t]);}info(...t){let o=`[ ${Date.now()} ] - INFO`;this.name&&(o+=` - ${this.name}`),console.info.apply(console,[o,": ",...t]);}};function y(e){let t=[["App ID",e.M4D_APP_ID||"Not Set"],["Phone Number ID",e.WA_PHONE_NUMBER_ID?.toString()||"Not Set"],["Business Account ID",e.WA_BUSINESS_ACCOUNT_ID||"Not Set"],["API Version",e.CLOUD_API_VERSION||"Not Set"],["Access Token",e.CLOUD_API_ACCESS_TOKEN?`${e.CLOUD_API_ACCESS_TOKEN.substring(0,20)}...`:"Not Set"],["Webhook Endpoint",e.WEBHOOK_ENDPOINT||"Not Set"],["Webhook Verification Token",e.WEBHOOK_VERIFICATION_TOKEN?`${e.WEBHOOK_VERIFICATION_TOKEN.substring(0,10)}...`:"Not Set"],["Listener Port",e.LISTENER_PORT?.toString()||"Not Set"],["Debug Mode",e.DEBUG?"Enabled":"Disabled"],["Max Retries",e.MAX_RETRIES_AFTER_WAIT?.toString()||"Not Set"],["Request Timeout",e.REQUEST_TIMEOUT?`${e.REQUEST_TIMEOUT}ms`:"Not Set"],["Private PEM",e.FLOW_API_PRIVATE_PEM?"Configured":"Not Set"],["Passphrase",e.FLOW_API_PASSPHRASE?"Configured":"Not Set"]],o=Math.max(...t.map(([a])=>a?.length||0)),i=Math.max(...t.map(([,a])=>a?.length||0)),r=Math.max(o,20),n=Math.max(i,30),p=`\u250C${"\u2500".repeat(r+2)}\u252C${"\u2500".repeat(n+2)}\u2510`,c=`\u251C${"\u2500".repeat(r+2)}\u253C${"\u2500".repeat(n+2)}\u2524`,d=`\u2514${"\u2500".repeat(r+2)}\u2534${"\u2500".repeat(n+2)}\u2518`,m=`\u2502 ${"Configuration".padEnd(r)} \u2502 ${"Value".padEnd(n)} \u2502`,u=t.map(([a,l])=>`\u2502 ${a?.padEnd(r)} \u2502 ${l?.padEnd(n)} \u2502`);return [p,m,c,...u,d].join(`
2
+ `)}function x(e){return e!=null&&typeof e=="object"&&"error"in e&&typeof e.error=="object"&&e.error!=null&&"message"in e.error&&typeof e.error.message=="string"&&"type"in e.error&&typeof e.error.type=="string"&&"code"in e.error&&typeof e.error.code=="number"&&"fbtrace_id"in e.error&&typeof e.error.fbtrace_id=="string"&&(!("error_data"in e.error)||typeof e.error.error_data=="object"&&e.error.error_data!=null&&"messaging_product"in e.error.error_data&&e.error.error_data.messaging_product==="whatsapp"&&"details"in e.error.error_data&&typeof e.error.error_data.details=="string")&&(!("error_subcode"in e.error)||typeof e.error.error_subcode=="number")}function h(){try{let e=join(__dirname,"../../package.json");return JSON.parse(readFileSync(e,"utf-8")).version}catch{return "unknown"}}function k(){let e=h(),t=process.version;return `WhatsApp-Nodejs-SDK/${e} (Node.js ${t})`}export{s as a,y as b,x as c,h as d,k as e};//# sourceMappingURL=chunk-FKXSL2JK.js.map
3
+ //# sourceMappingURL=chunk-FKXSL2JK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/logger.ts","../src/utils/configTable.ts","../src/utils/isMetaError.ts","../src/utils/version.ts"],"names":["Logger","name","debug","data","prefix","formatConfigTable","config","configData","maxKeyLength","key","maxValueLength","value","keyWidth","valueWidth","horizontalLine","separator","bottomLine","header","rows","isMetaError","error","getVersion","packagePath","join","readFileSync","getUserAgent","version","nodeVersion"],"mappings":"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","file":"chunk-FKXSL2JK.js","sourcesContent":["// @ts-nocheck\nimport type { LoggerInterface } from '../types/logger';\n\nexport default class Logger implements LoggerInterface {\n private name: string;\n private debug: boolean;\n\n constructor(name: string, debug: boolean = false) {\n this.name = name;\n this.debug = debug;\n }\n\n log(...data: any[]) {\n if (this.debug) {\n let prefix = `[ ${Date.now()} ]`;\n if (this.name) {\n prefix += ` - ${this.name}`;\n }\n console.log.apply(console, [prefix, ': ', ...data]);\n }\n }\n\n error(...data: any[]) {\n let prefix = `[ ${Date.now()} ] - ERROR`;\n if (this.name) {\n prefix += ` - ${this.name}`;\n }\n console.error.apply(console, [prefix, ': ', ...data]);\n }\n\n warn(...data: any[]) {\n let prefix = `[ ${Date.now()} ] - WARN`;\n if (this.name) {\n prefix += ` - ${this.name}`;\n }\n console.warn.apply(console, [prefix, ': ', ...data]);\n }\n\n info(...data: any[]) {\n let prefix = `[ ${Date.now()} ] - INFO`;\n if (this.name) {\n prefix += ` - ${this.name}`;\n }\n console.info.apply(console, [prefix, ': ', ...data]);\n }\n}\n","import type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\n\n/**\n * Formats configuration as a terminal table\n * @param config - The WABA configuration object\n * @param apiName - The name of the API being initialized\n * @returns Formatted table string\n */\nexport function formatConfigTable(config: WabaConfigType): string {\n const configData = [\n ['App ID', config[WabaConfigEnum.AppId] || 'Not Set'],\n ['Phone Number ID', config[WabaConfigEnum.PhoneNumberId]?.toString() || 'Not Set'],\n ['Business Account ID', config[WabaConfigEnum.BusinessAcctId] || 'Not Set'],\n ['API Version', config[WabaConfigEnum.APIVersion] || 'Not Set'],\n [\n 'Access Token',\n config[WabaConfigEnum.AccessToken]\n ? `${config[WabaConfigEnum.AccessToken].substring(0, 20)}...`\n : 'Not Set',\n ],\n ['Webhook Endpoint', config[WabaConfigEnum.WebhookEndpoint] || 'Not Set'],\n [\n 'Webhook Verification Token',\n config[WabaConfigEnum.WebhookVerificationToken]\n ? `${config[WabaConfigEnum.WebhookVerificationToken].substring(0, 10)}...`\n : 'Not Set',\n ],\n ['Listener Port', config[WabaConfigEnum.ListenerPort]?.toString() || 'Not Set'],\n ['Debug Mode', config[WabaConfigEnum.Debug] ? 'Enabled' : 'Disabled'],\n ['Max Retries', config[WabaConfigEnum.MaxRetriesAfterWait]?.toString() || 'Not Set'],\n [\n 'Request Timeout',\n config[WabaConfigEnum.RequestTimeout] ? `${config[WabaConfigEnum.RequestTimeout]}ms` : 'Not Set',\n ],\n ['Private PEM', config[WabaConfigEnum.PrivatePem] ? 'Configured' : 'Not Set'],\n ['Passphrase', config[WabaConfigEnum.Passphrase] ? 'Configured' : 'Not Set'],\n ];\n\n // Calculate column widths\n const maxKeyLength = Math.max(...configData.map(([key]) => key?.length || 0));\n const maxValueLength = Math.max(...configData.map(([, value]) => value?.length || 0));\n\n const keyWidth = Math.max(maxKeyLength, 20);\n const valueWidth = Math.max(maxValueLength, 30);\n\n // Create table\n const horizontalLine = `┌${'─'.repeat(keyWidth + 2)}┬${'─'.repeat(valueWidth + 2)}┐`;\n const separator = `├${'─'.repeat(keyWidth + 2)}┼${'─'.repeat(valueWidth + 2)}┤`;\n const bottomLine = `└${'─'.repeat(keyWidth + 2)}┴${'─'.repeat(valueWidth + 2)}┘`;\n\n const header = `│ ${'Configuration'.padEnd(keyWidth)} │ ${'Value'.padEnd(valueWidth)} │`;\n\n const rows = configData.map(([key, value]) => `│ ${key?.padEnd(keyWidth)} │ ${value?.padEnd(valueWidth)} │`);\n\n return [horizontalLine, header, separator, ...rows, bottomLine].join('\\n');\n}\n","export interface MetaError extends Error {\n error: {\n message: string;\n type: string;\n code: number;\n error_data?: {\n messaging_product: 'whatsapp';\n details: string;\n };\n error_subcode?: number;\n fbtrace_id: string;\n };\n}\n\n/**\n * Determines if the error is a Meta API error response\n * @param error Any error object to check\n * @returns Type guard indicating if error is a Meta API error\n */\nexport function isMetaError(error: any): error is MetaError {\n return (\n error != null &&\n typeof error === 'object' &&\n 'error' in error &&\n typeof error.error === 'object' &&\n error.error != null &&\n 'message' in error.error &&\n typeof error.error.message === 'string' &&\n 'type' in error.error &&\n typeof error.error.type === 'string' &&\n 'code' in error.error &&\n typeof error.error.code === 'number' &&\n 'fbtrace_id' in error.error &&\n typeof error.error.fbtrace_id === 'string' &&\n (!('error_data' in error.error) ||\n (typeof error.error.error_data === 'object' &&\n error.error.error_data != null &&\n 'messaging_product' in error.error.error_data &&\n error.error.error_data.messaging_product === 'whatsapp' &&\n 'details' in error.error.error_data &&\n typeof error.error.error_data.details === 'string')) &&\n (!('error_subcode' in error.error) || typeof error.error.error_subcode === 'number')\n );\n}\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\n\n/**\n * Get SDK version from package.json\n */\nexport function getVersion(): string {\n try {\n const packagePath = join(__dirname, '../../package.json');\n const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));\n return packageJson.version;\n } catch (error) {\n return 'unknown';\n }\n}\n\n/**\n * Generate User-Agent string following official SDK pattern\n */\nexport function getUserAgent(): string {\n const version = getVersion();\n const nodeVersion = process.version;\n return `WhatsApp-Nodejs-SDK/${version} (Node.js ${nodeVersion})`;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$2}from'./chunk-MJEG3K4V.js';import {a as a$1}from'./chunk-RIL6QABY.js';var s=class extends a$1{endpoint="phone_numbers";constructor(e,t){super(e,t);}async getPhoneNumberById(e){let t=e?a$2({fields:e}):"";return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}${t}`,this.config.REQUEST_TIMEOUT,null)}async getPhoneNumbers(){return this.sendJson("GET",`${this.config.WA_BUSINESS_ACCOUNT_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,null)}async requestVerificationCode(e){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/request_code`,this.config.REQUEST_TIMEOUT,JSON.stringify(e))}async verifyCode(e){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/verify_code`,this.config.REQUEST_TIMEOUT,JSON.stringify(e))}};var a=s;export{s as a,a as b};//# sourceMappingURL=chunk-FSKBLPGE.js.map
2
+ //# sourceMappingURL=chunk-FSKBLPGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/phone/PhoneNumberApi.ts","../src/api/phone/index.ts"],"names":["PhoneNumberApi","BaseAPI","config","client","fields","queryParams","objectToQueryString","request","phone_default"],"mappings":"sFAiBA,IAAqBA,CAAAA,CAArB,cAA4CC,GAAgD,CACvE,QAAA,CAAW,gBAE5B,WAAA,CAAYC,CAAAA,CAAwBC,CAAAA,CAAwB,CACxD,KAAA,CAAMD,CAAAA,CAAQC,CAAM,EACxB,CAYA,MAAM,kBAAA,CAAmBC,CAAAA,CAA2D,CAChF,IAAMC,CAAAA,CAAcD,CAAAA,CAASE,GAAAA,CAAoB,CAAE,MAAA,CAAAF,CAAO,CAAC,CAAA,CAAI,EAAA,CAC/D,OAAO,IAAA,CAAK,QAAA,CAAA,KAAA,CAER,CAAA,EAAG,KAAK,MAAA,CAAO,kBAA6B,CAAA,EAAGC,CAAW,CAAA,CAAA,CAC1D,IAAA,CAAK,OAAO,eAAA,CACZ,IACJ,CACJ,CAUA,MAAM,eAAA,EAA6D,CAC/D,OAAO,IAAA,CAAK,QAAA,CAAA,KAAA,CAER,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,sBAA8B,CAAA,CAAA,EAAI,IAAA,CAAK,QAAQ,CAAA,CAAA,CAC9D,IAAA,CAAK,MAAA,CAAO,gBACZ,IACJ,CACJ,CAcA,MAAM,uBAAA,CAAwBE,CAAAA,CAA+E,CACzG,OAAO,IAAA,CAAK,QAAA,CAAA,MAAA,CAER,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,kBAA6B,CAAA,aAAA,CAAA,CAC5C,IAAA,CAAK,MAAA,CAAO,eAAA,CACZ,IAAA,CAAK,SAAA,CAAUA,CAAO,CAC1B,CACJ,CAaA,MAAM,UAAA,CAAWA,CAAAA,CAAkE,CAC/E,OAAO,IAAA,CAAK,QAAA,CAAA,MAAA,CAER,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,kBAA6B,CAAA,YAAA,CAAA,CAC5C,IAAA,CAAK,MAAA,CAAO,eAAA,CACZ,IAAA,CAAK,SAAA,CAAUA,CAAO,CAC1B,CACJ,CACJ,ECnGA,IAAOC,CAAAA,CAAQR","file":"chunk-FSKBLPGE.js","sourcesContent":["import { BaseAPI } from '../../types/base';\nimport type { WabaConfigType } from '../../types/config';\nimport { HttpMethodsEnum, WabaConfigEnum } from '../../types/enums';\nimport type { RequesterClass, ResponseSuccess } from '../../types/request';\nimport { objectToQueryString } from '../../utils/objectToQueryString';\n\nimport type * as phoneNumber from './types';\n\n/**\n * API for managing WhatsApp Phone Numb ers.\n *\n * This API allows you to:\n * - Get phone number information by ID\n * - Get all phone numbers for a business account\n * - Request verification codes for phone numbers\n * - Verify phone numbers with codes\n */\nexport default class PhoneNumberApi extends BaseAPI implements phoneNumber.PhoneNumberClass {\n private readonly endpoint = 'phone_numbers';\n\n constructor(config: WabaConfigType, client: RequesterClass) {\n super(config, client);\n }\n\n /**\n * Get phone number information by ID.\n *\n * @param fields Optional comma-separated list of fields to include in the response\n * @returns Phone number information including verification status, quality rating, etc.\n *\n * @example\n * const phoneNumber = await whatsappClient.phoneNumber.getPhoneNumberById();\n * const phoneNumberWithFields = await whatsappClient.phoneNumber.getPhoneNumberById('display_phone_number,verified_name');\n */\n async getPhoneNumberById(fields?: string): Promise<phoneNumber.PhoneNumberResponse> {\n const queryParams = fields ? objectToQueryString({ fields }) : '';\n return this.sendJson(\n HttpMethodsEnum.Get,\n `${this.config[WabaConfigEnum.PhoneNumberId]}${queryParams}`,\n this.config[WabaConfigEnum.RequestTimeout],\n null,\n );\n }\n\n /**\n * Get all phone numbers for the business account.\n *\n * @returns List of phone numbers associated with the business account\n *\n * @example\n * const phoneNumbers = await whatsappClient.phoneNumber.getPhoneNumbers();\n */\n async getPhoneNumbers(): Promise<phoneNumber.PhoneNumbersResponse> {\n return this.sendJson(\n HttpMethodsEnum.Get,\n `${this.config[WabaConfigEnum.BusinessAcctId]}/${this.endpoint}`,\n this.config[WabaConfigEnum.RequestTimeout],\n null,\n );\n }\n\n /**\n * Request a verification code for the phone number.\n *\n * @param request Verification code request containing method and language\n * @returns Response indicating success or failure\n *\n * @example\n * await whatsappClient.phoneNumber.requestVerificationCode({\n * code_method: 'SMS',\n * language: 'en_US'\n * });\n */\n async requestVerificationCode(request: phoneNumber.RequestVerificationCodeRequest): Promise<ResponseSuccess> {\n return this.sendJson(\n HttpMethodsEnum.Post,\n `${this.config[WabaConfigEnum.PhoneNumberId]}/request_code`,\n this.config[WabaConfigEnum.RequestTimeout],\n JSON.stringify(request),\n );\n }\n\n /**\n * Verify the phone number with the received code.\n *\n * @param request Verification request containing the code\n * @returns Response indicating success or failure\n *\n * @example\n * await whatsappClient.phoneNumber.verifyCode({\n * code: '123456'\n * });\n */\n async verifyCode(request: phoneNumber.VerifyCodeRequest): Promise<ResponseSuccess> {\n return this.sendJson(\n HttpMethodsEnum.Post,\n `${this.config[WabaConfigEnum.PhoneNumberId]}/verify_code`,\n this.config[WabaConfigEnum.RequestTimeout],\n JSON.stringify(request),\n );\n }\n}\n","import PhoneNumberApi from './PhoneNumberApi';\n\nexport default PhoneNumberApi;\n\nexport { PhoneNumberApi };\n\nexport type {\n AccountMode,\n CodeVerificationStatus,\n Cursors,\n HealthStatus,\n HealthStatusEntity,\n MessagingLimitTier,\n PhoneNumberClass,\n PhoneNumberResponse,\n PhoneNumbersResponse,\n PlatformType,\n QualityRating,\n QualityScore,\n RequestVerificationCodeRequest,\n Throughput,\n ThroughputLevel,\n TwoStepVerificationParams,\n VerifyCodeRequest,\n} from './types';\n"]}