meta-cloud-api 0.2.11 → 0.2.13

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 (297) hide show
  1. package/README.md +5 -2
  2. package/dist/api/index.d.mts +495 -27
  3. package/dist/api/index.mjs +1 -1
  4. package/dist/api/index.mjs.map +1 -1
  5. package/dist/chunk-KZQQJAPX.mjs +2 -0
  6. package/dist/chunk-KZQQJAPX.mjs.map +1 -0
  7. package/dist/chunk-N7A7DQDX.mjs +2 -0
  8. package/dist/chunk-N7A7DQDX.mjs.map +1 -0
  9. package/dist/chunk-QE4PKOSW.mjs +2 -0
  10. package/dist/chunk-QE4PKOSW.mjs.map +1 -0
  11. package/dist/chunk-R4CFE2XP.mjs +2 -0
  12. package/dist/chunk-R4CFE2XP.mjs.map +1 -0
  13. package/dist/chunk-XVYL7ZTG.mjs +2 -0
  14. package/dist/chunk-XVYL7ZTG.mjs.map +1 -0
  15. package/dist/index.d.mts +142 -43
  16. package/dist/index.mjs +2 -2
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/types/index.d.mts +512 -19
  19. package/dist/types/index.mjs +1 -1
  20. package/dist/types/index.mjs.map +1 -1
  21. package/dist/utils/index.d.mts +70 -21
  22. package/dist/utils/index.mjs +1 -1
  23. package/dist/utils/index.mjs.map +1 -1
  24. package/dist/waba-RRlZTQUG.d.mts +2229 -0
  25. package/dist/{types/whatsapp.d.ts → whatsapp-BNHXjrds.d.mts} +2 -17
  26. package/package.json +52 -18
  27. package/dist/api/base.d.mts +0 -15
  28. package/dist/api/base.d.ts +0 -15
  29. package/dist/api/base.js +0 -2
  30. package/dist/api/base.js.map +0 -1
  31. package/dist/api/base.mjs +0 -2
  32. package/dist/api/base.mjs.map +0 -1
  33. package/dist/api/businessProfile.d.mts +0 -145
  34. package/dist/api/businessProfile.d.ts +0 -145
  35. package/dist/api/businessProfile.js +0 -2
  36. package/dist/api/businessProfile.js.map +0 -1
  37. package/dist/api/businessProfile.mjs +0 -2
  38. package/dist/api/businessProfile.mjs.map +0 -1
  39. package/dist/api/encryption.d.mts +0 -15
  40. package/dist/api/encryption.d.ts +0 -15
  41. package/dist/api/encryption.js +0 -2
  42. package/dist/api/encryption.js.map +0 -1
  43. package/dist/api/encryption.mjs +0 -2
  44. package/dist/api/encryption.mjs.map +0 -1
  45. package/dist/api/flow.d.mts +0 -126
  46. package/dist/api/flow.d.ts +0 -126
  47. package/dist/api/flow.js +0 -2
  48. package/dist/api/flow.js.map +0 -1
  49. package/dist/api/flow.mjs +0 -2
  50. package/dist/api/flow.mjs.map +0 -1
  51. package/dist/api/index.d.ts +0 -28
  52. package/dist/api/index.js +0 -2
  53. package/dist/api/index.js.map +0 -1
  54. package/dist/api/media.d.mts +0 -17
  55. package/dist/api/media.d.ts +0 -17
  56. package/dist/api/media.js +0 -2
  57. package/dist/api/media.js.map +0 -1
  58. package/dist/api/media.mjs +0 -2
  59. package/dist/api/media.mjs.map +0 -1
  60. package/dist/api/messages.d.mts +0 -193
  61. package/dist/api/messages.d.ts +0 -193
  62. package/dist/api/messages.js +0 -2
  63. package/dist/api/messages.js.map +0 -1
  64. package/dist/api/messages.mjs +0 -2
  65. package/dist/api/messages.mjs.map +0 -1
  66. package/dist/api/phoneNumber.d.mts +0 -17
  67. package/dist/api/phoneNumber.d.ts +0 -17
  68. package/dist/api/phoneNumber.js +0 -2
  69. package/dist/api/phoneNumber.js.map +0 -1
  70. package/dist/api/phoneNumber.mjs +0 -2
  71. package/dist/api/phoneNumber.mjs.map +0 -1
  72. package/dist/api/qrCode.d.mts +0 -18
  73. package/dist/api/qrCode.d.ts +0 -18
  74. package/dist/api/qrCode.js +0 -2
  75. package/dist/api/qrCode.js.map +0 -1
  76. package/dist/api/qrCode.mjs +0 -2
  77. package/dist/api/qrCode.mjs.map +0 -1
  78. package/dist/api/registration.d.mts +0 -14
  79. package/dist/api/registration.d.ts +0 -14
  80. package/dist/api/registration.js +0 -2
  81. package/dist/api/registration.js.map +0 -1
  82. package/dist/api/registration.mjs +0 -2
  83. package/dist/api/registration.mjs.map +0 -1
  84. package/dist/api/template.d.mts +0 -18
  85. package/dist/api/template.d.ts +0 -18
  86. package/dist/api/template.js +0 -2
  87. package/dist/api/template.js.map +0 -1
  88. package/dist/api/template.mjs +0 -2
  89. package/dist/api/template.mjs.map +0 -1
  90. package/dist/api/twoStepVerification.d.mts +0 -13
  91. package/dist/api/twoStepVerification.d.ts +0 -13
  92. package/dist/api/twoStepVerification.js +0 -2
  93. package/dist/api/twoStepVerification.js.map +0 -1
  94. package/dist/api/twoStepVerification.mjs +0 -2
  95. package/dist/api/twoStepVerification.mjs.map +0 -1
  96. package/dist/api/waba.d.mts +0 -16
  97. package/dist/api/waba.d.ts +0 -16
  98. package/dist/api/waba.js +0 -2
  99. package/dist/api/waba.js.map +0 -1
  100. package/dist/api/waba.mjs +0 -2
  101. package/dist/api/waba.mjs.map +0 -1
  102. package/dist/enums-CI7vzKhn.d.mts +0 -687
  103. package/dist/enums-CI7vzKhn.d.ts +0 -687
  104. package/dist/httpsClient.d.mts +0 -22
  105. package/dist/httpsClient.d.ts +0 -22
  106. package/dist/httpsClient.js +0 -2
  107. package/dist/httpsClient.js.map +0 -1
  108. package/dist/httpsClient.mjs +0 -2
  109. package/dist/httpsClient.mjs.map +0 -1
  110. package/dist/index.d.ts +0 -46
  111. package/dist/index.js +0 -3
  112. package/dist/index.js.map +0 -1
  113. package/dist/request.d.mts +0 -25
  114. package/dist/request.d.ts +0 -25
  115. package/dist/request.js +0 -2
  116. package/dist/request.js.map +0 -1
  117. package/dist/request.mjs +0 -2
  118. package/dist/request.mjs.map +0 -1
  119. package/dist/types/base.d.mts +0 -8
  120. package/dist/types/base.d.ts +0 -8
  121. package/dist/types/base.js +0 -2
  122. package/dist/types/base.js.map +0 -1
  123. package/dist/types/base.mjs +0 -1
  124. package/dist/types/base.mjs.map +0 -1
  125. package/dist/types/businessProfile.d.mts +0 -153
  126. package/dist/types/businessProfile.d.ts +0 -153
  127. package/dist/types/businessProfile.js +0 -2
  128. package/dist/types/businessProfile.js.map +0 -1
  129. package/dist/types/businessProfile.mjs +0 -1
  130. package/dist/types/businessProfile.mjs.map +0 -1
  131. package/dist/types/config.d.mts +0 -62
  132. package/dist/types/config.d.ts +0 -62
  133. package/dist/types/config.js +0 -2
  134. package/dist/types/config.js.map +0 -1
  135. package/dist/types/config.mjs +0 -1
  136. package/dist/types/config.mjs.map +0 -1
  137. package/dist/types/encryption.d.mts +0 -13
  138. package/dist/types/encryption.d.ts +0 -13
  139. package/dist/types/encryption.js +0 -2
  140. package/dist/types/encryption.js.map +0 -1
  141. package/dist/types/encryption.mjs +0 -1
  142. package/dist/types/encryption.mjs.map +0 -1
  143. package/dist/types/enums.d.mts +0 -1
  144. package/dist/types/enums.d.ts +0 -1
  145. package/dist/types/enums.js +0 -2
  146. package/dist/types/enums.js.map +0 -1
  147. package/dist/types/enums.mjs +0 -2
  148. package/dist/types/enums.mjs.map +0 -1
  149. package/dist/types/flow.d.mts +0 -404
  150. package/dist/types/flow.d.ts +0 -404
  151. package/dist/types/flow.js +0 -2
  152. package/dist/types/flow.js.map +0 -1
  153. package/dist/types/flow.mjs +0 -2
  154. package/dist/types/flow.mjs.map +0 -1
  155. package/dist/types/httpsClient.d.mts +0 -19
  156. package/dist/types/httpsClient.d.ts +0 -19
  157. package/dist/types/httpsClient.js +0 -2
  158. package/dist/types/httpsClient.js.map +0 -1
  159. package/dist/types/httpsClient.mjs +0 -1
  160. package/dist/types/httpsClient.mjs.map +0 -1
  161. package/dist/types/index.d.ts +0 -20
  162. package/dist/types/index.js +0 -2
  163. package/dist/types/index.js.map +0 -1
  164. package/dist/types/logger.d.mts +0 -9
  165. package/dist/types/logger.d.ts +0 -9
  166. package/dist/types/logger.js +0 -2
  167. package/dist/types/logger.js.map +0 -1
  168. package/dist/types/logger.mjs +0 -1
  169. package/dist/types/logger.mjs.map +0 -1
  170. package/dist/types/media.d.mts +0 -31
  171. package/dist/types/media.d.ts +0 -31
  172. package/dist/types/media.js +0 -2
  173. package/dist/types/media.js.map +0 -1
  174. package/dist/types/media.mjs +0 -1
  175. package/dist/types/media.mjs.map +0 -1
  176. package/dist/types/messages.d.mts +0 -558
  177. package/dist/types/messages.d.ts +0 -558
  178. package/dist/types/messages.js +0 -2
  179. package/dist/types/messages.js.map +0 -1
  180. package/dist/types/messages.mjs +0 -1
  181. package/dist/types/messages.mjs.map +0 -1
  182. package/dist/types/phoneNumber.d.mts +0 -82
  183. package/dist/types/phoneNumber.d.ts +0 -82
  184. package/dist/types/phoneNumber.js +0 -2
  185. package/dist/types/phoneNumber.js.map +0 -1
  186. package/dist/types/phoneNumber.mjs +0 -1
  187. package/dist/types/phoneNumber.mjs.map +0 -1
  188. package/dist/types/qrCode.d.mts +0 -27
  189. package/dist/types/qrCode.d.ts +0 -27
  190. package/dist/types/qrCode.js +0 -2
  191. package/dist/types/qrCode.js.map +0 -1
  192. package/dist/types/qrCode.mjs +0 -1
  193. package/dist/types/qrCode.mjs.map +0 -1
  194. package/dist/types/registration.d.mts +0 -14
  195. package/dist/types/registration.d.ts +0 -14
  196. package/dist/types/registration.js +0 -2
  197. package/dist/types/registration.js.map +0 -1
  198. package/dist/types/registration.mjs +0 -1
  199. package/dist/types/registration.mjs.map +0 -1
  200. package/dist/types/request.d.mts +0 -50
  201. package/dist/types/request.d.ts +0 -50
  202. package/dist/types/request.js +0 -2
  203. package/dist/types/request.js.map +0 -1
  204. package/dist/types/request.mjs +0 -1
  205. package/dist/types/request.mjs.map +0 -1
  206. package/dist/types/template.d.mts +0 -106
  207. package/dist/types/template.d.ts +0 -106
  208. package/dist/types/template.js +0 -2
  209. package/dist/types/template.js.map +0 -1
  210. package/dist/types/template.mjs +0 -1
  211. package/dist/types/template.mjs.map +0 -1
  212. package/dist/types/twoStepVerification.d.mts +0 -11
  213. package/dist/types/twoStepVerification.d.ts +0 -11
  214. package/dist/types/twoStepVerification.js +0 -2
  215. package/dist/types/twoStepVerification.js.map +0 -1
  216. package/dist/types/twoStepVerification.mjs +0 -1
  217. package/dist/types/twoStepVerification.mjs.map +0 -1
  218. package/dist/types/waba.d.mts +0 -78
  219. package/dist/types/waba.d.ts +0 -78
  220. package/dist/types/waba.js +0 -2
  221. package/dist/types/waba.js.map +0 -1
  222. package/dist/types/waba.mjs +0 -2
  223. package/dist/types/waba.mjs.map +0 -1
  224. package/dist/types/webhook.d.mts +0 -486
  225. package/dist/types/webhook.d.ts +0 -486
  226. package/dist/types/webhook.js +0 -2
  227. package/dist/types/webhook.js.map +0 -1
  228. package/dist/types/webhook.mjs +0 -2
  229. package/dist/types/webhook.mjs.map +0 -1
  230. package/dist/types/whatsapp.d.mts +0 -61
  231. package/dist/types/whatsapp.js +0 -2
  232. package/dist/types/whatsapp.js.map +0 -1
  233. package/dist/types/whatsapp.mjs +0 -1
  234. package/dist/types/whatsapp.mjs.map +0 -1
  235. package/dist/utils/buildFieldsQueryString.d.mts +0 -3
  236. package/dist/utils/buildFieldsQueryString.d.ts +0 -3
  237. package/dist/utils/buildFieldsQueryString.js +0 -2
  238. package/dist/utils/buildFieldsQueryString.js.map +0 -1
  239. package/dist/utils/buildFieldsQueryString.mjs +0 -2
  240. package/dist/utils/buildFieldsQueryString.mjs.map +0 -1
  241. package/dist/utils/filters.d.mts +0 -144
  242. package/dist/utils/filters.d.ts +0 -144
  243. package/dist/utils/filters.js +0 -2
  244. package/dist/utils/filters.js.map +0 -1
  245. package/dist/utils/filters.mjs +0 -2
  246. package/dist/utils/filters.mjs.map +0 -1
  247. package/dist/utils/flowTypeGuards.d.mts +0 -46
  248. package/dist/utils/flowTypeGuards.d.ts +0 -46
  249. package/dist/utils/flowTypeGuards.js +0 -2
  250. package/dist/utils/flowTypeGuards.js.map +0 -1
  251. package/dist/utils/flowTypeGuards.mjs +0 -2
  252. package/dist/utils/flowTypeGuards.mjs.map +0 -1
  253. package/dist/utils/generateXHub256Sig.d.mts +0 -3
  254. package/dist/utils/generateXHub256Sig.d.ts +0 -3
  255. package/dist/utils/generateXHub256Sig.js +0 -2
  256. package/dist/utils/generateXHub256Sig.js.map +0 -1
  257. package/dist/utils/generateXHub256Sig.mjs +0 -2
  258. package/dist/utils/generateXHub256Sig.mjs.map +0 -1
  259. package/dist/utils/importConfig.d.mts +0 -21
  260. package/dist/utils/importConfig.d.ts +0 -21
  261. package/dist/utils/importConfig.js +0 -2
  262. package/dist/utils/importConfig.js.map +0 -1
  263. package/dist/utils/importConfig.mjs +0 -2
  264. package/dist/utils/importConfig.mjs.map +0 -1
  265. package/dist/utils/index.d.ts +0 -22
  266. package/dist/utils/index.js +0 -2
  267. package/dist/utils/index.js.map +0 -1
  268. package/dist/utils/isMetaError.d.mts +0 -21
  269. package/dist/utils/isMetaError.d.ts +0 -21
  270. package/dist/utils/isMetaError.js +0 -2
  271. package/dist/utils/isMetaError.js.map +0 -1
  272. package/dist/utils/isMetaError.mjs +0 -2
  273. package/dist/utils/isMetaError.mjs.map +0 -1
  274. package/dist/utils/logger.d.mts +0 -13
  275. package/dist/utils/logger.d.ts +0 -13
  276. package/dist/utils/logger.js +0 -2
  277. package/dist/utils/logger.js.map +0 -1
  278. package/dist/utils/logger.mjs +0 -2
  279. package/dist/utils/logger.mjs.map +0 -1
  280. package/dist/utils/objectToQueryString.d.mts +0 -3
  281. package/dist/utils/objectToQueryString.d.ts +0 -3
  282. package/dist/utils/objectToQueryString.js +0 -2
  283. package/dist/utils/objectToQueryString.js.map +0 -1
  284. package/dist/utils/objectToQueryString.mjs +0 -2
  285. package/dist/utils/objectToQueryString.mjs.map +0 -1
  286. package/dist/webhook.d.mts +0 -123
  287. package/dist/webhook.d.ts +0 -123
  288. package/dist/webhook.js +0 -3
  289. package/dist/webhook.js.map +0 -1
  290. package/dist/webhook.mjs +0 -3
  291. package/dist/webhook.mjs.map +0 -1
  292. package/dist/whatsapp.d.mts +0 -58
  293. package/dist/whatsapp.d.ts +0 -58
  294. package/dist/whatsapp.js +0 -2
  295. package/dist/whatsapp.js.map +0 -1
  296. package/dist/whatsapp.mjs +0 -2
  297. package/dist/whatsapp.mjs.map +0 -1
@@ -1,22 +0,0 @@
1
- import { Agent } from 'https';
2
- import { H as HttpMethodsEnum } from './enums-CI7vzKhn.js';
3
- import { HttpsClientClass, HttpsClientResponseClass, ResponseHeaders, ResponseJSONBody } from './types/httpsClient.js';
4
-
5
- declare class HttpsClient implements HttpsClientClass {
6
- agent: Agent;
7
- constructor();
8
- clearSockets(): boolean;
9
- sendRequest(hostname: string, path: string, method: HttpMethodsEnum, headers: HeadersInit, timeout: number, body?: BodyInit | null): Promise<HttpsClientResponseClass>;
10
- }
11
- declare class HttpsClientResponse implements HttpsClientResponseClass {
12
- res: Response;
13
- respStatusCode: number;
14
- respHeaders: ResponseHeaders;
15
- constructor(resp: Response);
16
- statusCode(): number;
17
- headers(): ResponseHeaders;
18
- rawResponse(): Response;
19
- json(): Promise<ResponseJSONBody>;
20
- }
21
-
22
- export { HttpsClientResponse, HttpsClient as default };
@@ -1,2 +0,0 @@
1
- "use strict";var p=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var s in e)p(t,s,{get:e[s],enumerable:!0})},C=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of y(e))!R.call(t,r)&&r!==s&&p(t,r,{get:()=>e[r],enumerable:!(o=g(e,r))||o.enumerable});return t};var b=t=>C(p({},"__esModule",{value:!0}),t);var E={};w(E,{HttpsClientResponse:()=>l,default:()=>i});module.exports=b(E);var u=require("https");var n=class{name;debug;constructor(e,s=!1){this.name=e,this.debug=s}log(...e){if(this.debug){let s=`[ ${Date.now()} ]`;this.name&&(s+=` - ${this.name}`),console.log.apply(console,[s,": ",...e])}}error(...e){let s=`[ ${Date.now()} ] - ERROR`;this.name&&(s+=` - ${this.name}`),console.error.apply(console,[s,": ",...e])}warn(...e){let s=`[ ${Date.now()} ] - WARN`;this.name&&(s+=` - ${this.name}`),console.warn.apply(console,[s,": ",...e])}info(...e){let s=`[ ${Date.now()} ] - INFO`;this.name&&(s+=` - ${this.name}`),console.info.apply(console,[s,": ",...e])}};var H="HttpsClient",$=!1,O=new n(H,process.env.DEBUG==="true"||$),i=class{agent;constructor(){this.agent=new u.Agent({keepAlive:!0})}clearSockets(){return this.agent.destroy(),!0}async sendRequest(e,s,o,r,h,d){let c=`https://${e}/${s}`,m=new AbortController,f=setTimeout(()=>m.abort(),h);try{let a=await fetch(c,{method:o,headers:r,body:d,signal:m.signal});return O.log(`${o} : ${c} - ${JSON.stringify(a)}`),clearTimeout(f),new l(a)}catch(a){throw a}}},l=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)}}};0&&(module.exports={HttpsClientResponse});
2
- //# sourceMappingURL=httpsClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/httpsClient.ts","../src/utils/logger.ts"],"sourcesContent":["import { Agent } from 'https';\n\nimport Logger from './utils/logger';\nimport { HttpMethodsEnum } from './types/enums';\nimport { HttpsClientClass, HttpsClientResponseClass, ResponseHeaders, ResponseJSONBody } from './types/httpsClient';\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 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","// @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"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAsB,iBCGtB,IAAqBC,EAArB,KAAuD,CAC3C,KACA,MAER,YAAYC,EAAcC,EAAiB,GAAO,CAC9C,KAAK,KAAOD,EACZ,KAAK,MAAQC,CACjB,CAEA,OAAOC,EAAa,CAChB,GAAI,KAAK,MAAO,CACZ,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,KACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,IAAI,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACtD,CACJ,CAEA,SAASA,EAAa,CAClB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,aACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,MAAM,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACxD,CAEA,QAAQA,EAAa,CACjB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,YACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,KAAK,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACvD,CAEA,QAAQA,EAAa,CACjB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,YACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,KAAK,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACvD,CACJ,EDvCA,IAAME,EAAW,cACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EAExDG,EAArB,KAA6D,CACzD,MAEA,aAAc,CACV,KAAK,MAAQ,IAAI,QAAM,CAAE,UAAW,EAAK,CAAC,CAC9C,CAEA,cAAwB,CACpB,YAAK,MAAM,QAAQ,EACZ,EACX,CAEA,MAAM,YACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACiC,CACjC,IAAMC,EAAM,WAAWN,CAAQ,IAAIC,CAAI,GACjCM,EAAa,IAAI,gBACjBC,EAAY,WAAW,IAAMD,EAAW,MAAM,EAAGH,CAAO,EAE9D,GAAI,CACA,IAAMK,EAAW,MAAM,MAAMH,EAAK,CAC9B,OAAAJ,EACA,QAAAC,EACA,KAAAE,EACA,OAAQE,EAAW,MACvB,CAAC,EACD,OAAAV,EAAO,IAAI,GAAGK,CAAM,MAAMI,CAAG,MAAM,KAAK,UAAUG,CAAQ,CAAC,EAAE,EAE7D,aAAaD,CAAS,EACf,IAAIE,EAAoBD,CAAQ,CAC3C,OAASE,EAAO,CACZ,MAAMA,CACV,CACJ,CACJ,EAEaD,EAAN,KAA8D,CACjE,IACA,eACA,YAEA,YAAYE,EAAgB,CACxB,KAAK,IAAMA,EACX,KAAK,eAAiBA,EAAK,OAC3B,KAAK,YAAc,OAAO,YAAYA,EAAK,QAAQ,QAAQ,CAAC,CAChE,CAEA,YAAqB,CACjB,OAAO,KAAK,cAChB,CAEA,SAA2B,CACvB,OAAO,KAAK,WAChB,CAEA,aAAwB,CACpB,OAAO,KAAK,GAChB,CAEA,MAAM,MAAkC,CACpC,GAAI,CACA,OAAQ,MAAM,KAAK,IAAI,KAAK,CAChC,OAASC,EAAK,CAEV,MAAM,IAAI,MAAM,0CAA6CA,EAAc,OAAO,CACtF,CACJ,CACJ","names":["httpsClient_exports","__export","HttpsClientResponse","HttpsClient","__toCommonJS","import_https","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","HttpsClient","hostname","path","method","headers","timeout","body","url","controller","timeoutId","response","HttpsClientResponse","error","resp","err"]}
@@ -1,2 +0,0 @@
1
- import{Agent as d}from"https";var t=class{name;debug;constructor(e,s=!1){this.name=e,this.debug=s}log(...e){if(this.debug){let s=`[ ${Date.now()} ]`;this.name&&(s+=` - ${this.name}`),console.log.apply(console,[s,": ",...e])}}error(...e){let s=`[ ${Date.now()} ] - ERROR`;this.name&&(s+=` - ${this.name}`),console.error.apply(console,[s,": ",...e])}warn(...e){let s=`[ ${Date.now()} ] - WARN`;this.name&&(s+=` - ${this.name}`),console.warn.apply(console,[s,": ",...e])}info(...e){let s=`[ ${Date.now()} ] - INFO`;this.name&&(s+=` - ${this.name}`),console.info.apply(console,[s,": ",...e])}};var f="HttpsClient",g=!1,y=new t(f,process.env.DEBUG==="true"||g),o=class{agent;constructor(){this.agent=new d({keepAlive:!0})}clearSockets(){return this.agent.destroy(),!0}async sendRequest(e,s,i,c,m,u){let l=`https://${e}/${s}`,p=new AbortController,h=setTimeout(()=>p.abort(),m);try{let r=await fetch(l,{method:i,headers:c,body:u,signal:p.signal});return y.log(`${i} : ${l} - ${JSON.stringify(r)}`),clearTimeout(h),new n(r)}catch(r){throw r}}},n=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)}}};export{n as HttpsClientResponse,o as default};
2
- //# sourceMappingURL=httpsClient.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/httpsClient.ts","../src/utils/logger.ts"],"sourcesContent":["import { Agent } from 'https';\n\nimport Logger from './utils/logger';\nimport { HttpMethodsEnum } from './types/enums';\nimport { HttpsClientClass, HttpsClientResponseClass, ResponseHeaders, ResponseJSONBody } from './types/httpsClient';\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 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","// @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"],"mappings":"AAAA,OAAS,SAAAA,MAAa,QCGtB,IAAqBC,EAArB,KAAuD,CAC3C,KACA,MAER,YAAYC,EAAcC,EAAiB,GAAO,CAC9C,KAAK,KAAOD,EACZ,KAAK,MAAQC,CACjB,CAEA,OAAOC,EAAa,CAChB,GAAI,KAAK,MAAO,CACZ,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,KACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,IAAI,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACtD,CACJ,CAEA,SAASA,EAAa,CAClB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,aACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,MAAM,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACxD,CAEA,QAAQA,EAAa,CACjB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,YACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,KAAK,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACvD,CAEA,QAAQA,EAAa,CACjB,IAAIC,EAAS,KAAK,KAAK,IAAI,CAAC,YACxB,KAAK,OACLA,GAAU,MAAM,KAAK,IAAI,IAE7B,QAAQ,KAAK,MAAM,QAAS,CAACA,EAAQ,KAAM,GAAGD,CAAI,CAAC,CACvD,CACJ,EDvCA,IAAME,EAAW,cACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EAExDG,EAArB,KAA6D,CACzD,MAEA,aAAc,CACV,KAAK,MAAQ,IAAIC,EAAM,CAAE,UAAW,EAAK,CAAC,CAC9C,CAEA,cAAwB,CACpB,YAAK,MAAM,QAAQ,EACZ,EACX,CAEA,MAAM,YACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACiC,CACjC,IAAMC,EAAM,WAAWN,CAAQ,IAAIC,CAAI,GACjCM,EAAa,IAAI,gBACjBC,EAAY,WAAW,IAAMD,EAAW,MAAM,EAAGH,CAAO,EAE9D,GAAI,CACA,IAAMK,EAAW,MAAM,MAAMH,EAAK,CAC9B,OAAAJ,EACA,QAAAC,EACA,KAAAE,EACA,OAAQE,EAAW,MACvB,CAAC,EACD,OAAAX,EAAO,IAAI,GAAGM,CAAM,MAAMI,CAAG,MAAM,KAAK,UAAUG,CAAQ,CAAC,EAAE,EAE7D,aAAaD,CAAS,EACf,IAAIE,EAAoBD,CAAQ,CAC3C,OAASE,EAAO,CACZ,MAAMA,CACV,CACJ,CACJ,EAEaD,EAAN,KAA8D,CACjE,IACA,eACA,YAEA,YAAYE,EAAgB,CACxB,KAAK,IAAMA,EACX,KAAK,eAAiBA,EAAK,OAC3B,KAAK,YAAc,OAAO,YAAYA,EAAK,QAAQ,QAAQ,CAAC,CAChE,CAEA,YAAqB,CACjB,OAAO,KAAK,cAChB,CAEA,SAA2B,CACvB,OAAO,KAAK,WAChB,CAEA,aAAwB,CACpB,OAAO,KAAK,GAChB,CAEA,MAAM,MAAkC,CACpC,GAAI,CACA,OAAQ,MAAM,KAAK,IAAI,KAAK,CAChC,OAASC,EAAK,CAEV,MAAM,IAAI,MAAM,0CAA6CA,EAAc,OAAO,CACtF,CACJ,CACJ","names":["Agent","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","HttpsClient","Agent","hostname","path","method","headers","timeout","body","url","controller","timeoutId","response","HttpsClientResponse","error","resp","err"]}
package/dist/index.d.ts DELETED
@@ -1,46 +0,0 @@
1
- export { IRequest, IResponse, default as WebhookHandler } from './webhook.js';
2
- import WhatsApp from './whatsapp.js';
3
- export { BaseClass } from './types/base.js';
4
- export { BusinessProfileClass, BusinessProfileData, BusinessProfileField, BusinessProfileFieldsParam, BusinessProfileResponse, UpdateBusinessProfileRequest, UploadBusinessProfileResponse, UploadHandle, UploadSession, UploadSessionResponse } from './types/businessProfile.js';
5
- export { WabaConfigType } from './types/config.js';
6
- export { EncryptionClass, EncryptionPublicKeyResponse } from './types/encryption.js';
7
- export { A as AudioMediaTypesEnum, k as BusinessVerticalEnum, a as ButtonPositionEnum, B as ButtonTypesEnum, C as CategoryEnum, b as ComponentTypesEnum, c as ConversationTypesEnum, i as CurrencyCodesEnum, j as DataLocalizationRegionEnum, D as DocumentMediaTypesEnum, H as HttpMethodsEnum, e as ImageMediaTypesEnum, I as InteractiveTypesEnum, L as LanguagesEnum, M as MessageTypesEnum, P as ParametersTypesEnum, R as ReferralSourceTypesEnum, h as RequestCodeMethodsEnum, S as StatusEnum, d as StickerMediaTypesEnum, g as SystemChangeTypesEnum, T as TemplateStatusEnum, V as VideoMediaTypesEnum, W as WabaConfigEnum, f as WebhookTypesEnum } from './enums-CI7vzKhn.js';
8
- export { CreateFlowResponse, Flow, FlowActionEnum, FlowAsset, FlowAssetsResponse, FlowCategoryEnum, FlowClass, FlowDataExchangeRequest, FlowDataExchangeResponse, FlowDecryptedRequestResponse, FlowEncryptedRequestPayload, FlowEndpointRequest, FlowEndpointResponse, FlowErrorNotificationRequest, FlowErrorNotificationResponse, FlowHealthCheckRequest, FlowHealthCheckResponse, FlowHttpRequest, FlowMigrationFailure, FlowMigrationResponse, FlowMigrationResult, FlowPreview, FlowPreviewResponse, FlowStatusEnum, FlowSuccessScreenResponse, FlowTypeEnum, FlowValidationError, FlowValidationErrorPointer, FlowsListResponse, Pagination, PaginationCursors, UpdateFlowResponse, ValidateFlowJsonResponse } from './types/flow.js';
9
- export { HttpsClientClass, HttpsClientResponseClass, ResponseHeaderValue, ResponseHeaders, ResponseJSONBody } from './types/httpsClient.js';
10
- export { LoggerInterface } from './types/logger.js';
11
- export { MediaClass, MediaResponse, MediasResponse, UploadMediaResponse } from './types/media.js';
12
- export { AudioMediaObject, AudioMessageRequestBody, ContactObject, ContactsMessageRequestBody, DocumentMediaObject, DocumentMessageRequestBody, GeneralMessageBody, ImageMediaObject, ImageMessageRequestBody, InteractiveMessageRequestBody, InteractiveObject, LocationMessageRequestBody, LocationObject, MessageRequestBody, MessageRequestParams, MessageTemplateObject, MessageTemplateRequestBody, MessagesClass, MessagesResponse, ReactionMessageRequestBody, ReactionParams, StatusObject, StatusParams, StatusRequestBody, StickerMediaObject, StickerMessageRequestBody, TextMessageParams, TextMessageRequestBody, TextObject, TypingIndicatorObject, VideoMediaObject, VideoMessageRequestBody } from './types/messages.js';
13
- export { AccountMode, CodeVerificationStatus, Cursors, HealthStatus, HealthStatusEntity, MessagingLimitTier, PhoneNumberClass, PhoneNumberResponse, PhoneNumbersResponse, PlatformType, QualityRating, QualityScore, RequestVerificationCodeRequest, Throughput, ThroughputLevel, TwoStepVerificationParams, VerifyCodeRequest } from './types/phoneNumber.js';
14
- export { CreateQrCodeRequest, QrCodeClass, QrCodeResponse, QrCodesResponse, UpdateQrCodeRequest } from './types/qrCode.js';
15
- export { RegistrationClass, RegistrationRequest } from './types/registration.js';
16
- export { GeneralHeaderInterface, GeneralRequestBody, Paging, RequesterClass, RequesterResponseInterface, ResponseData, ResponsePagination, ResponseSuccess } from './types/request.js';
17
- export { ComponentTypes, CopyCodeButton, FlowButton, MPMButton, OTPButton, PhoneNumberButton, QuickReplyButton, SPMButton, TemplateBody, TemplateButton, TemplateClass, TemplateDeleteParams, TemplateFooter, TemplateFormat, TemplateGetParams, TemplateHeader, TemplateHeaderExample, TemplateRequestBody, TemplateResponse, URLButton } from './types/template.js';
18
- export { TwoStepVerificationClass, TwoStepVerificationRequest } from './types/twoStepVerification.js';
19
- export { UpdateWabaSubscription, WABAClass, WabaAccount, WabaAccountFields, WabaAccountFieldsParam, WabaAccountReviewStatus, WabaAccountStatus, WabaBusinessVerificationStatus, WabaHealthStatus, WabaHealthStatusCanSendMessage, WabaHealthStatusEntity, WabaHealthStatusError, WabaSubscription, WabaSubscriptions } from './types/waba.js';
20
- export { EventField, EventHandler, MessageHandler, MessageStatus, WebhookContact, WebhookEvent, WebhookMessage } from './types/webhook.js';
21
- export { WhatsAppClass, WhatsAppConfig } from './types/whatsapp.js';
22
- export { generateXHub256Sig } from './utils/generateXHub256Sig.js';
23
- export { importConfig } from './utils/importConfig.js';
24
- export { MetaError, isMetaError } from './utils/isMetaError.js';
25
- export { objectToQueryString } from './utils/objectToQueryString.js';
26
- export { isFlowDataExchangeRequest, isFlowErrorRequest, isFlowPingRequest } from './utils/flowTypeGuards.js';
27
- import 'http';
28
- import './api/businessProfile.js';
29
- import './api/base.js';
30
- import './api/encryption.js';
31
- import './api/flow.js';
32
- import './api/media.js';
33
- import './api/messages.js';
34
- import './api/phoneNumber.js';
35
- import './api/qrCode.js';
36
- import './api/registration.js';
37
- import './api/template.js';
38
- import './api/twoStepVerification.js';
39
- import './api/waba.js';
40
- import './request.js';
41
- import './httpsClient.js';
42
- import 'https';
43
-
44
-
45
-
46
- export { WhatsApp as default };
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";var ke=Object.create;var $=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ke=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var Te=(r,t)=>{for(var s in t)$(r,s,{get:t[s],enumerable:!0})},Ie=(r,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Je(t))!$e.call(r,o)&&o!==s&&$(r,o,{get:()=>t[o],enumerable:!(i=Le(t,o))||i.enumerable});return r};var Ne=(r,t,s)=>(s=r!=null?ke(Ke(r)):{},Ie(t||!r||!r.__esModule?$(s,"default",{value:r,enumerable:!0}):s,r)),Ve=r=>Ie($({},"__esModule",{value:!0}),r);var bt={};Te(bt,{AudioMediaTypesEnum:()=>ae,BusinessVerticalEnum:()=>he,ButtonPositionEnum:()=>E,ButtonTypesEnum:()=>z,CategoryEnum:()=>X,ComponentTypesEnum:()=>C,ConversationTypesEnum:()=>ee,CurrencyCodesEnum:()=>de,DataLocalizationRegionEnum:()=>ge,DocumentMediaTypesEnum:()=>re,EventField:()=>be,FlowActionEnum:()=>Re,FlowCategoryEnum:()=>ye,FlowStatusEnum:()=>Me,FlowTypeEnum:()=>Pe,HttpMethodsEnum:()=>S,ImageMediaTypesEnum:()=>oe,InteractiveTypesEnum:()=>Q,LanguagesEnum:()=>fe,MessageStatus:()=>xe,MessageTypesEnum:()=>W,ParametersTypesEnum:()=>Z,ReferralSourceTypesEnum:()=>le,RequestCodeMethodsEnum:()=>ce,StatusEnum:()=>te,StickerMediaTypesEnum:()=>ie,SystemChangeTypesEnum:()=>pe,TemplateStatusEnum:()=>Y,VideoMediaTypesEnum:()=>se,WabaAccountReviewStatus:()=>Be,WabaAccountStatus:()=>De,WabaBusinessVerificationStatus:()=>ve,WabaConfigEnum:()=>A,WabaHealthStatusCanSendMessage:()=>Oe,WebhookHandler:()=>K,WebhookTypesEnum:()=>ne,default:()=>Pt,generateXHub256Sig:()=>je,importConfig:()=>G,isFlowDataExchangeRequest:()=>_e,isFlowErrorRequest:()=>Ae,isFlowPingRequest:()=>Se,isMetaError:()=>V,objectToQueryString:()=>w});module.exports=Ve(bt);var me={};Te(me,{AudioMediaTypesEnum:()=>ae,BusinessVerticalEnum:()=>he,ButtonPositionEnum:()=>E,ButtonTypesEnum:()=>z,CategoryEnum:()=>X,ComponentTypesEnum:()=>C,ConversationTypesEnum:()=>ee,CurrencyCodesEnum:()=>de,DataLocalizationRegionEnum:()=>ge,DocumentMediaTypesEnum:()=>re,HttpMethodsEnum:()=>S,ImageMediaTypesEnum:()=>oe,InteractiveTypesEnum:()=>Q,LanguagesEnum:()=>fe,MessageTypesEnum:()=>W,ParametersTypesEnum:()=>Z,ReferralSourceTypesEnum:()=>le,RequestCodeMethodsEnum:()=>ce,StatusEnum:()=>te,StickerMediaTypesEnum:()=>ie,SystemChangeTypesEnum:()=>pe,TemplateStatusEnum:()=>Y,VideoMediaTypesEnum:()=>se,WabaConfigEnum:()=>A,WebhookTypesEnum:()=>ne});var X=(i=>(i.Authentication="AUTHENTICATION",i.Marketing="MARKETING",i.Utility="UTILITY",i))(X||{}),Y=(i=>(i.Approved="APPROVED",i.Pending="PENDING",i.Rejected="REJECTED",i))(Y||{}),S=(o=>(o.Get="GET",o.Post="POST",o.Put="PUT",o.Delete="DELETE",o))(S||{}),W=(d=>(d.Audio="audio",d.Contacts="contacts",d.Document="document",d.Image="image",d.Interactive="interactive",d.Location="location",d.Reaction="reaction",d.Sticker="sticker",d.Template="template",d.Text="text",d.Video="video",d.Button="button",d.Order="order",d.System="system",d.Unknown="unknown",d["*"]="*",d))(W||{}),Z=(p=>(p.Currency="currency",p.DateTime="date_time",p.Document="document",p.Image="image",p.Text="text",p.Video="video",p.Payload="payload",p))(Z||{}),Q=(l=>(l.Button="button",l.List="list",l.Product="product",l.ProductList="product_list",l.CtaUrl="cta_url",l.LocationRequest="location_request_message",l.AddressMessage="address_message",l.Flow="flow",l))(Q||{}),z=(s=>(s.QuickReply="quick_reply",s.URL="url",s))(z||{}),E=(i=>(i[i.First=0]="First",i[i.Second=1]="Second",i[i.Third=2]="Third",i))(E||{}),C=(o=>(o.Header="HEADER",o.Body="BODY",o.Button="BUTTON",o.Footer="FOOTER",o))(C||{}),A=(d=>(d.AppId="M4D_APP_ID",d.Port="WA_PORT",d.AppSecret="M4D_APP_SECRET",d.PhoneNumberId="WA_PHONE_NUMBER_ID",d.BusinessAcctId="WA_BUSINESS_ACCOUNT_ID",d.APIVersion="CLOUD_API_VERSION",d.AccessToken="CLOUD_API_ACCESS_TOKEN",d.WebhookEndpoint="WEBHOOK_ENDPOINT",d.WebhookVerificationToken="WEBHOOK_VERIFICATION_TOKEN",d.ListenerPort="LISTENER_PORT",d.MaxRetriesAfterWait="MAX_RETRIES_AFTER_WAIT",d.RequestTimeout="REQUEST_TIMEOUT",d.Debug="DEBUG",d.PrivatePem="FLOW_API_PRIVATE_PEM",d.Passphrase="FLOW_API_PASSPHRASE",d))(A||{}),ee=(i=>(i.BusinessInitiated="business_initiated",i.CustomerInitiated="customer_initiated",i.ReferralConversion="referral_conversion",i))(ee||{}),te=(i=>(i.Delivered="delivered",i.Read="read",i.Sent="sent",i))(te||{}),se=(s=>(s.Mp4="video/mp4",s.Threegp="video/3gp",s))(se||{}),ie=(t=>(t.Webp="image/webp",t))(ie||{}),oe=(s=>(s.Jpeg="image/jpeg",s.Png="image/png",s))(oe||{}),re=(l=>(l.Text="text/plain",l.Pdf="application/pdf",l.Ppt="application/vnd.ms-powerpoint",l.Word="application/msword",l.Excel="application/vnd.ms-excel",l.OpenDoc="application/vnd.openxmlformats-officedocument.wordprocessingml.document",l.OpenPres="application/vnd.openxmlformats-officedocument.presentationml.presentation",l.OpenSheet="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",l))(re||{}),ae=(n=>(n.Aac="audio/aac",n.Mp4="audio/mp4",n.Mpeg="audio/mpeg",n.Amr="audio/amr",n.Ogg="audio/ogg",n))(ae||{}),ne=(R=>(R.Audio="audio",R.Button="button",R.Document="document",R.Text="text",R.Image="image",R.Interactive="interactive",R.Order="order",R.Sticker="sticker",R.System="system",R.Unknown="unknown",R.Video="video",R))(ne||{}),pe=(s=>(s.CustomerChangedNumber="customer_changed_number",s.CustomerIdentityChanged="customer_identity_changed",s))(pe||{}),le=(s=>(s.Ad="ad",s.Post="post",s))(le||{}),ce=(s=>(s.Sms="SMS",s.Voice="VOICE",s))(ce||{}),fe=(a=>(a.Afrikaans="af",a.Albanian="sq",a.Arabic="ar",a.Azerbaijani="az",a.Bengali="bn",a.Bulgarian="bg",a.Catalan="ca",a.Chinese_CHN="zh_CN",a.Chinese_HKG="zh_HK",a.Chinese_TAI="zh_TW",a.Croatian="hr",a.Czech="cs",a.Danish="da",a.Dutch="nl",a.English="en",a.English_UK="en_GB",a.English_US="en_US",a.Estonian="et",a.Filipino="fil",a.Finnish="fi",a.French="fr",a.Georgian="ka",a.German="de",a.Greek="el",a.Gujarati="gu",a.Hausa="ha",a.Hebrew="he",a.Hindi="hi",a.Hungarian="hu",a.Indonesian="id",a.Irish="ga",a.Italian="it",a.Japanese="ja",a.Kannada="kn",a.Kazakh="kk",a.Kinyarwanda="rw_RW",a.Korean="ko",a.Kyrgyz_Kyrgyzstan="ky_KG",a.Lao="lo",a.Latvian="lv",a.Lithuanian="lt",a.Macedonian="mk",a.Malay="ms",a.Malayalam="ml",a.Marathi="mr",a.Norwegian="nb",a.Persian="fa",a.Polish="pl",a.Portuguese_BR="pt_BR",a.Portuguese_POR="pt_PT",a.Punjabi="pa",a.Romanian="ro",a.Russian="ru",a.Serbian="sr",a.Slovak="sk",a.Slovenian="sl",a.Spanish="es",a.Spanish_ARG="es_AR",a.Spanish_SPA="es_ES",a.Spanish_MEX="es_MX",a.Swahili="sw",a.Swedish="sv",a.Tamil="ta",a.Telugu="te",a.Thai="th",a.Turkish="tr",a.Ukrainian="uk",a.Urdu="ur",a.Uzbek="uz",a.Vietnamese="vi",a.Zulu="zu",a))(fe||{}),de=(e=>(e.AFN="AFN",e.EUR="EUR",e.ALL="ALL",e.DZD="DZD",e.USD="USD",e.AOA="AOA",e.XCD="XCD",e.ARS="ARS",e.AMD="AMD",e.AWG="AWG",e.AUD="AUD",e.AZN="AZN",e.BSD="BSD",e.BHD="BHD",e.BDT="BDT",e.BBD="BBD",e.BYN="BYN",e.BZD="BZD",e.XOF="XOF",e.BMD="BMD",e.INR="INR",e.BTN="BTN",e.BOB="BOB",e.BOV="BOV",e.BAM="BAM",e.BWP="BWP",e.NOK="NOK",e.BRL="BRL",e.BND="BND",e.BGN="BGN",e.BIF="BIF",e.CVE="CVE",e.KHR="KHR",e.XAF="XAF",e.CAD="CAD",e.KYD="KYD",e.CLP="CLP",e.CLF="CLF",e.CNY="CNY",e.COP="COP",e.COU="COU",e.KMF="KMF",e.CDF="CDF",e.NZD="NZD",e.CRC="CRC",e.HRK="HRK",e.CUP="CUP",e.CUC="CUC",e.ANG="ANG",e.CZK="CZK",e.DKK="DKK",e.DJF="DJF",e.DOP="DOP",e.EGP="EGP",e.SVC="SVC",e.ERN="ERN",e.SZL="SZL",e.ETB="ETB",e.FKP="FKP",e.FJD="FJD",e.XPF="XPF",e.GMD="GMD",e.GEL="GEL",e.GHS="GHS",e.GIP="GIP",e.GTQ="GTQ",e.GBP="GBP",e.GNF="GNF",e.GYD="GYD",e.HTG="HTG",e.HNL="HNL",e.HKD="HKD",e.HUF="HUF",e.ISK="ISK",e.IDR="IDR",e.XDR="XDR",e.IRR="IRR",e.IQD="IQD",e.ILS="ILS",e.JMD="JMD",e.JPY="JPY",e.JOD="JOD",e.KZT="KZT",e.KES="KES",e.KPW="KPW",e.KRW="KRW",e.KWD="KWD",e.KGS="KGS",e.LAK="LAK",e.LBP="LBP",e.LSL="LSL",e.ZAR="ZAR",e.LRD="LRD",e.LYD="LYD",e.CHF="CHF",e.MOP="MOP",e.MKD="MKD",e.MGA="MGA",e.MWK="MWK",e.MYR="MYR",e.MVR="MVR",e.MRU="MRU",e.MUR="MUR",e.XUA="XUA",e.MXN="MXN",e.MXV="MXV",e.MDL="MDL",e.MNT="MNT",e.MAD="MAD",e.MZN="MZN",e.MMK="MMK",e.NAD="NAD",e.NPR="NPR",e.NIO="NIO",e.NGN="NGN",e.OMR="OMR",e.PKR="PKR",e.PAB="PAB",e.PGK="PGK",e.PYG="PYG",e.PEN="PEN",e.PHP="PHP",e.PLN="PLN",e.QAR="QAR",e.RON="RON",e.RUB="RUB",e.RWF="RWF",e.SHP="SHP",e.WST="WST",e.STN="STN",e.SAR="SAR",e.RSD="RSD",e.SCR="SCR",e.SLL="SLL",e.SGD="SGD",e.XSU="XSU",e.SBD="SBD",e.SOS="SOS",e.SSP="SSP",e.LKR="LKR",e.SDG="SDG",e.SRD="SRD",e.SEK="SEK",e.CHE="CHE",e.CHW="CHW",e.SYP="SYP",e.TWD="TWD",e.TJS="TJS",e.TZS="TZS",e.THB="THB",e.TOP="TOP",e.TTD="TTD",e.TND="TND",e.TRY="TRY",e.TMT="TMT",e.UGX="UGX",e.UAH="UAH",e.AED="AED",e.USN="USN",e.UYU="UYU",e.UYI="UYI",e.UYW="UYW",e.UZS="UZS",e.VUV="VUV",e.VES="VES",e.VND="VND",e.YER="YER",e.ZMW="ZMW",e.ZWL="ZWL",e.XBA="XBA",e.XBB="XBB",e.XBC="XBC",e.XBD="XBD",e.XTS="XTS",e.XXX="XXX",e.XAU="XAU",e.XPD="XPD",e.XPT="XPT",e.XAG="XAG",e.AFA="AFA",e.FIM="FIM",e.ALK="ALK",e.ADP="ADP",e.ESP="ESP",e.FRF="FRF",e.AOK="AOK",e.AON="AON",e.AOR="AOR",e.ARA="ARA",e.ARP="ARP",e.ARY="ARY",e.RUR="RUR",e.ATS="ATS",e.AYM="AYM",e.AZM="AZM",e.BYB="BYB",e.BYR="BYR",e.BEC="BEC",e.BEF="BEF",e.BEL="BEL",e.BOP="BOP",e.BAD="BAD",e.BRB="BRB",e.BRC="BRC",e.BRE="BRE",e.BRN="BRN",e.BRR="BRR",e.BGJ="BGJ",e.BGK="BGK",e.BGL="BGL",e.BUK="BUK",e.HRD="HRD",e.CYP="CYP",e.CSJ="CSJ",e.CSK="CSK",e.ECS="ECS",e.ECV="ECV",e.GQE="GQE",e.EEK="EEK",e.XEU="XEU",e.GEK="GEK",e.DDM="DDM",e.DEM="DEM",e.GHC="GHC",e.GHP="GHP",e.GRD="GRD",e.GNE="GNE",e.GNS="GNS",e.GWE="GWE",e.GWP="GWP",e.ITL="ITL",e.ISJ="ISJ",e.IEP="IEP",e.ILP="ILP",e.ILR="ILR",e.LAJ="LAJ",e.LVL="LVL",e.LVR="LVR",e.LSM="LSM",e.ZAL="ZAL",e.LTL="LTL",e.LTT="LTT",e.LUC="LUC",e.LUF="LUF",e.LUL="LUL",e.MGF="MGF",e.MVQ="MVQ",e.MLF="MLF",e.MTL="MTL",e.MTP="MTP",e.MRO="MRO",e.MXP="MXP",e.MZE="MZE",e.MZM="MZM",e.NLG="NLG",e.NIC="NIC",e.PEH="PEH",e.PEI="PEI",e.PES="PES",e.PLZ="PLZ",e.PTE="PTE",e.ROK="ROK",e.ROL="ROL",e.STD="STD",e.CSD="CSD",e.SKK="SKK",e.SIT="SIT",e.RHD="RHD",e.ESA="ESA",e.ESB="ESB",e.SDD="SDD",e.SDP="SDP",e.SRG="SRG",e.CHC="CHC",e.TJR="TJR",e.TPE="TPE",e.TRL="TRL",e.TMM="TMM",e.UGS="UGS",e.UGW="UGW",e.UAK="UAK",e.SUR="SUR",e.USS="USS",e.UYN="UYN",e.UYP="UYP",e.VEB="VEB",e.VEF="VEF",e.VNC="VNC",e.YDD="YDD",e.YUD="YUD",e.YUM="YUM",e.YUN="YUN",e.ZRN="ZRN",e.ZRZ="ZRZ",e.ZMK="ZMK",e.ZWC="ZWC",e.ZWD="ZWD",e.ZWN="ZWN",e.ZWR="ZWR",e.XFO="XFO",e.XRE="XRE",e.XFU="XFU",e))(de||{}),ge=(P=>(P.AU="AU",P.ID="ID",P.IN="IN",P.JP="JP",P.SG="SG",P.KR="KR",P.DE="DE",P.CH="CH",P.GB="GB",P.BR="BR",P.BH="BH",P.ZA="ZA",P.AE="AE",P.CA="CA",P))(ge||{}),he=(m=>(m.ALCOHOL="ALCOHOL",m.APPAREL="APPAREL",m.AUTO="AUTO",m.BEAUTY="BEAUTY",m.EDU="EDU",m.ENTERTAIN="ENTERTAIN",m.EVENT_PLAN="EVENT_PLAN",m.FINANCE="FINANCE",m.GOVT="GOVT",m.GROCERY="GROCERY",m.HEALTH="HEALTH",m.HOTEL="HOTEL",m.NONPROFIT="NONPROFIT",m.ONLINE_GAMBLING="ONLINE_GAMBLING",m.OTC_DRUGS="OTC_DRUGS",m.OTHER="OTHER",m.PHYSICAL_GAMBLING="PHYSICAL_GAMBLING",m.PROF_SERVICES="PROF_SERVICES",m.RESTAURANT="RESTAURANT",m.RETAIL="RETAIL",m.TRAVEL="TRAVEL",m))(he||{});var Me=(n=>(n.Draft="DRAFT",n.Published="PUBLISHED",n.Throttled="THROTTLED",n.Blocked="BLOCKED",n.Deprecated="DEPRECATED",n))(Me||{}),ye=(l=>(l.SignUp="SIGN_UP",l.SignIn="SIGN_IN",l.AppointmentBooking="APPOINTMENT_BOOKING",l.LeadGeneration="LEAD_GENERATION",l.ContactUs="CONTACT_US",l.CustomerSupport="CUSTOMER_SUPPORT",l.Survey="SURVEY",l.Other="OTHER",l))(ye||{}),Re=(i=>(i.INIT="INIT",i.BACK="BACK",i.DATA_EXCHANGE="data_exchange",i))(Re||{}),Pe=(o=>(o.Ping="ping",o.Change="data_exchange",o.Error="error",o.All="*",o))(Pe||{});var Be=(o=>(o.Approved="APPROVED",o.Active="ACTIVE",o.Inactive="INACTIVE",o.Disabled="DISABLED",o))(Be||{}),Oe=(i=>(i.Blocked="BLOCKED",i.Limited="LIMITED",i.Available="AVAILABLE",i))(Oe||{}),De=(o=>(o.Approved="APPROVED",o.Active="ACTIVE",o.Inactive="INACTIVE",o.Disabled="DISABLED",o))(De||{}),ve=(o=>(o.Verified="verified",o.PendingSubmission="pending_submission",o.Unverified="unverified",o.Rejected="rejected",o))(ve||{});var xe=(i=>(i.DELIVERED="delivered",i.READ="read",i.SENT="sent",i))(xe||{}),be=(c=>(c.MESSAGES="messages",c.STATUSES="statuses",c.MESSAGE_TEMPLATE_STATUS_UPDATE="message_template_status_update",c.PHONE_NUMBER_QUALITY_UPDATE="phone_number_quality_update",c.PHONE_NUMBER_NAME_UPDATE="phone_number_name_update",c.UNKNOWN="unknown",c))(be||{});var T=Ne(require("crypto"));var ue=Ne(require("crypto")),je=(r,t)=>ue.createHmac("sha256",t).update(r,"utf-8").digest("hex");var b=class{name;debug;constructor(t,s=!1){this.name=t,this.debug=s}log(...t){if(this.debug){let s=`[ ${Date.now()} ]`;this.name&&(s+=` - ${this.name}`),console.log.apply(console,[s,": ",...t])}}error(...t){let s=`[ ${Date.now()} ] - ERROR`;this.name&&(s+=` - ${this.name}`),console.error.apply(console,[s,": ",...t])}warn(...t){let s=`[ ${Date.now()} ] - WARN`;this.name&&(s+=` - ${this.name}`),console.warn.apply(console,[s,": ",...t])}info(...t){let s=`[ ${Date.now()} ] - INFO`;this.name&&(s+=` - ${this.name}`),console.info.apply(console,[s,": ",...t])}};var Xe="UTILS",Ye=!1,Fe=new b(Xe,process.env.DEBUG==="true"||Ye),Ze=3e3,Qe=30,ze=2e4,Ee=r=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!r?.accessToken)throw Fe.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},G=r=>{Ee(r);let t={M4D_APP_ID:r?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:r?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:r?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:r?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:r?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:r?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:r?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:r?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:r?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||Ze,MAX_RETRIES_AFTER_WAIT:r?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||Qe,REQUEST_TIMEOUT:r?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||ze,DEBUG:r?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:r?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:r?.passphrase||process.env.FLOW_API_PASSPHRASE||""};return Fe.log(`Configuration loaded for App Id ${t.M4D_APP_ID}`),t};function V(r){return r!=null&&typeof r=="object"&&"error"in r&&typeof r.error=="object"&&r.error!=null&&"message"in r.error&&typeof r.error.message=="string"&&"type"in r.error&&typeof r.error.type=="string"&&"code"in r.error&&typeof r.error.code=="number"&&"fbtrace_id"in r.error&&typeof r.error.fbtrace_id=="string"&&(!("error_data"in r.error)||typeof r.error.error_data=="object"&&r.error.error_data!=null&&"messaging_product"in r.error.error_data&&r.error.error_data.messaging_product==="whatsapp"&&"details"in r.error.error_data&&typeof r.error.error_data.details=="string")&&(!("error_subcode"in r.error)||typeof r.error.error_subcode=="number")}var w=r=>{if(!r||Object.keys(r).length===0)return"";let t=new URLSearchParams;for(let[i,o]of Object.entries(r))o!==void 0&&t.append(i,String(o));let s=t.toString();return s?`?${s}`:""};function qe(r){return typeof r=="object"&&r!==null}function N(r){return typeof r=="string"}var Ce=["data_exchange","INIT","BACK"],et=["data_exchange","INIT"];function _e(r){if(!("flow_token"in r&&N(r.flow_token)&&"action"in r))return!1;let{action:t,version:s,screen:i,data:o}=r,n=s==="3.0",c=Ce.includes(t),p=typeof i>"u"||N(i)&&i!=="SUCCESS",l=t==="data_exchange"||qe(o);return n&&c&&p&&l}function Ae(r){if(!("flow_token"in r&&N(r.flow_token)&&"action"in r))return!1;let{action:t,screen:s,data:i}=r,o=et.includes(t),n=N(s),c=qe(i)&&"error_key"in i&&N(i.error_key)&&"error_message"in i&&N(i.error_message);return o&&n&&c}function Se(r){return"action"in r&&r.action==="ping"}var tt="BaseAPI",st=!1,it=new b(tt,process.env.DEBUG==="true"||st),h=class{config;client;constructor(t,s){this.config=t,this.client=s,it.log("Initialized with HTTPSClient")}sendJson(t,s,i,o){return this.client.getJson(t,s,i,o)}sendFormData(t,s,i,o){return this.client.sendFormData(t,s,i,o)}sendUrlEncodedForm(t,s,i,o){return this.client.sendUrlEncodedForm(t,s,i,o)}};function j(r){if(!r)return"";let t="";return Array.isArray(r)?t=r.join(","):t=Object.entries(r).filter(([s,i])=>i).map(([s])=>s).join(","),t?`?fields=${t}`:""}var M=class extends h{endpoint="whatsapp_business_profile";constructor(t,s){super(t,s)}async getBusinessProfile(t){return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}${j(t)}`,this.config.REQUEST_TIMEOUT,null)}async updateBusinessProfile(t){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}async createUploadSession(t,s,i){let o=w({file_length:t,file_type:s,file_name:i});return this.sendJson("POST",`app/uploads/${o}`,this.config.REQUEST_TIMEOUT,null)}async uploadMedia(t,s){return this.sendJson("POST",`${t}`,this.config.REQUEST_TIMEOUT,s)}async getUploadHandle(t){return this.sendJson("GET",`${t}`,this.config.REQUEST_TIMEOUT,null)}};var y=class extends h{endpoint="whatsapp_business_encryption";constructor(t,s){super(t,s)}async getEncryptionPublicKey(){return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,null)}async setEncryptionPublicKey(t){let s=new FormData;return s.append("business_public_key",t),this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,s)}};var ot="FlowAPI",rt=!1,Ue=new b(ot,process.env.DEBUG==="true"||rt),B=class extends h{constructor(t,s){super(t,s),Ue.log("FlowAPI initialized")}async listFlows(t){return this.sendJson("GET",`/${t}/flows`,this.config.REQUEST_TIMEOUT,null)}async createFlow(t,s){let i={name:s.name,categories:s.categories,...s.endpoint_uri&&{endpoint_uri:s.endpoint_uri},...s.clone_flow_id&&{clone_flow_id:s.clone_flow_id},...s.flow_json&&{flow_json:s.flow_json},...s.publish!==void 0&&{publish:s.publish}};return this.sendJson("POST",`/${t}/flows`,this.config.REQUEST_TIMEOUT,JSON.stringify(i))}async getFlow(t,s,i){let o=new URLSearchParams;s&&o.append("fields",s),i&&o.append("date_format",i);let n=o.toString()?`?${o.toString()}`:"";return this.sendJson("GET",`/${t}${n}`,this.config.REQUEST_TIMEOUT,null)}async getFlowPreview(t,s=!1){let i=`preview.invalidate(${s})`;return this.getFlow(t,i)}async updateFlowMetadata(t,s){let i={...s.name&&{name:s.name},...s.categories&&{categories:s.categories},...s.endpoint_uri&&{endpoint_uri:s.endpoint_uri},...s.application_id&&{application_id:s.application_id}};return this.sendJson("POST",`/${t}`,this.config.REQUEST_TIMEOUT,JSON.stringify(i))}async deleteFlow(t){return this.sendJson("DELETE",`/${t}`,this.config.REQUEST_TIMEOUT,null)}async listAssets(t){return this.sendJson("GET",`/${t}/assets`,this.config.REQUEST_TIMEOUT,null)}async updateFlowJson(t,s){let i=new FormData,o;if(s.file instanceof Buffer)o=new globalThis.Blob([s.file]),i.append("file",o);else if(typeof s.file=="object"&&!(s.file instanceof Blob))try{o=new globalThis.Blob([JSON.stringify(s.file,null,2)],{type:"application/json"}),i.append("file",o)}catch{throw new Error("Failed to stringify JSON object for Flow JSON update.")}else if(s.file instanceof Blob)o=s.file,i.append("file",o);else throw new Error("Invalid file type provided for Flow JSON update. Must be a Buffer, JSON object, or Blob.");return i.append("asset_type","FLOW_JSON"),i.append("name",s.name||"flow.json"),this.sendFormData("POST",`/${t}/assets`,this.config.REQUEST_TIMEOUT,i)}async validateFlowJson(t,s){try{let i=await this.updateFlowJson(t,{file:s}),o=!i.validation_errors||i.validation_errors.length===0;return{...i,valid:o}}catch(i){throw Ue.error("Error during Flow JSON validation attempt:",i),i}}async publishFlow(t){return this.sendJson("POST",`/${t}/publish`,this.config.REQUEST_TIMEOUT,JSON.stringify({}))}async deprecateFlow(t){return this.sendJson("POST",`/${t}/deprecate`,this.config.REQUEST_TIMEOUT,JSON.stringify({}))}async migrateFlows(t,s){let i={source_waba_id:s.source_waba_id,...s.source_flow_names&&{source_flow_names:s.source_flow_names}};return this.sendJson("POST",`/${t}/migrate_flows`,this.config.REQUEST_TIMEOUT,JSON.stringify(i))}};var O=class extends h{endpoint="media";constructor(t,s){super(t,s)}async getMediaById(t){return this.sendJson("GET",`${t}`,this.config.REQUEST_TIMEOUT,null)}async uploadMedia(t,s="whatsapp"){let i=new FormData;return i.append("file",t),i.append("messaging_product",s),i.append("type",t.type),this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,i)}async deleteMedia(t){return this.sendJson("DELETE",`${t}`,this.config.REQUEST_TIMEOUT,null)}async downloadMedia(t){return this.sendJson("GET",t,this.config.REQUEST_TIMEOUT,null)}};var D=class extends h{commonMethod="POST";commonEndpoint="messages";constructor(t,s){super(t,s)}bodyBuilder(t,s,i,o){let n={messaging_product:"whatsapp",recipient_type:"individual",to:i,type:t,[t]:s};return o&&(n.context={message_id:o}),n}send(t){return this.sendJson(this.commonMethod,`${this.config.WA_PHONE_NUMBER_ID}/${this.commonEndpoint}`,this.config.REQUEST_TIMEOUT,t)}async audio(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("audio",s,i,o)))}async contacts(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("contacts",s,i,o)))}async document(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("document",s,i,o)))}async image(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("image",s,i,o)))}async interactive(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async location(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("location",s,i,o)))}async sticker(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("sticker",s,i,o)))}async template(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("template",s,i,o)))}async text(t){let{body:s,previewUrl:i,to:o,replyMessageId:n}=t,c;return typeof s=="string"?c={body:s,preview_url:i}:c=s,this.send(JSON.stringify(this.bodyBuilder("text",c,o,n)))}async video(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("video",s,i,o)))}async status(t){let{status:s,messageId:i,typingIndicator:o}=t,n={messaging_product:"whatsapp",status:s,message_id:i,...o&&{typing_indicator:o}};return this.send(JSON.stringify(n))}async markAsRead(t){return this.status({status:"read",messageId:t.messageId})}async showTypingIndicator(t){return this.status({status:"read",messageId:t.messageId,typingIndicator:{type:"text"}})}async interactiveList(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async interactiveCtaUrl(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async interactiveLocationRequest(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async interactiveAddressMessage(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async interactiveReplyButtons(t){let{body:s,to:i,replyMessageId:o}=t;return this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async interactiveFlow(t){let{body:s,to:i,replyMessageId:o}=t;return s.action.parameters.flow_message_version===void 0&&(s.action.parameters.flow_message_version="3"),s.action.parameters.mode===void 0&&(s.action.parameters.mode="published"),s.action.parameters.flow_action===void 0&&(s.action.parameters.flow_action="navigate"),s.action.parameters.flow_action==="navigate"?s.action.parameters.flow_action_payload?.screen===void 0&&(s.action.parameters.flow_action_payload={...s.action.parameters.flow_action_payload,screen:"INIT"}):s.action.parameters.flow_action==="data_exchange"&&delete s.action.parameters.flow_action_payload,this.send(JSON.stringify(this.bodyBuilder("interactive",s,i,o)))}async reaction(t){let{messageId:s,emoji:i,to:o}=t,n={messaging_product:"whatsapp",recipient_type:"individual",to:o,type:"reaction",reaction:{message_id:s,emoji:i}};return this.send(JSON.stringify(n))}};var v=class extends h{endpoint="phone_numbers";constructor(t,s){super(t,s)}async getPhoneNumberById(t){let s=t?w({fields:t}):"";return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}${s}`,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(t){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/request_code`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}async verifyCode(t){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/verify_code`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}};var x=class extends h{endpoint="message_qrdls";constructor(t,s){super(t,s)}async createQrCode(t){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}async getQrCodes(){return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,null)}async getQrCode(t){return this.sendJson("GET",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}/${t}`,this.config.REQUEST_TIMEOUT,null)}async updateQrCode(t){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}async deleteQrCode(t){return this.sendJson("DELETE",`${this.config.WA_PHONE_NUMBER_ID}/${this.endpoint}/${t}`,this.config.REQUEST_TIMEOUT,null)}};var u=class extends h{constructor(t,s){super(t,s)}async register(t,s){let i={messaging_product:"whatsapp",pin:t,...s&&{data_localization_region:s}};return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/register`,this.config.REQUEST_TIMEOUT,JSON.stringify(i))}async deregister(){return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}/deregister`,this.config.REQUEST_TIMEOUT,null)}};var F=class extends h{endpoint="message_templates";constructor(t,s){super(t,s)}async getTemplate(t){return this.sendJson("GET",`${t}`,this.config.REQUEST_TIMEOUT,null)}async updateTemplate(t,s){return this.sendJson("POST",`${t}`,this.config.REQUEST_TIMEOUT,JSON.stringify(s))}async getTemplates(t){return this.sendJson("GET",`${this.config.WA_BUSINESS_ACCOUNT_ID}/${this.endpoint}${w(t)}`,this.config.REQUEST_TIMEOUT,null)}async createTemplate(t){return this.sendJson("POST",`${this.config.WA_BUSINESS_ACCOUNT_ID}/${this.endpoint}`,this.config.REQUEST_TIMEOUT,JSON.stringify(t))}async deleteTemplate(t){return this.sendJson("DELETE",`${this.config.WA_BUSINESS_ACCOUNT_ID}/${this.endpoint}${w(t)}`,this.config.REQUEST_TIMEOUT,null)}};var q=class extends h{constructor(t,s){super(t,s)}async setTwoStepVerificationCode(t){let s={pin:t};return this.sendJson("POST",`${this.config.WA_PHONE_NUMBER_ID}`,this.config.REQUEST_TIMEOUT,JSON.stringify(s))}};var U=class extends h{constructor(t,s){super(t,s)}async getWabaAccount(t){let s=j(t)?.replace(/,/g,"%2C");return this.sendJson("GET",`${this.config.WA_BUSINESS_ACCOUNT_ID}${s}`,this.config.REQUEST_TIMEOUT,null)}async getAllWabaSubscriptions(){return this.sendJson("GET",`${this.config.WA_BUSINESS_ACCOUNT_ID}/subscribed_apps`,this.config.REQUEST_TIMEOUT,null)}async updateWabaSubscription({override_callback_uri:t,verify_token:s}){let i={override_callback_uri:t,verify_token:s};return this.sendJson("POST",`${this.config.WA_BUSINESS_ACCOUNT_ID}/subscribed_apps`,this.config.REQUEST_TIMEOUT,JSON.stringify(i))}async unsubscribeFromWaba(){return this.sendJson("DELETE",`${this.config.WA_BUSINESS_ACCOUNT_ID}/subscribed_apps`,this.config.REQUEST_TIMEOUT,null)}};var He=require("https");var at="HttpsClient",nt=!1,pt=new b(at,process.env.DEBUG==="true"||nt),k=class{agent;constructor(){this.agent=new He.Agent({keepAlive:!0})}clearSockets(){return this.agent.destroy(),!0}async sendRequest(t,s,i,o,n,c){let p=`https://${t}/${s}`,l=new AbortController,f=setTimeout(()=>l.abort(),n);try{let g=await fetch(p,{method:i,headers:o,body:c,signal:l.signal});return pt.log(`${i} : ${p} - ${JSON.stringify(g)}`),clearTimeout(f),new we(g)}catch(g){throw g}}},we=class{res;respStatusCode;respHeaders;constructor(t){this.res=t,this.respStatusCode=t.status,this.respHeaders=Object.fromEntries(t.headers.entries())}statusCode(){return this.respStatusCode}headers(){return this.respHeaders}rawResponse(){return this.res}async json(){try{return await this.res.json()}catch(t){throw new Error("Failed to parse response body to JSON: "+t.message)}}};var lt="REQUESTER",ct=!1,ft=new b(lt,process.env.DEBUG==="true"||ct),L=class{client;accessToken;phoneNumberId;businessAcctId;apiVersion;userAgent;host;protocol="https:";constructor(t,s,i,o,n){this.client=new k,this.host="graph.facebook.com",this.apiVersion=t||"22",this.phoneNumberId=s,this.accessToken=i,this.businessAcctId=o,this.userAgent=n}buildHeader(t,s){let i={Authorization:`Bearer ${this.accessToken}`,"User-Agent":this.userAgent};return t!=="multipart/form-data"&&(i["Content-Type"]=t),s&&Object.assign(i,s),i}buildCAPIPath(t){return`v${this.apiVersion}.0/${t}`}async sendRequest(t,s,i,o,n="application/json",c){let p=n;o instanceof FormData?p="multipart/form-data":typeof o=="string"&&o.startsWith("<?xml")&&(p="application/xml");let l=`${this.protocol.toLowerCase()}//${this.host}/${this.buildCAPIPath(s)}`;ft.log(`${t} : ${l} (${p})`);try{let f=await this.client.sendRequest(this.host,this.buildCAPIPath(s),t,this.buildHeader(p,c),i,t==="POST"||t==="PUT"?o:void 0);if(!f.rawResponse().ok){let g=await f.json();throw V(g)?g:{name:"MetaError",message:"Unknown error occurred",error:{message:g.message||"Unknown error occurred",type:"UnknownError",code:f.statusCode(),fbtrace_id:""}}}return f}catch(f){throw V(f)?f:{name:"MetaError",message:f instanceof Error?f.message:"Network error occurred",error:{message:f instanceof Error?f.message:"Network error occurred",type:"NetworkError",code:500,fbtrace_id:""}}}}async getJson(t,s,i,o,n){return await(await this.sendRequest(t,s,i,o,"application/json",n)).json()}async sendFormData(t,s,i,o,n){return await(await this.sendRequest(t,s,i,o,"multipart/form-data",n)).json()}async sendUrlEncodedForm(t,s,i,o,n){let c=new URLSearchParams(o).toString();return await(await this.sendRequest(t,s,i,c,"application/x-www-form-urlencoded",n)).json()}};var dt="WHATSAPP",gt=!1,J=new b(dt,process.env.DEBUG==="true"||gt),ht="WA_SDK",I=class{config;requester;messages;templates;phoneNumber;qrCode;encryption;twoStepVerification;registration;media;waba;flow;businessProfile;static Enums=me;constructor(t){this.config=G(t),this.requester=new L(this.config.CLOUD_API_VERSION,this.config.WA_PHONE_NUMBER_ID,this.config.CLOUD_API_ACCESS_TOKEN,this.config.WA_BUSINESS_ACCOUNT_ID,this.userAgent()),this.messages=new D(this.config,this.requester),this.templates=new F(this.config,this.requester),this.phoneNumber=new v(this.config,this.requester),this.qrCode=new x(this.config,this.requester),this.encryption=new y(this.config,this.requester),this.twoStepVerification=new q(this.config,this.requester),this.registration=new u(this.config,this.requester),this.media=new O(this.config,this.requester),this.waba=new U(this.config,this.requester),this.flow=new B(this.config,this.requester),this.businessProfile=new M(this.config,this.requester),J.log("WhatsApp Node.js SDK instantiated!")}userAgent(){return`${ht}/0.0.1 (Node.js ${process.version})`}updateTimeout(t){return this.config.REQUEST_TIMEOUT=t,J.log(`Updated request timeout to ${t}ms`),!0}updatePhoneNumberId(t){return this.config.WA_PHONE_NUMBER_ID=t,J.log(`Updated sender phone number id to ${t}`),!0}updateAccessToken(t){return this.config.CLOUD_API_ACCESS_TOKEN=t,J.log("Updated access token"),!0}updateWabaId(t){return this.config.WA_BUSINESS_ACCOUNT_ID=t,J.log(`Updated business account id to ${t}`),!0}};var mt="WEBHOOK",Rt=!1,_=new b(mt,process.env.DEBUG==="true"||Rt),K=class{config;client;messageHandlers=new Map;eventHandlers=new Map;preProcessHandler=null;postProcessHandler=null;flowHandlers=new Map;constructor(t){let s=G(t);this.config=s,this.client=new I(t),_.log("WebhookHandler instantiated!")}handleVerificationRequest(t,s){let i=t.query["hub.mode"],o=t.query["hub.verify_token"],n=t.query["hub.challenge"];i==="subscribe"&&o===this.config.WEBHOOK_VERIFICATION_TOKEN?(_.log("Webhook verified successfully"),s.status(200).send(n)):(_.log("Webhook verification failed"),s.status(403).end())}async handleWebhookRequest(t,s){let i=t.body;if(i.object!=="whatsapp_business_account"){_.log("Received webhook for non-WhatsApp event"),s.status(404).end();return}for(let o of i.entry)try{let n=o.changes;for(let c of n)c.field==="messages"?await this.processMessages(c.value):await this.processEvent(c.field,c.value)}catch(n){_.log(`Error processing webhook: ${n}`)}s.status(200).end()}handleRequest(t,s){if(t.method==="GET")return this.handleVerificationRequest(t,s);if(t.method==="POST")return this.handleWebhookRequest(t,s);s.status(405).end()}async processMessages(t){let s=t.metadata,i=s.display_phone_number,o=s.phone_number_id,n=t.contacts[0].profile.name,c=t.messages;if(c&&c.length>0)for(let p of c){let l=p.type,f={id:p.id,from:p.from,timestamp:p.timestamp,type:p.type,phoneNumberId:o,displayPhoneNumber:i,profileName:n,originalData:p};switch(p.type){case"text":f.text=p.text;break;case"image":f.image=p.image;break;case"video":f.video=p.video;break;case"audio":f.audio=p.audio;break;case"document":f.document=p.document;break;case"sticker":f.sticker=p.sticker;break;case"location":f.location=p.location;break;case"contacts":f.contacts=p.contacts;break;case"interactive":f.interactive=p.interactive;break;case"button":f.button=p.button;break;case"order":f.order=p.order;break;case"system":f.system=p.system;break;default:break}if(p.context&&(f.context=p.context),p.errors&&(f.errors=p.errors),this.preProcessHandler&&await Promise.resolve(this.preProcessHandler(this.client,f)),this.messageHandlers.has(l)){let g=this.messageHandlers.get(l);g&&await Promise.resolve(g(this.client,f))}if(this.messageHandlers.has("*")){let g=this.messageHandlers.get("*");g&&await Promise.resolve(g(this.client,f))}this.postProcessHandler&&await Promise.resolve(this.postProcessHandler(this.client,f))}t.statuses&&t.statuses.length>0&&await this.processEvent("statuses",t)}async processEvent(t,s){let i={field:t,value:s};if(this.eventHandlers.has(t)){let o=this.eventHandlers.get(t);o&&await Promise.resolve(o(i))}if(this.eventHandlers.has("*")){let o=this.eventHandlers.get("*");o&&await Promise.resolve(o(i))}}onMessage(t,s){this.messageHandlers.set(t,s),_.log(`Registered handler for message type: ${t}`)}onEvent(t,s){this.eventHandlers.set(t,s),_.log(`Registered handler for event field: ${t}`)}onMessagePreProcess(t){this.preProcessHandler=t,_.log("Registered pre-processing handler for all messages")}onMessagePostProcess(t){this.postProcessHandler=t,_.log("Registered post-processing handler for all messages")}async handleFlowRequest(t,s){if(!this.isRequestSignatureValid(t)){s.status(403).end();return}let i;try{i=this.decryptRequest(t.body)}catch(g){if(_.error(g),g instanceof Error){s.status(421).send(g.message);return}s.status(500).send("internal server error, please check with logs");return}let{decryptedBody:o,aesKeyBuffer:n,initialVectorBuffer:c}=i,p;Se(o)?p="ping":_e(o)?p="data_exchange":Ae(o)&&(p="error");let l=o;if(p&&this.flowHandlers.has(p)){let g=this.flowHandlers.get(p);if(g){let R=await Promise.resolve(g(this.client,l)),H=this.encryptResponse(R,n,c);s.status(200).send(H);return}}if(this.flowHandlers.has("*")){let g=this.flowHandlers.get("*");if(g){let R=await Promise.resolve(g(this.client,l)),H=this.encryptResponse(R,n,c);s.status(200).send(H);return}}_.log("No handler found, sending an empty response");let f=this.encryptResponse({},n,c);s.status(200).send(f)}isRequestSignatureValid(t){let s=this.config.M4D_APP_SECRET;if(!s)return _.warn("App Secret is not set up. Please Add M4D_APP_SECRET or configuration"),!1;let i=t.headers["x-hub-signature-256"];if(!i||typeof i!="string")return _.warn("x-hub-signature-256 header is missing"),!1;let o=Buffer.from(i.replace("sha256=",""),"utf-8"),c=T.default.createHmac("sha256",s).update(t.rawBody).digest("hex"),p=Buffer.from(c,"utf-8");return T.default.timingSafeEqual(p,o)?!0:(_.error("Error: Request Signature did not match"),!1)}decryptRequest(t){let{encrypted_aes_key:s,encrypted_flow_data:i,initial_vector:o}=t,n=this.config.FLOW_API_PRIVATE_PEM.replace(/\\n/g,`
2
- `),c=this.config.FLOW_API_PASSPHRASE,p=T.default.createPrivateKey({key:n,passphrase:c}),l=null;try{l=T.default.privateDecrypt({key:p,padding:T.default.constants.RSA_PKCS1_OAEP_PADDING,oaepHash:"sha256"},Buffer.from(s,"base64"))}catch(Ge){throw _.error(Ge),new Error("Failed to decrypt the request. Please verify your private key.")}let f=Buffer.from(i,"base64"),g=Buffer.from(o,"base64"),R=16,H=f.subarray(0,-R),We=f.subarray(-R),P=T.default.createDecipheriv("aes-128-gcm",l,g);P.setAuthTag(We);let d=Buffer.concat([P.update(H),P.final()]).toString("utf-8");return{decryptedBody:JSON.parse(d),aesKeyBuffer:l,initialVectorBuffer:g}}encryptResponse(t,s,i){let o=[];for(let n of Array.from(i.entries()))o.push(~n[1]);try{let n=T.default.createCipheriv("aes-128-gcm",s,Buffer.from(o));return Buffer.concat([n.update(JSON.stringify(t||{}),"utf-8"),n.final(),n.getAuthTag()]).toString("base64")}catch(n){throw _.error("Response encryption error:",n),new Error("Failed to encrypt response. Internal server error.")}}onFlow(t,s){this.flowHandlers.set(t,s),_.log(`Registered handler for Flow type: ${t}`)}};var Pt=I;0&&(module.exports={AudioMediaTypesEnum,BusinessVerticalEnum,ButtonPositionEnum,ButtonTypesEnum,CategoryEnum,ComponentTypesEnum,ConversationTypesEnum,CurrencyCodesEnum,DataLocalizationRegionEnum,DocumentMediaTypesEnum,EventField,FlowActionEnum,FlowCategoryEnum,FlowStatusEnum,FlowTypeEnum,HttpMethodsEnum,ImageMediaTypesEnum,InteractiveTypesEnum,LanguagesEnum,MessageStatus,MessageTypesEnum,ParametersTypesEnum,ReferralSourceTypesEnum,RequestCodeMethodsEnum,StatusEnum,StickerMediaTypesEnum,SystemChangeTypesEnum,TemplateStatusEnum,VideoMediaTypesEnum,WabaAccountReviewStatus,WabaAccountStatus,WabaBusinessVerificationStatus,WabaConfigEnum,WabaHealthStatusCanSendMessage,WebhookHandler,WebhookTypesEnum,generateXHub256Sig,importConfig,isFlowDataExchangeRequest,isFlowErrorRequest,isFlowPingRequest,isMetaError,objectToQueryString});
3
- //# sourceMappingURL=index.js.map