meta-cloud-api 0.1.23 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/api/base.d.mts +1 -1
  2. package/dist/api/base.d.ts +1 -1
  3. package/dist/api/businessProfile.d.mts +1 -1
  4. package/dist/api/businessProfile.d.ts +1 -1
  5. package/dist/api/businessProfile.js +1 -1
  6. package/dist/api/encryption.d.mts +1 -1
  7. package/dist/api/encryption.d.ts +1 -1
  8. package/dist/api/encryption.js +1 -1
  9. package/dist/api/encryption.mjs +1 -1
  10. package/dist/api/flow.d.mts +2 -1
  11. package/dist/api/flow.d.ts +2 -1
  12. package/dist/api/flow.js +1 -1
  13. package/dist/api/flow.mjs +1 -1
  14. package/dist/api/index.d.mts +2 -1
  15. package/dist/api/index.d.ts +2 -1
  16. package/dist/api/index.js +1 -1
  17. package/dist/api/index.mjs +1 -1
  18. package/dist/api/media.d.mts +1 -1
  19. package/dist/api/media.d.ts +1 -1
  20. package/dist/api/media.js +1 -1
  21. package/dist/api/media.mjs +1 -1
  22. package/dist/api/messages.d.mts +1 -1
  23. package/dist/api/messages.d.ts +1 -1
  24. package/dist/api/messages.js +1 -1
  25. package/dist/api/messages.mjs +1 -1
  26. package/dist/api/phoneNumber.d.mts +1 -1
  27. package/dist/api/phoneNumber.d.ts +1 -1
  28. package/dist/api/phoneNumber.js +1 -1
  29. package/dist/api/phoneNumber.mjs +1 -1
  30. package/dist/api/qrCode.d.mts +1 -1
  31. package/dist/api/qrCode.d.ts +1 -1
  32. package/dist/api/qrCode.js +1 -1
  33. package/dist/api/qrCode.mjs +1 -1
  34. package/dist/api/registration.d.mts +1 -1
  35. package/dist/api/registration.d.ts +1 -1
  36. package/dist/api/registration.js +1 -1
  37. package/dist/api/registration.mjs +1 -1
  38. package/dist/api/template.d.mts +1 -1
  39. package/dist/api/template.d.ts +1 -1
  40. package/dist/api/template.js +1 -1
  41. package/dist/api/template.mjs +1 -1
  42. package/dist/api/twoStepVerification.d.mts +1 -1
  43. package/dist/api/twoStepVerification.d.ts +1 -1
  44. package/dist/api/twoStepVerification.js +1 -1
  45. package/dist/api/twoStepVerification.mjs +1 -1
  46. package/dist/api/waba.d.mts +1 -1
  47. package/dist/api/waba.d.ts +1 -1
  48. package/dist/api/waba.js +1 -1
  49. package/dist/api/waba.mjs +1 -1
  50. package/dist/{enums-Bcd3jLw2.d.mts → enums-CI7vzKhn.d.mts} +3 -1
  51. package/dist/{enums-Bcd3jLw2.d.ts → enums-CI7vzKhn.d.ts} +3 -1
  52. package/dist/httpsClient.d.mts +1 -1
  53. package/dist/httpsClient.d.ts +1 -1
  54. package/dist/index.d.mts +3 -2
  55. package/dist/index.d.ts +3 -2
  56. package/dist/index.js +1 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.mjs +1 -1
  59. package/dist/index.mjs.map +1 -1
  60. package/dist/request.d.mts +1 -1
  61. package/dist/request.d.ts +1 -1
  62. package/dist/types/base.d.mts +1 -1
  63. package/dist/types/base.d.ts +1 -1
  64. package/dist/types/businessProfile.d.mts +1 -1
  65. package/dist/types/businessProfile.d.ts +1 -1
  66. package/dist/types/config.d.mts +9 -1
  67. package/dist/types/config.d.ts +9 -1
  68. package/dist/types/config.js +1 -1
  69. package/dist/types/config.js.map +1 -1
  70. package/dist/types/encryption.d.mts +1 -1
  71. package/dist/types/encryption.d.ts +1 -1
  72. package/dist/types/enums.d.mts +1 -1
  73. package/dist/types/enums.d.ts +1 -1
  74. package/dist/types/enums.js +1 -1
  75. package/dist/types/enums.js.map +1 -1
  76. package/dist/types/enums.mjs +1 -1
  77. package/dist/types/enums.mjs.map +1 -1
  78. package/dist/types/flow.d.mts +114 -10
  79. package/dist/types/flow.d.ts +114 -10
  80. package/dist/types/flow.js +1 -1
  81. package/dist/types/flow.js.map +1 -1
  82. package/dist/types/flow.mjs +1 -1
  83. package/dist/types/flow.mjs.map +1 -1
  84. package/dist/types/httpsClient.d.mts +1 -1
  85. package/dist/types/httpsClient.d.ts +1 -1
  86. package/dist/types/index.d.mts +3 -2
  87. package/dist/types/index.d.ts +3 -2
  88. package/dist/types/index.js +1 -1
  89. package/dist/types/index.js.map +1 -1
  90. package/dist/types/index.mjs +1 -1
  91. package/dist/types/index.mjs.map +1 -1
  92. package/dist/types/media.d.mts +1 -1
  93. package/dist/types/media.d.ts +1 -1
  94. package/dist/types/messages.d.mts +1 -1
  95. package/dist/types/messages.d.ts +1 -1
  96. package/dist/types/phoneNumber.d.mts +1 -1
  97. package/dist/types/phoneNumber.d.ts +1 -1
  98. package/dist/types/qrCode.d.mts +1 -1
  99. package/dist/types/qrCode.d.ts +1 -1
  100. package/dist/types/registration.d.mts +1 -1
  101. package/dist/types/registration.d.ts +1 -1
  102. package/dist/types/request.d.mts +1 -1
  103. package/dist/types/request.d.ts +1 -1
  104. package/dist/types/template.d.mts +1 -1
  105. package/dist/types/template.d.ts +1 -1
  106. package/dist/types/twoStepVerification.d.mts +1 -1
  107. package/dist/types/twoStepVerification.d.ts +1 -1
  108. package/dist/types/waba.d.mts +1 -1
  109. package/dist/types/waba.d.ts +1 -1
  110. package/dist/types/webhook.d.mts +1 -1
  111. package/dist/types/webhook.d.ts +1 -1
  112. package/dist/types/whatsapp.d.mts +4 -1
  113. package/dist/types/whatsapp.d.ts +4 -1
  114. package/dist/types/whatsapp.js +1 -1
  115. package/dist/types/whatsapp.js.map +1 -1
  116. package/dist/utils/filters.d.mts +1 -1
  117. package/dist/utils/filters.d.ts +1 -1
  118. package/dist/utils/filters.js +1 -1
  119. package/dist/utils/filters.mjs +1 -1
  120. package/dist/utils/importConfig.d.mts +2 -1
  121. package/dist/utils/importConfig.d.ts +2 -1
  122. package/dist/utils/importConfig.js +1 -1
  123. package/dist/utils/importConfig.js.map +1 -1
  124. package/dist/utils/importConfig.mjs +1 -1
  125. package/dist/utils/importConfig.mjs.map +1 -1
  126. package/dist/utils/index.d.mts +2 -1
  127. package/dist/utils/index.d.ts +2 -1
  128. package/dist/utils/index.js +1 -1
  129. package/dist/utils/index.js.map +1 -1
  130. package/dist/utils/index.mjs +1 -1
  131. package/dist/utils/index.mjs.map +1 -1
  132. package/dist/webhook.d.mts +13 -4
  133. package/dist/webhook.d.ts +13 -4
  134. package/dist/webhook.js +1 -1
  135. package/dist/webhook.js.map +1 -1
  136. package/dist/webhook.mjs +1 -1
  137. package/dist/webhook.mjs.map +1 -1
  138. package/dist/whatsapp.d.mts +2 -1
  139. package/dist/whatsapp.d.ts +2 -1
  140. package/dist/whatsapp.js +1 -1
  141. package/dist/whatsapp.js.map +1 -1
  142. package/dist/whatsapp.mjs +1 -1
  143. package/dist/whatsapp.mjs.map +1 -1
  144. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.mjs';
2
- import '../enums-Bcd3jLw2.mjs';
2
+ import '../enums-CI7vzKhn.mjs';
3
3
 
4
4
  type MediaResponse = {
5
5
  id: string;
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.js';
2
- import '../enums-Bcd3jLw2.js';
2
+ import '../enums-CI7vzKhn.js';
3
3
 
4
4
  type MediaResponse = {
5
5
  id: string;
@@ -1,5 +1,5 @@
1
1
  import { BaseClass } from './base.mjs';
2
- import { I as InteractiveTypesEnum, b as ComponentTypesEnum, L as LanguagesEnum, P as ParametersTypesEnum, i as CurrencyCodesEnum, B as ButtonTypesEnum, a as ButtonPositionEnum, M as MessageTypesEnum } from '../enums-Bcd3jLw2.mjs';
2
+ import { I as InteractiveTypesEnum, b as ComponentTypesEnum, L as LanguagesEnum, P as ParametersTypesEnum, i as CurrencyCodesEnum, B as ButtonTypesEnum, a as ButtonPositionEnum, M as MessageTypesEnum } from '../enums-CI7vzKhn.mjs';
3
3
  import { GeneralRequestBody } from './request.mjs';
4
4
  import './config.mjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { BaseClass } from './base.js';
2
- import { I as InteractiveTypesEnum, b as ComponentTypesEnum, L as LanguagesEnum, P as ParametersTypesEnum, i as CurrencyCodesEnum, B as ButtonTypesEnum, a as ButtonPositionEnum, M as MessageTypesEnum } from '../enums-Bcd3jLw2.js';
2
+ import { I as InteractiveTypesEnum, b as ComponentTypesEnum, L as LanguagesEnum, P as ParametersTypesEnum, i as CurrencyCodesEnum, B as ButtonTypesEnum, a as ButtonPositionEnum, M as MessageTypesEnum } from '../enums-CI7vzKhn.js';
3
3
  import { GeneralRequestBody } from './request.js';
4
4
  import './config.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { Paging, ResponseSuccess } from './request.mjs';
2
- import '../enums-Bcd3jLw2.mjs';
2
+ import '../enums-CI7vzKhn.mjs';
3
3
 
4
4
  type QualityRating = 'GREEN' | 'YELLOW' | 'RED' | 'NA';
5
5
  type AccountMode = 'LIVE' | 'SANDBOX';
@@ -1,5 +1,5 @@
1
1
  import { Paging, ResponseSuccess } from './request.js';
2
- import '../enums-Bcd3jLw2.js';
2
+ import '../enums-CI7vzKhn.js';
3
3
 
4
4
  type QualityRating = 'GREEN' | 'YELLOW' | 'RED' | 'NA';
5
5
  type AccountMode = 'LIVE' | 'SANDBOX';
@@ -1,5 +1,5 @@
1
1
  import { ResponseData, ResponseSuccess } from './request.mjs';
2
- import '../enums-Bcd3jLw2.mjs';
2
+ import '../enums-CI7vzKhn.mjs';
3
3
 
4
4
  type QrCodeResponse = {
5
5
  code: string;
@@ -1,5 +1,5 @@
1
1
  import { ResponseData, ResponseSuccess } from './request.js';
2
- import '../enums-Bcd3jLw2.js';
2
+ import '../enums-CI7vzKhn.js';
3
3
 
4
4
  type QrCodeResponse = {
5
5
  code: string;
@@ -1,4 +1,4 @@
1
- import { j as DataLocalizationRegionEnum } from '../enums-Bcd3jLw2.mjs';
1
+ import { j as DataLocalizationRegionEnum } from '../enums-CI7vzKhn.mjs';
2
2
  import { ResponseSuccess } from './request.mjs';
3
3
 
4
4
  type RegistrationRequest = {
@@ -1,4 +1,4 @@
1
- import { j as DataLocalizationRegionEnum } from '../enums-Bcd3jLw2.js';
1
+ import { j as DataLocalizationRegionEnum } from '../enums-CI7vzKhn.js';
2
2
  import { ResponseSuccess } from './request.js';
3
3
 
4
4
  type RegistrationRequest = {
@@ -1,4 +1,4 @@
1
- import { H as HttpMethodsEnum } from '../enums-Bcd3jLw2.mjs';
1
+ import { H as HttpMethodsEnum } from '../enums-CI7vzKhn.mjs';
2
2
 
3
3
  type GeneralRequestBody = Record<string, unknown>;
4
4
  interface GeneralHeaderInterface {
@@ -1,4 +1,4 @@
1
- import { H as HttpMethodsEnum } from '../enums-Bcd3jLw2.js';
1
+ import { H as HttpMethodsEnum } from '../enums-CI7vzKhn.js';
2
2
 
3
3
  type GeneralRequestBody = Record<string, unknown>;
4
4
  interface GeneralHeaderInterface {
@@ -1,4 +1,4 @@
1
- import { L as LanguagesEnum, C as CategoryEnum, T as TemplateStatusEnum } from '../enums-Bcd3jLw2.mjs';
1
+ import { L as LanguagesEnum, C as CategoryEnum, T as TemplateStatusEnum } from '../enums-CI7vzKhn.mjs';
2
2
  import { GeneralRequestBody, ResponseSuccess, ResponsePagination } from './request.mjs';
3
3
 
4
4
  type TemplateFormat = 'TEXT' | 'IMAGE' | 'VIDEO' | 'DOCUMENT' | 'LOCATION';
@@ -1,4 +1,4 @@
1
- import { L as LanguagesEnum, C as CategoryEnum, T as TemplateStatusEnum } from '../enums-Bcd3jLw2.js';
1
+ import { L as LanguagesEnum, C as CategoryEnum, T as TemplateStatusEnum } from '../enums-CI7vzKhn.js';
2
2
  import { GeneralRequestBody, ResponseSuccess, ResponsePagination } from './request.js';
3
3
 
4
4
  type TemplateFormat = 'TEXT' | 'IMAGE' | 'VIDEO' | 'DOCUMENT' | 'LOCATION';
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.mjs';
2
- import '../enums-Bcd3jLw2.mjs';
2
+ import '../enums-CI7vzKhn.mjs';
3
3
 
4
4
  type TwoStepVerificationRequest = {
5
5
  pin: string;
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.js';
2
- import '../enums-Bcd3jLw2.js';
2
+ import '../enums-CI7vzKhn.js';
3
3
 
4
4
  type TwoStepVerificationRequest = {
5
5
  pin: string;
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.mjs';
2
- import '../enums-Bcd3jLw2.mjs';
2
+ import '../enums-CI7vzKhn.mjs';
3
3
 
4
4
  type WabaSubscription = {
5
5
  whatsapp_business_api_data: {
@@ -1,5 +1,5 @@
1
1
  import { ResponseSuccess } from './request.js';
2
- import '../enums-Bcd3jLw2.js';
2
+ import '../enums-CI7vzKhn.js';
3
3
 
4
4
  type WabaSubscription = {
5
5
  whatsapp_business_api_data: {
@@ -1,4 +1,4 @@
1
- import { M as MessageTypesEnum } from '../enums-Bcd3jLw2.mjs';
1
+ import { M as MessageTypesEnum } from '../enums-CI7vzKhn.mjs';
2
2
 
3
3
  interface WebhookContact {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { M as MessageTypesEnum } from '../enums-Bcd3jLw2.js';
1
+ import { M as MessageTypesEnum } from '../enums-CI7vzKhn.js';
2
2
 
3
3
  interface WebhookContact {
4
4
  /**
@@ -9,8 +9,9 @@ import { RegistrationClass } from './registration.mjs';
9
9
  import { TemplateClass } from './template.mjs';
10
10
  import { TwoStepVerificationClass } from './twoStepVerification.mjs';
11
11
  import { WABAClass } from './waba.mjs';
12
- import '../enums-Bcd3jLw2.mjs';
12
+ import '../enums-CI7vzKhn.mjs';
13
13
  import './request.mjs';
14
+ import 'http';
14
15
  import './base.mjs';
15
16
  import './config.mjs';
16
17
 
@@ -35,6 +36,8 @@ type WhatsAppConfig = {
35
36
  debug?: boolean;
36
37
  maxRetriesAfterWait?: number;
37
38
  requestTimeout?: number;
39
+ privatePem?: string;
40
+ passphrase?: string;
38
41
  };
39
42
  declare class WhatsAppClass {
40
43
  constructor(config?: WhatsAppConfig);
@@ -9,8 +9,9 @@ import { RegistrationClass } from './registration.js';
9
9
  import { TemplateClass } from './template.js';
10
10
  import { TwoStepVerificationClass } from './twoStepVerification.js';
11
11
  import { WABAClass } from './waba.js';
12
- import '../enums-Bcd3jLw2.js';
12
+ import '../enums-CI7vzKhn.js';
13
13
  import './request.js';
14
+ import 'http';
14
15
  import './base.js';
15
16
  import './config.js';
16
17
 
@@ -35,6 +36,8 @@ type WhatsAppConfig = {
35
36
  debug?: boolean;
36
37
  maxRetriesAfterWait?: number;
37
38
  requestTimeout?: number;
39
+ privatePem?: string;
40
+ passphrase?: string;
38
41
  };
39
42
  declare class WhatsAppClass {
40
43
  constructor(config?: WhatsAppConfig);
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(s,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!l.call(s,o)&&o!==n&&a(s,o,{get:()=>e[o],enumerable:!(r=t(e,o))||r.enumerable});return s};var p=s=>m(a({},"__esModule",{value:!0}),s);var d={};module.exports=p(d);
1
+ "use strict";var a=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var p=(s,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!l.call(s,o)&&o!==n&&a(s,o,{get:()=>e[o],enumerable:!(r=t(e,o))||r.enumerable});return s};var m=s=>p(a({},"__esModule",{value:!0}),s);var d={};module.exports=m(d);
2
2
  //# sourceMappingURL=whatsapp.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/whatsapp.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n * All rights reserved.\n *\n * This source code is licensed under the license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { BusinessProfileClass } from './businessProfile';\nimport { EncryptionClass } from './encryption';\nimport { FlowClass } from './flow';\nimport { MediaClass } from './media';\nimport { MessagesClass } from './messages';\nimport { PhoneNumberClass } from './phoneNumber';\nimport { QrCodeClass } from './qrCode';\nimport { RegistrationClass } from './registration';\nimport { TemplateClass } from './template';\nimport { TwoStepVerificationClass } from './twoStepVerification';\nimport { WABAClass } from './waba';\n\nexport type WhatsAppConfig = {\n accessToken: string;\n appId?: string;\n appSecret?: string;\n phoneNumberId?: number;\n businessAcctId?: string;\n apiVersion?: string;\n webhookEndpoint?: string;\n webhookVerificationToken?: string;\n listenerPort?: number;\n debug?: boolean;\n maxRetriesAfterWait?: number;\n requestTimeout?: number;\n};\n\nexport declare class WhatsAppClass {\n constructor(config?: WhatsAppConfig);\n readonly messages: MessagesClass;\n readonly templates: TemplateClass;\n readonly phoneNumber: PhoneNumberClass;\n readonly qrCode: QrCodeClass;\n readonly encryption: EncryptionClass;\n readonly twoStepVerification: TwoStepVerificationClass;\n readonly registration: RegistrationClass;\n readonly media: MediaClass;\n readonly waba: WABAClass;\n readonly flow: FlowClass;\n readonly businessProfile: BusinessProfileClass;\n updateTimeout(ms: number): boolean;\n updatePhoneNumberId(phoneNumberId: number): boolean;\n updateAccessToken(accessToken: string): boolean;\n updateWabaId(wabaId: string): boolean;\n}\n"],"mappings":"+WAAA,IAAAA,EAAA,kBAAAC,EAAAD","names":["whatsapp_exports","__toCommonJS"]}
1
+ {"version":3,"sources":["../../src/types/whatsapp.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n * All rights reserved.\n *\n * This source code is licensed under the license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { BusinessProfileClass } from './businessProfile';\nimport { EncryptionClass } from './encryption';\nimport { FlowClass } from './flow';\nimport { MediaClass } from './media';\nimport { MessagesClass } from './messages';\nimport { PhoneNumberClass } from './phoneNumber';\nimport { QrCodeClass } from './qrCode';\nimport { RegistrationClass } from './registration';\nimport { TemplateClass } from './template';\nimport { TwoStepVerificationClass } from './twoStepVerification';\nimport { WABAClass } from './waba';\n\nexport type WhatsAppConfig = {\n accessToken: string;\n appId?: string;\n appSecret?: string;\n phoneNumberId?: number;\n businessAcctId?: string;\n apiVersion?: string;\n webhookEndpoint?: string;\n webhookVerificationToken?: string;\n listenerPort?: number;\n debug?: boolean;\n maxRetriesAfterWait?: number;\n requestTimeout?: number;\n privatePem?: string;\n passphrase?: string;\n};\n\nexport declare class WhatsAppClass {\n constructor(config?: WhatsAppConfig);\n readonly messages: MessagesClass;\n readonly templates: TemplateClass;\n readonly phoneNumber: PhoneNumberClass;\n readonly qrCode: QrCodeClass;\n readonly encryption: EncryptionClass;\n readonly twoStepVerification: TwoStepVerificationClass;\n readonly registration: RegistrationClass;\n readonly media: MediaClass;\n readonly waba: WABAClass;\n readonly flow: FlowClass;\n readonly businessProfile: BusinessProfileClass;\n updateTimeout(ms: number): boolean;\n updatePhoneNumberId(phoneNumberId: number): boolean;\n updateAccessToken(accessToken: string): boolean;\n updateWabaId(wabaId: string): boolean;\n}\n"],"mappings":"+WAAA,IAAAA,EAAA,kBAAAC,EAAAD","names":["whatsapp_exports","__toCommonJS"]}
@@ -1,4 +1,4 @@
1
- import { M as MessageTypesEnum } from '../enums-Bcd3jLw2.mjs';
1
+ import { M as MessageTypesEnum } from '../enums-CI7vzKhn.mjs';
2
2
  import { WebhookMessage } from '../types/webhook.mjs';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { M as MessageTypesEnum } from '../enums-Bcd3jLw2.js';
1
+ import { M as MessageTypesEnum } from '../enums-CI7vzKhn.js';
2
2
  import { WebhookMessage } from '../types/webhook.js';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var P=(t,i)=>{for(var o in i)p(t,o,{get:i[o],enumerable:!0})},S=(t,i,o,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let a of R(i))!_.call(t,a)&&a!==o&&p(t,a,{get:()=>i[a],enumerable:!(l=A(i,a))||l.enumerable});return t};var D=t=>S(p({},"__esModule",{value:!0}),t);var N={};P(N,{filters:()=>e});module.exports=D(N);var e={type:t=>i=>i.type===t,text:t=>t.type==="text",image:t=>t.type==="image",audio:t=>t.type==="audio",video:t=>t.type==="video",document:t=>t.type==="document",sticker:t=>t.type==="sticker",location:t=>t.type==="location",contacts:t=>t.type==="contacts",button:t=>t.type==="button",interactive:t=>t.type==="interactive",system:t=>t.type==="system",order:t=>t.type==="order",matches:t=>{let i=Array.isArray(t)?t:[t];return o=>{if(o.type!=="text"||!o.text)return!1;let l=o.text.body;for(let a of i)if(typeof a=="string"){if(l.includes(a))return!0}else if(a instanceof RegExp&&a.test(l))return!0;return!1}},isReply:t=>!!t.context&&!!t.context.message_id,isReplyTo:t=>i=>!!i.context&&i.context.message_id===t,isForwarded:t=>!!t.context&&!!t.context.forwarded,isFrequentlyForwarded:t=>!!t.context&&!!t.context.frequently_forwarded,and:(...t)=>i=>{for(let o of t)if(!o(i))return!1;return!0},or:(...t)=>i=>{for(let o of t)if(o(i))return!0;return!1},not:t=>i=>!t(i),from:t=>i=>i.from===t,all:()=>()=>!0};0&&(module.exports={filters});
1
+ "use strict";var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var _=(t,i)=>{for(var o in i)l(t,o,{get:i[o],enumerable:!0})},r=(t,i,o,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let e of R(i))!A.call(t,e)&&e!==o&&l(t,e,{get:()=>i[e],enumerable:!(a=p(i,e))||a.enumerable});return t};var P=t=>r(l({},"__esModule",{value:!0}),t);var D={};_(D,{filters:()=>S});module.exports=P(D);var S={type:t=>i=>i.type===t,text:t=>t.type==="text",image:t=>t.type==="image",audio:t=>t.type==="audio",video:t=>t.type==="video",document:t=>t.type==="document",sticker:t=>t.type==="sticker",location:t=>t.type==="location",contacts:t=>t.type==="contacts",button:t=>t.type==="button",interactive:t=>t.type==="interactive",system:t=>t.type==="system",order:t=>t.type==="order",matches:t=>{let i=Array.isArray(t)?t:[t];return o=>{if(o.type!=="text"||!o.text)return!1;let a=o.text.body;for(let e of i)if(typeof e=="string"){if(a.includes(e))return!0}else if(e instanceof RegExp&&e.test(a))return!0;return!1}},isReply:t=>!!t.context&&!!t.context.message_id,isReplyTo:t=>i=>!!i.context&&i.context.message_id===t,isForwarded:t=>!!t.context&&!!t.context.forwarded,isFrequentlyForwarded:t=>!!t.context&&!!t.context.frequently_forwarded,and:(...t)=>i=>{for(let o of t)if(!o(i))return!1;return!0},or:(...t)=>i=>{for(let o of t)if(o(i))return!0;return!1},not:t=>i=>!t(i),from:t=>i=>i.from===t,all:()=>()=>!0};0&&(module.exports={filters});
2
2
  //# sourceMappingURL=filters.js.map
@@ -1,2 +1,2 @@
1
- var H={type:t=>i=>i.type===t,text:t=>t.type==="text",image:t=>t.type==="image",audio:t=>t.type==="audio",video:t=>t.type==="video",document:t=>t.type==="document",sticker:t=>t.type==="sticker",location:t=>t.type==="location",contacts:t=>t.type==="contacts",button:t=>t.type==="button",interactive:t=>t.type==="interactive",system:t=>t.type==="system",order:t=>t.type==="order",matches:t=>{let i=Array.isArray(t)?t:[t];return o=>{if(o.type!=="text"||!o.text)return!1;let l=o.text.body;for(let a of i)if(typeof a=="string"){if(l.includes(a))return!0}else if(a instanceof RegExp&&a.test(l))return!0;return!1}},isReply:t=>!!t.context&&!!t.context.message_id,isReplyTo:t=>i=>!!i.context&&i.context.message_id===t,isForwarded:t=>!!t.context&&!!t.context.forwarded,isFrequentlyForwarded:t=>!!t.context&&!!t.context.frequently_forwarded,and:(...t)=>i=>{for(let o of t)if(!o(i))return!1;return!0},or:(...t)=>i=>{for(let o of t)if(o(i))return!0;return!1},not:t=>i=>!t(i),from:t=>i=>i.from===t,all:()=>()=>!0};export{H as filters};
1
+ var H={type:t=>i=>i.type===t,text:t=>t.type==="text",image:t=>t.type==="image",audio:t=>t.type==="audio",video:t=>t.type==="video",document:t=>t.type==="document",sticker:t=>t.type==="sticker",location:t=>t.type==="location",contacts:t=>t.type==="contacts",button:t=>t.type==="button",interactive:t=>t.type==="interactive",system:t=>t.type==="system",order:t=>t.type==="order",matches:t=>{let i=Array.isArray(t)?t:[t];return o=>{if(o.type!=="text"||!o.text)return!1;let a=o.text.body;for(let e of i)if(typeof e=="string"){if(a.includes(e))return!0}else if(e instanceof RegExp&&e.test(a))return!0;return!1}},isReply:t=>!!t.context&&!!t.context.message_id,isReplyTo:t=>i=>!!i.context&&i.context.message_id===t,isForwarded:t=>!!t.context&&!!t.context.forwarded,isFrequentlyForwarded:t=>!!t.context&&!!t.context.frequently_forwarded,and:(...t)=>i=>{for(let o of t)if(!o(i))return!1;return!0},or:(...t)=>i=>{for(let o of t)if(o(i))return!0;return!1},not:t=>i=>!t(i),from:t=>i=>i.from===t,all:()=>()=>!0};export{H as filters};
2
2
  //# sourceMappingURL=filters.mjs.map
@@ -1,10 +1,11 @@
1
1
  import { WhatsAppConfig } from '../types/whatsapp.mjs';
2
2
  import { WabaConfigType } from '../types/config.mjs';
3
3
  import '../types/businessProfile.mjs';
4
- import '../enums-Bcd3jLw2.mjs';
4
+ import '../enums-CI7vzKhn.mjs';
5
5
  import '../types/request.mjs';
6
6
  import '../types/encryption.mjs';
7
7
  import '../types/flow.mjs';
8
+ import 'http';
8
9
  import '../types/media.mjs';
9
10
  import '../types/messages.mjs';
10
11
  import '../types/base.mjs';
@@ -1,10 +1,11 @@
1
1
  import { WhatsAppConfig } from '../types/whatsapp.js';
2
2
  import { WabaConfigType } from '../types/config.js';
3
3
  import '../types/businessProfile.js';
4
- import '../enums-Bcd3jLw2.js';
4
+ import '../enums-CI7vzKhn.js';
5
5
  import '../types/request.js';
6
6
  import '../types/encryption.js';
7
7
  import '../types/flow.js';
8
+ import 'http';
8
9
  import '../types/media.js';
9
10
  import '../types/messages.js';
10
11
  import '../types/base.js';
@@ -1,2 +1,2 @@
1
- "use strict";var N=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var B=(A,R)=>{for(var S in R)N(A,S,{get:R[S],enumerable:!0})},T=(A,R,S,U)=>{if(R&&typeof R=="object"||typeof R=="function")for(let D of t(R))!G.call(A,D)&&D!==S&&N(A,D,{get:()=>R[D],enumerable:!(U=O(R,D))||U.enumerable});return A};var _=A=>T(N({},"__esModule",{value:!0}),A);var X={};B(X,{importConfig:()=>L});module.exports=_(X);var P=class{name;debug;constructor(R,S=!1){this.name=R,this.debug=S}log(...R){if(this.debug){let S=`[ ${Date.now()} ]`;this.name&&(S+=` - ${this.name}`),console.log.apply(console,[S,": ",...R])}}error(...R){let S=`[ ${Date.now()} ] - ERROR`;this.name&&(S+=` - ${this.name}`),console.error.apply(console,[S,": ",...R])}warn(...R){let S=`[ ${Date.now()} ] - WARN`;this.name&&(S+=` - ${this.name}`),console.warn.apply(console,[S,": ",...R])}info(...R){let S=`[ ${Date.now()} ] - INFO`;this.name&&(S+=` - ${this.name}`),console.info.apply(console,[S,": ",...R])}};var K="UTILS",M=!1,I=new P(K,process.env.DEBUG==="true"||M),F=3e3,i=30,H=2e4,p=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw I.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},L=A=>{p(A);let R={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||F,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||i,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||H,DEBUG:A?.debug||process.env.DEBUG==="true"};return I.log(`Configuration loaded for App Id ${R.M4D_APP_ID}`),R};0&&(module.exports={importConfig});
1
+ "use strict";var N=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var G=(A,R)=>{for(var S in R)N(A,S,{get:R[S],enumerable:!0})},T=(A,R,S,I)=>{if(R&&typeof R=="object"||typeof R=="function")for(let P of t(R))!_.call(A,P)&&P!==S&&N(A,P,{get:()=>R[P],enumerable:!(I=U(R,P))||I.enumerable});return A};var B=A=>T(N({},"__esModule",{value:!0}),A);var X={};G(X,{importConfig:()=>L});module.exports=B(X);var D=class{name;debug;constructor(R,S=!1){this.name=R,this.debug=S}log(...R){if(this.debug){let S=`[ ${Date.now()} ]`;this.name&&(S+=` - ${this.name}`),console.log.apply(console,[S,": ",...R])}}error(...R){let S=`[ ${Date.now()} ] - ERROR`;this.name&&(S+=` - ${this.name}`),console.error.apply(console,[S,": ",...R])}warn(...R){let S=`[ ${Date.now()} ] - WARN`;this.name&&(S+=` - ${this.name}`),console.warn.apply(console,[S,": ",...R])}info(...R){let S=`[ ${Date.now()} ] - INFO`;this.name&&(S+=` - ${this.name}`),console.info.apply(console,[S,": ",...R])}};var K="UTILS",M=!1,O=new D(K,process.env.DEBUG==="true"||M),F=3e3,p=30,H=2e4,i=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw O.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},L=A=>{i(A);let R={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||F,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||p,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||H,DEBUG:A?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:A?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:A?.passphrase||process.env.FLOW_API_PASSPHRASE||""};return O.log(`Configuration loaded for App Id ${R.M4D_APP_ID}`),R};0&&(module.exports={importConfig});
2
2
  //# sourceMappingURL=importConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/importConfig.ts","../../src/utils/logger.ts"],"sourcesContent":["import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 };\n\n LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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,kBAAAE,IAAA,eAAAC,EAAAH,GCGA,IAAqBI,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,EDxCA,IAAME,EAAW,QACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EACvEG,EAAwB,IACxBC,EAAiC,GACjCC,EAA0B,IAE1BC,EAAsBC,GAAuC,CAC/D,GAAI,CAAC,QAAQ,IAAI,wBAA+B,CAACA,GAAQ,YACrD,MAAAN,EAAO,IAAI,2FAA2F,EAChG,IAAI,MAAM,gCAAgC,CAExD,EAEaO,EAAgBC,GAAiC,CAC1DH,EAAmBG,CAAW,EAE9B,IAAMC,EAA6B,CAC9B,WAAuBD,GAAa,OAAS,QAAQ,IAAI,YAAc,GACvE,eAA2BA,GAAa,WAAa,QAAQ,IAAI,gBAAkB,GACnF,mBAA+BA,GAAa,eAAiB,OAAO,QAAQ,IAAI,kBAAkB,EAClG,uBAAgCA,GAAa,gBAAkB,QAAQ,IAAI,wBAA0B,GACrG,kBAA4BA,GAAa,YAAc,QAAQ,IAAI,mBAAqB,GACxF,uBAA6BA,GAAa,aAAe,QAAQ,IAAI,wBAA0B,GAC/F,iBAAiCA,GAAa,iBAAmB,QAAQ,IAAI,kBAAoB,GACjG,2BACGA,GAAa,0BAA4B,QAAQ,IAAI,4BAA8B,GACtF,cACGA,GAAa,cAAgB,SAAS,QAAQ,IAAI,eAAiB,EAAE,GAAKN,EAC7E,uBACGM,GAAa,qBACb,SAAS,QAAQ,IAAI,wBAA0B,EAAE,GACjDL,EACH,gBACGK,GAAa,gBAAkB,SAAS,QAAQ,IAAI,iBAAmB,EAAE,GAAKJ,EACjF,MAAuBI,GAAa,OAAS,QAAQ,IAAI,QAAU,MACxE,EAEA,OAAAR,EAAO,IAAI,mCAAmCS,EAAW,UAAqB,EAAE,EAEzEA,CACX","names":["importConfig_exports","__export","importConfig","__toCommonJS","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig"]}
1
+ {"version":3,"sources":["../../src/utils/importConfig.ts","../../src/utils/logger.ts"],"sourcesContent":["import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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,kBAAAE,IAAA,eAAAC,EAAAH,GCGA,IAAqBI,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,EDxCA,IAAME,EAAW,QACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EACvEG,EAAwB,IACxBC,EAAiC,GACjCC,EAA0B,IAE1BC,EAAsBC,GAAuC,CAC/D,GAAI,CAAC,QAAQ,IAAI,wBAA+B,CAACA,GAAQ,YACrD,MAAAN,EAAO,IAAI,2FAA2F,EAChG,IAAI,MAAM,gCAAgC,CAExD,EAEaO,EAAgBC,GAAiC,CAC1DH,EAAmBG,CAAW,EAE9B,IAAMC,EAA6B,CAC9B,WAAuBD,GAAa,OAAS,QAAQ,IAAI,YAAc,GACvE,eAA2BA,GAAa,WAAa,QAAQ,IAAI,gBAAkB,GACnF,mBAA+BA,GAAa,eAAiB,OAAO,QAAQ,IAAI,kBAAkB,EAClG,uBAAgCA,GAAa,gBAAkB,QAAQ,IAAI,wBAA0B,GACrG,kBAA4BA,GAAa,YAAc,QAAQ,IAAI,mBAAqB,GACxF,uBAA6BA,GAAa,aAAe,QAAQ,IAAI,wBAA0B,GAC/F,iBAAiCA,GAAa,iBAAmB,QAAQ,IAAI,kBAAoB,GACjG,2BACGA,GAAa,0BAA4B,QAAQ,IAAI,4BAA8B,GACtF,cACGA,GAAa,cAAgB,SAAS,QAAQ,IAAI,eAAiB,EAAE,GAAKN,EAC7E,uBACGM,GAAa,qBACb,SAAS,QAAQ,IAAI,wBAA0B,EAAE,GACjDL,EACH,gBACGK,GAAa,gBAAkB,SAAS,QAAQ,IAAI,iBAAmB,EAAE,GAAKJ,EACjF,MAAuBI,GAAa,OAAS,QAAQ,IAAI,QAAU,OACnE,qBAA4BA,GAAa,YAAc,QAAQ,IAAI,sBAAwB,GAC3F,oBAA4BA,GAAa,YAAc,QAAQ,IAAI,qBAAuB,EAC/F,EAEA,OAAAR,EAAO,IAAI,mCAAmCS,EAAW,UAAqB,EAAE,EAEzEA,CACX","names":["importConfig_exports","__export","importConfig","__toCommonJS","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig"]}
@@ -1,2 +1,2 @@
1
- var D=class{name;debug;constructor(S,R=!1){this.name=S,this.debug=R}log(...S){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...S])}}error(...S){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...S])}warn(...S){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...S])}info(...S){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...S])}};var N="UTILS",U=!1,P=new D(N,process.env.DEBUG==="true"||U),I=3e3,O=30,t=2e4,G=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw P.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},F=A=>{G(A);let S={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||I,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||O,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||t,DEBUG:A?.debug||process.env.DEBUG==="true"};return P.log(`Configuration loaded for App Id ${S.M4D_APP_ID}`),S};export{F as importConfig};
1
+ var P=class{name;debug;constructor(S,R=!1){this.name=S,this.debug=R}log(...S){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...S])}}error(...S){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...S])}warn(...S){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...S])}info(...S){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...S])}};var N="UTILS",I=!1,D=new P(N,process.env.DEBUG==="true"||I),O=3e3,U=30,t=2e4,_=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw D.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},F=A=>{_(A);let S={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||O,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||U,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||t,DEBUG:A?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:A?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:A?.passphrase||process.env.FLOW_API_PASSPHRASE||""};return D.log(`Configuration loaded for App Id ${S.M4D_APP_ID}`),S};export{F as importConfig};
2
2
  //# sourceMappingURL=importConfig.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.ts","../../src/utils/importConfig.ts"],"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 { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 };\n\n LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\n};\n"],"mappings":"AAGA,IAAqBA,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,ECxCA,IAAME,EAAW,QACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EACvEG,EAAwB,IACxBC,EAAiC,GACjCC,EAA0B,IAE1BC,EAAsBC,GAAuC,CAC/D,GAAI,CAAC,QAAQ,IAAI,wBAA+B,CAACA,GAAQ,YACrD,MAAAN,EAAO,IAAI,2FAA2F,EAChG,IAAI,MAAM,gCAAgC,CAExD,EAEaO,EAAgBC,GAAiC,CAC1DH,EAAmBG,CAAW,EAE9B,IAAMC,EAA6B,CAC9B,WAAuBD,GAAa,OAAS,QAAQ,IAAI,YAAc,GACvE,eAA2BA,GAAa,WAAa,QAAQ,IAAI,gBAAkB,GACnF,mBAA+BA,GAAa,eAAiB,OAAO,QAAQ,IAAI,kBAAkB,EAClG,uBAAgCA,GAAa,gBAAkB,QAAQ,IAAI,wBAA0B,GACrG,kBAA4BA,GAAa,YAAc,QAAQ,IAAI,mBAAqB,GACxF,uBAA6BA,GAAa,aAAe,QAAQ,IAAI,wBAA0B,GAC/F,iBAAiCA,GAAa,iBAAmB,QAAQ,IAAI,kBAAoB,GACjG,2BACGA,GAAa,0BAA4B,QAAQ,IAAI,4BAA8B,GACtF,cACGA,GAAa,cAAgB,SAAS,QAAQ,IAAI,eAAiB,EAAE,GAAKN,EAC7E,uBACGM,GAAa,qBACb,SAAS,QAAQ,IAAI,wBAA0B,EAAE,GACjDL,EACH,gBACGK,GAAa,gBAAkB,SAAS,QAAQ,IAAI,iBAAmB,EAAE,GAAKJ,EACjF,MAAuBI,GAAa,OAAS,QAAQ,IAAI,QAAU,MACxE,EAEA,OAAAR,EAAO,IAAI,mCAAmCS,EAAW,UAAqB,EAAE,EAEzEA,CACX","names":["Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig"]}
1
+ {"version":3,"sources":["../../src/utils/logger.ts","../../src/utils/importConfig.ts"],"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 { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\n};\n"],"mappings":"AAGA,IAAqBA,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,ECxCA,IAAME,EAAW,QACXC,EAAY,GACZC,EAAS,IAAIC,EAAOH,EAAU,QAAQ,IAAI,QAAU,QAAUC,CAAS,EACvEG,EAAwB,IACxBC,EAAiC,GACjCC,EAA0B,IAE1BC,EAAsBC,GAAuC,CAC/D,GAAI,CAAC,QAAQ,IAAI,wBAA+B,CAACA,GAAQ,YACrD,MAAAN,EAAO,IAAI,2FAA2F,EAChG,IAAI,MAAM,gCAAgC,CAExD,EAEaO,EAAgBC,GAAiC,CAC1DH,EAAmBG,CAAW,EAE9B,IAAMC,EAA6B,CAC9B,WAAuBD,GAAa,OAAS,QAAQ,IAAI,YAAc,GACvE,eAA2BA,GAAa,WAAa,QAAQ,IAAI,gBAAkB,GACnF,mBAA+BA,GAAa,eAAiB,OAAO,QAAQ,IAAI,kBAAkB,EAClG,uBAAgCA,GAAa,gBAAkB,QAAQ,IAAI,wBAA0B,GACrG,kBAA4BA,GAAa,YAAc,QAAQ,IAAI,mBAAqB,GACxF,uBAA6BA,GAAa,aAAe,QAAQ,IAAI,wBAA0B,GAC/F,iBAAiCA,GAAa,iBAAmB,QAAQ,IAAI,kBAAoB,GACjG,2BACGA,GAAa,0BAA4B,QAAQ,IAAI,4BAA8B,GACtF,cACGA,GAAa,cAAgB,SAAS,QAAQ,IAAI,eAAiB,EAAE,GAAKN,EAC7E,uBACGM,GAAa,qBACb,SAAS,QAAQ,IAAI,wBAA0B,EAAE,GACjDL,EACH,gBACGK,GAAa,gBAAkB,SAAS,QAAQ,IAAI,iBAAmB,EAAE,GAAKJ,EACjF,MAAuBI,GAAa,OAAS,QAAQ,IAAI,QAAU,OACnE,qBAA4BA,GAAa,YAAc,QAAQ,IAAI,sBAAwB,GAC3F,oBAA4BA,GAAa,YAAc,QAAQ,IAAI,qBAAuB,EAC/F,EAEA,OAAAR,EAAO,IAAI,mCAAmCS,EAAW,UAAqB,EAAE,EAEzEA,CACX","names":["Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig"]}
@@ -4,10 +4,11 @@ export { MetaError, isMetaError } from './isMetaError.mjs';
4
4
  export { objectToQueryString } from './objectToQueryString.mjs';
5
5
  import '../types/whatsapp.mjs';
6
6
  import '../types/businessProfile.mjs';
7
- import '../enums-Bcd3jLw2.mjs';
7
+ import '../enums-CI7vzKhn.mjs';
8
8
  import '../types/request.mjs';
9
9
  import '../types/encryption.mjs';
10
10
  import '../types/flow.mjs';
11
+ import 'http';
11
12
  import '../types/media.mjs';
12
13
  import '../types/messages.mjs';
13
14
  import '../types/base.mjs';
@@ -4,10 +4,11 @@ export { MetaError, isMetaError } from './isMetaError.js';
4
4
  export { objectToQueryString } from './objectToQueryString.js';
5
5
  import '../types/whatsapp.js';
6
6
  import '../types/businessProfile.js';
7
- import '../enums-Bcd3jLw2.js';
7
+ import '../enums-CI7vzKhn.js';
8
8
  import '../types/request.js';
9
9
  import '../types/encryption.js';
10
10
  import '../types/flow.js';
11
+ import 'http';
11
12
  import '../types/media.js';
12
13
  import '../types/messages.js';
13
14
  import '../types/base.js';
@@ -1,2 +1,2 @@
1
- "use strict";var _=Object.create;var N=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var p=(t,A)=>{for(var R in A)N(t,R,{get:A[R],enumerable:!0})},U=(t,A,R,P)=>{if(A&&typeof A=="object"||typeof A=="function")for(let S of G(A))!B.call(t,S)&&S!==R&&N(t,S,{get:()=>A[S],enumerable:!(P=i(A,S))||P.enumerable});return t};var K=(t,A,R)=>(R=t!=null?_(T(t)):{},U(A||!t||!t.__esModule?N(R,"default",{value:t,enumerable:!0}):R,t)),M=t=>U(N({},"__esModule",{value:!0}),t);var W={};p(W,{generateXHub256Sig:()=>F,importConfig:()=>Y,isMetaError:()=>h,objectToQueryString:()=>Z});module.exports=M(W);var O=K(require("crypto")),F=(t,A)=>O.createHmac("sha256",A).update(t,"utf-8").digest("hex");var D=class{name;debug;constructor(A,R=!1){this.name=A,this.debug=R}log(...A){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...A])}}error(...A){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...A])}warn(...A){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...A])}info(...A){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...A])}};var H="UTILS",l=!1,I=new D(H,process.env.DEBUG==="true"||l),L=3e3,f=30,X=2e4,x=t=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!t?.accessToken)throw I.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},Y=t=>{x(t);let A={M4D_APP_ID:t?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:t?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:t?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:t?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:t?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:t?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:t?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:t?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:t?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||L,MAX_RETRIES_AFTER_WAIT:t?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||f,REQUEST_TIMEOUT:t?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||X,DEBUG:t?.debug||process.env.DEBUG==="true"};return I.log(`Configuration loaded for App Id ${A.M4D_APP_ID}`),A};function h(t){return t!=null&&typeof t=="object"&&"error"in t&&typeof t.error=="object"&&t.error!=null&&"message"in t.error&&typeof t.error.message=="string"&&"type"in t.error&&typeof t.error.type=="string"&&"code"in t.error&&typeof t.error.code=="number"&&"fbtrace_id"in t.error&&typeof t.error.fbtrace_id=="string"&&(!("error_data"in t.error)||typeof t.error.error_data=="object"&&t.error.error_data!=null&&"messaging_product"in t.error.error_data&&t.error.error_data.messaging_product==="whatsapp"&&"details"in t.error.error_data&&typeof t.error.error_data.details=="string")&&(!("error_subcode"in t.error)||typeof t.error.error_subcode=="number")}var Z=t=>{if(!t||Object.keys(t).length===0)return"";let A=new URLSearchParams;for(let[P,S]of Object.entries(t))S!==void 0&&A.append(P,String(S));let R=A.toString();return R?`?${R}`:""};0&&(module.exports={generateXHub256Sig,importConfig,isMetaError,objectToQueryString});
1
+ "use strict";var U=Object.create;var N=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var p=(A,t)=>{for(var R in t)N(A,R,{get:t[R],enumerable:!0})},_=(A,t,R,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let S of G(t))!B.call(A,S)&&S!==R&&N(A,S,{get:()=>t[S],enumerable:!(D=i(t,S))||D.enumerable});return A};var K=(A,t,R)=>(R=A!=null?U(T(A)):{},_(t||!A||!A.__esModule?N(R,"default",{value:A,enumerable:!0}):R,A)),M=A=>_(N({},"__esModule",{value:!0}),A);var W={};p(W,{generateXHub256Sig:()=>F,importConfig:()=>Y,isMetaError:()=>f,objectToQueryString:()=>Z});module.exports=M(W);var I=K(require("crypto")),F=(A,t)=>I.createHmac("sha256",t).update(A,"utf-8").digest("hex");var P=class{name;debug;constructor(t,R=!1){this.name=t,this.debug=R}log(...t){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...t])}}error(...t){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...t])}warn(...t){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...t])}info(...t){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...t])}};var H="UTILS",l=!1,O=new P(H,process.env.DEBUG==="true"||l),L=3e3,h=30,X=2e4,x=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw O.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},Y=A=>{x(A);let t={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||L,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||h,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||X,DEBUG:A?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:A?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:A?.passphrase||process.env.FLOW_API_PASSPHRASE||""};return O.log(`Configuration loaded for App Id ${t.M4D_APP_ID}`),t};function f(A){return A!=null&&typeof A=="object"&&"error"in A&&typeof A.error=="object"&&A.error!=null&&"message"in A.error&&typeof A.error.message=="string"&&"type"in A.error&&typeof A.error.type=="string"&&"code"in A.error&&typeof A.error.code=="number"&&"fbtrace_id"in A.error&&typeof A.error.fbtrace_id=="string"&&(!("error_data"in A.error)||typeof A.error.error_data=="object"&&A.error.error_data!=null&&"messaging_product"in A.error.error_data&&A.error.error_data.messaging_product==="whatsapp"&&"details"in A.error.error_data&&typeof A.error.error_data.details=="string")&&(!("error_subcode"in A.error)||typeof A.error.error_subcode=="number")}var Z=A=>{if(!A||Object.keys(A).length===0)return"";let t=new URLSearchParams;for(let[D,S]of Object.entries(A))S!==void 0&&t.append(D,String(S));let R=t.toString();return R?`?${R}`:""};0&&(module.exports={generateXHub256Sig,importConfig,isMetaError,objectToQueryString});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/generateXHub256Sig.ts","../../src/utils/logger.ts","../../src/utils/importConfig.ts","../../src/utils/isMetaError.ts","../../src/utils/objectToQueryString.ts"],"sourcesContent":["export * from './generateXHub256Sig';\nexport * from './importConfig';\nexport * from './isMetaError';\nexport * from './logger';\nexport * from './objectToQueryString';\n","import * as crypto from 'crypto';\n\nexport const generateXHub256Sig = (body: string, appSecret: string) => {\n return crypto.createHmac('sha256', appSecret).update(body, 'utf-8').digest('hex');\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","import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 };\n\n LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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","export const objectToQueryString = (params: Record<string, any>): string => {\n if (!params || Object.keys(params).length === 0) {\n return '';\n }\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : '';\n};\n"],"mappings":"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","names":["utils_exports","__export","generateXHub256Sig","importConfig","isMetaError","objectToQueryString","__toCommonJS","crypto","generateXHub256Sig","body","appSecret","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig","isMetaError","error","objectToQueryString","params","searchParams","key","value","queryString"]}
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/generateXHub256Sig.ts","../../src/utils/logger.ts","../../src/utils/importConfig.ts","../../src/utils/isMetaError.ts","../../src/utils/objectToQueryString.ts"],"sourcesContent":["export * from './generateXHub256Sig';\nexport * from './importConfig';\nexport * from './isMetaError';\nexport * from './logger';\nexport * from './objectToQueryString';\n","import * as crypto from 'crypto';\n\nexport const generateXHub256Sig = (body: string, appSecret: string) => {\n return crypto.createHmac('sha256', appSecret).update(body, 'utf-8').digest('hex');\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","import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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","export const objectToQueryString = (params: Record<string, any>): string => {\n if (!params || Object.keys(params).length === 0) {\n return '';\n }\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : '';\n};\n"],"mappings":"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","names":["utils_exports","__export","generateXHub256Sig","importConfig","isMetaError","objectToQueryString","__toCommonJS","crypto","generateXHub256Sig","body","appSecret","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig","isMetaError","error","objectToQueryString","params","searchParams","key","value","queryString"]}
@@ -1,2 +1,2 @@
1
- import*as P from"crypto";var B=(t,A)=>P.createHmac("sha256",A).update(t,"utf-8").digest("hex");var S=class{name;debug;constructor(A,R=!1){this.name=A,this.debug=R}log(...A){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...A])}}error(...A){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...A])}warn(...A){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...A])}info(...A){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...A])}};var O="UTILS",I=!1,N=new S(O,process.env.DEBUG==="true"||I),_=3e3,i=30,G=2e4,T=t=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!t?.accessToken)throw N.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},L=t=>{T(t);let A={M4D_APP_ID:t?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:t?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:t?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:t?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:t?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:t?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:t?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:t?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:t?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||_,MAX_RETRIES_AFTER_WAIT:t?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||i,REQUEST_TIMEOUT:t?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||G,DEBUG:t?.debug||process.env.DEBUG==="true"};return N.log(`Configuration loaded for App Id ${A.M4D_APP_ID}`),A};function X(t){return t!=null&&typeof t=="object"&&"error"in t&&typeof t.error=="object"&&t.error!=null&&"message"in t.error&&typeof t.error.message=="string"&&"type"in t.error&&typeof t.error.type=="string"&&"code"in t.error&&typeof t.error.code=="number"&&"fbtrace_id"in t.error&&typeof t.error.fbtrace_id=="string"&&(!("error_data"in t.error)||typeof t.error.error_data=="object"&&t.error.error_data!=null&&"messaging_product"in t.error.error_data&&t.error.error_data.messaging_product==="whatsapp"&&"details"in t.error.error_data&&typeof t.error.error_data.details=="string")&&(!("error_subcode"in t.error)||typeof t.error.error_subcode=="number")}var Y=t=>{if(!t||Object.keys(t).length===0)return"";let A=new URLSearchParams;for(let[U,D]of Object.entries(t))D!==void 0&&A.append(U,String(D));let R=A.toString();return R?`?${R}`:""};export{B as generateXHub256Sig,L as importConfig,X as isMetaError,Y as objectToQueryString};
1
+ import*as D from"crypto";var B=(A,t)=>D.createHmac("sha256",t).update(A,"utf-8").digest("hex");var S=class{name;debug;constructor(t,R=!1){this.name=t,this.debug=R}log(...t){if(this.debug){let R=`[ ${Date.now()} ]`;this.name&&(R+=` - ${this.name}`),console.log.apply(console,[R,": ",...t])}}error(...t){let R=`[ ${Date.now()} ] - ERROR`;this.name&&(R+=` - ${this.name}`),console.error.apply(console,[R,": ",...t])}warn(...t){let R=`[ ${Date.now()} ] - WARN`;this.name&&(R+=` - ${this.name}`),console.warn.apply(console,[R,": ",...t])}info(...t){let R=`[ ${Date.now()} ] - INFO`;this.name&&(R+=` - ${this.name}`),console.info.apply(console,[R,": ",...t])}};var I="UTILS",O=!1,N=new S(I,process.env.DEBUG==="true"||O),U=3e3,i=30,G=2e4,T=A=>{if(!process.env.CLOUD_API_ACCESS_TOKEN&&!A?.accessToken)throw N.log("Environmental variable: CLOUD_API_ACCESS_TOKEN and/or access token argument is undefined."),new Error("Missing WhatsApp access token.")},L=A=>{T(A);let t={M4D_APP_ID:A?.appId||process.env.M4D_APP_ID||"",M4D_APP_SECRET:A?.appSecret||process.env.M4D_APP_SECRET||"",WA_PHONE_NUMBER_ID:A?.phoneNumberId||Number(process.env.WA_PHONE_NUMBER_ID),WA_BUSINESS_ACCOUNT_ID:A?.businessAcctId||process.env.WA_BUSINESS_ACCOUNT_ID||"",CLOUD_API_VERSION:A?.apiVersion||process.env.CLOUD_API_VERSION||"",CLOUD_API_ACCESS_TOKEN:A?.accessToken||process.env.CLOUD_API_ACCESS_TOKEN||"",WEBHOOK_ENDPOINT:A?.webhookEndpoint||process.env.WEBHOOK_ENDPOINT||"",WEBHOOK_VERIFICATION_TOKEN:A?.webhookVerificationToken||process.env.WEBHOOK_VERIFICATION_TOKEN||"",LISTENER_PORT:A?.listenerPort||parseInt(process.env.LISTENER_PORT||"")||U,MAX_RETRIES_AFTER_WAIT:A?.maxRetriesAfterWait||parseInt(process.env.MAX_RETRIES_AFTER_WAIT||"")||i,REQUEST_TIMEOUT:A?.requestTimeout||parseInt(process.env.REQUEST_TIMEOUT||"")||G,DEBUG:A?.debug||process.env.DEBUG==="true",FLOW_API_PRIVATE_PEM:A?.privatePem||process.env.FLOW_API_PRIVATE_PEM||"",FLOW_API_PASSPHRASE:A?.passphrase||process.env.FLOW_API_PASSPHRASE||""};return N.log(`Configuration loaded for App Id ${t.M4D_APP_ID}`),t};function X(A){return A!=null&&typeof A=="object"&&"error"in A&&typeof A.error=="object"&&A.error!=null&&"message"in A.error&&typeof A.error.message=="string"&&"type"in A.error&&typeof A.error.type=="string"&&"code"in A.error&&typeof A.error.code=="number"&&"fbtrace_id"in A.error&&typeof A.error.fbtrace_id=="string"&&(!("error_data"in A.error)||typeof A.error.error_data=="object"&&A.error.error_data!=null&&"messaging_product"in A.error.error_data&&A.error.error_data.messaging_product==="whatsapp"&&"details"in A.error.error_data&&typeof A.error.error_data.details=="string")&&(!("error_subcode"in A.error)||typeof A.error.error_subcode=="number")}var Y=A=>{if(!A||Object.keys(A).length===0)return"";let t=new URLSearchParams;for(let[_,P]of Object.entries(A))P!==void 0&&t.append(_,String(P));let R=t.toString();return R?`?${R}`:""};export{B as generateXHub256Sig,L as importConfig,X as isMetaError,Y as objectToQueryString};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/generateXHub256Sig.ts","../../src/utils/logger.ts","../../src/utils/importConfig.ts","../../src/utils/isMetaError.ts","../../src/utils/objectToQueryString.ts"],"sourcesContent":["import * as crypto from 'crypto';\n\nexport const generateXHub256Sig = (body: string, appSecret: string) => {\n return crypto.createHmac('sha256', appSecret).update(body, 'utf-8').digest('hex');\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","import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 };\n\n LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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","export const objectToQueryString = (params: Record<string, any>): string => {\n if (!params || Object.keys(params).length === 0) {\n return '';\n }\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : '';\n};\n"],"mappings":"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","names":["crypto","generateXHub256Sig","body","appSecret","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig","isMetaError","error","objectToQueryString","params","searchParams","key","value","queryString"]}
1
+ {"version":3,"sources":["../../src/utils/generateXHub256Sig.ts","../../src/utils/logger.ts","../../src/utils/importConfig.ts","../../src/utils/isMetaError.ts","../../src/utils/objectToQueryString.ts"],"sourcesContent":["import * as crypto from 'crypto';\n\nexport const generateXHub256Sig = (body: string, appSecret: string) => {\n return crypto.createHmac('sha256', appSecret).update(body, 'utf-8').digest('hex');\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","import { WhatsAppConfig } from 'src/types/whatsapp';\nimport type { WabaConfigType } from '../types/config';\nimport { WabaConfigEnum } from '../types/enums';\nimport Logger from './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 LOGGER.log(`Configuration loaded for App Id ${wabaConfig[WabaConfigEnum.AppId]}`);\n\n return wabaConfig;\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","export const objectToQueryString = (params: Record<string, any>): string => {\n if (!params || Object.keys(params).length === 0) {\n return '';\n }\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.append(key, String(value));\n }\n }\n\n const queryString = searchParams.toString();\n return queryString ? `?${queryString}` : '';\n};\n"],"mappings":"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","names":["crypto","generateXHub256Sig","body","appSecret","Logger","name","debug","data","prefix","LIB_NAME","LOG_LOCAL","LOGGER","Logger","DEFAULT_LISTENER_PORT","DEFAULT_MAX_RETRIES_AFTER_WAIT","DEFAULT_REQUEST_TIMEOUT","emptyConfigChecker","config","importConfig","inputConfig","wabaConfig","isMetaError","error","objectToQueryString","params","searchParams","key","value","queryString"]}