@builderbot/provider-meta 1.3.5-alpha.3 → 1.3.5-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -13389,6 +13389,27 @@ async function downloadFile(url, Token) {
13389
13389
  }
13390
13390
  }
13391
13391
 
13392
+ /**
13393
+ * Verify Meta JWT token validity
13394
+ * @param token - The JWT token to verify
13395
+ * @returns Token verification result
13396
+ */
13397
+ async function verifyToken(token) {
13398
+ const response = await axios.get('https://graph.facebook.com/debug_token', {
13399
+ params: {
13400
+ input_token: token,
13401
+ access_token: token,
13402
+ },
13403
+ });
13404
+ return response.data;
13405
+ }
13406
+ /**
13407
+ * Get the profile of a WhatsApp user
13408
+ * @param version - The version of the WhatsApp API
13409
+ * @param numberId - The ID of the WhatsApp user
13410
+ * @param token - The token of the WhatsApp user
13411
+ * @returns The profile of the WhatsApp user
13412
+ */
13392
13413
  async function getProfile(version, numberId, token) {
13393
13414
  const response = await axios.get(`https://graph.facebook.com/${version}/${numberId}`, {
13394
13415
  headers: {
@@ -13768,7 +13789,7 @@ class MetaProvider extends bot.ProviderClass {
13768
13789
  screen: screenName,
13769
13790
  data: data ? data : { '<CUSTOM_KEY>': '<CUSTOM_VALUE>' },
13770
13791
  },
13771
- ...(isDraftFlow && { mode: 'draft' })
13792
+ ...(isDraftFlow && { mode: 'draft' }),
13772
13793
  },
13773
13794
  },
13774
13795
  },
@@ -14012,9 +14033,19 @@ class MetaProvider extends bot.ProviderClass {
14012
14033
  .get('/webhook', this.vendor.verifyToken)
14013
14034
  .post('/webhook', this.vendor.incomingMsg);
14014
14035
  }
14036
+ /**
14037
+ * Get the profile of a WhatsApp user
14038
+ * @returns The profile of the WhatsApp user
14039
+ */
14015
14040
  async afterHttpServerInit() {
14016
14041
  try {
14017
14042
  const { version, numberId, jwtToken } = this.globalVendorArgs;
14043
+ // Verify token first
14044
+ const tokenVerification = await verifyToken(jwtToken);
14045
+ if (!tokenVerification.data?.is_valid) {
14046
+ throw new Error('Invalid token');
14047
+ }
14048
+ // Get profile
14018
14049
  const profile = await getProfile(version, numberId, jwtToken);
14019
14050
  const host = {
14020
14051
  ...profile,
@@ -14024,13 +14055,30 @@ class MetaProvider extends bot.ProviderClass {
14024
14055
  this.emit('ready');
14025
14056
  }
14026
14057
  catch (err) {
14058
+ const errorMap = {
14059
+ 'Invalid token': { title: '🔑 TOKEN ERROR', msg: 'Check META_ACCESS_TOKEN in .env' },
14060
+ timeout: { title: '🌐 TIMEOUT', msg: 'Meta API not responding' },
14061
+ '401': { title: '🔐 UNAUTHORIZED', msg: 'Invalid credentials' },
14062
+ '403': { title: '🚫 FORBIDDEN', msg: 'Token lacks permissions' },
14063
+ '500': { title: '🔧 SERVER ERROR', msg: 'Meta API issues' },
14064
+ };
14065
+ const errorKey = err.message.includes('Invalid token')
14066
+ ? 'Invalid token'
14067
+ : err.message.includes('timeout')
14068
+ ? 'timeout'
14069
+ : err.response?.status === 401
14070
+ ? '401'
14071
+ : err.response?.status === 403
14072
+ ? '403'
14073
+ : err.response?.status >= 500
14074
+ ? '500'
14075
+ : 'default';
14076
+ const error = errorMap[errorKey] || { title: '🟠 ERROR AUTH', msg: 'Check credentials' };
14027
14077
  this.emit('notice', {
14028
- title: '🟠 ERROR AUTH 🟠',
14029
- instructions: [
14030
- `Error connecting to META, make sure you have the correct credentials, .env`,
14031
- `https://builderbot.vercel.app/en/providers/meta`,
14032
- ],
14078
+ title: error.title,
14079
+ instructions: [error.msg, 'https://builderbot.app/en/providers/meta'],
14033
14080
  });
14081
+ this.emit('error', err);
14034
14082
  }
14035
14083
  }
14036
14084
  initVendor() {
@@ -15,6 +15,10 @@ declare class MetaProvider extends ProviderClass<MetaInterface> implements MetaI
15
15
  };
16
16
  constructor(args: MetaGlobalVendorArgs);
17
17
  protected beforeHttpServerInit(): void;
18
+ /**
19
+ * Get the profile of a WhatsApp user
20
+ * @returns The profile of the WhatsApp user
21
+ */
18
22
  protected afterHttpServerInit(): Promise<void>;
19
23
  protected initVendor(): Promise<any>;
20
24
  protected fixPrefixMetaNumber: (phoneNumber: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/meta/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/meta/provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { getMediaUrl } from './mediaUrl';
2
2
  export { downloadFile, fileTypeFromFile } from './downloadFile';
3
3
  export { processIncomingMessage } from './processIncomingMsg';
4
- export { getProfile } from './profile';
4
+ export { getProfile, verifyToken } from './profile';
5
5
  export { parseMetaNumber } from './number';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA"}
@@ -1,4 +1,17 @@
1
1
  import type { WhatsAppProfile } from '~/types';
2
+ /**
3
+ * Verify Meta JWT token validity
4
+ * @param token - The JWT token to verify
5
+ * @returns Token verification result
6
+ */
7
+ declare function verifyToken(token: string): Promise<any>;
8
+ /**
9
+ * Get the profile of a WhatsApp user
10
+ * @param version - The version of the WhatsApp API
11
+ * @param numberId - The ID of the WhatsApp user
12
+ * @param token - The token of the WhatsApp user
13
+ * @returns The profile of the WhatsApp user
14
+ */
2
15
  declare function getProfile(version: string, numberId: string, token: string): Promise<WhatsAppProfile>;
3
- export { getProfile };
16
+ export { getProfile, verifyToken };
4
17
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,iBAAe,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAUpG;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C;;;;GAIG;AACH,iBAAe,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAQtD;AAED;;;;;;GAMG;AACH,iBAAe,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAUpG;AAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builderbot/provider-meta",
3
- "version": "1.3.5-alpha.3",
3
+ "version": "1.3.5-alpha.5",
4
4
  "description": "> TODO: description",
5
5
  "author": "vicente1992 <vic_ortiz20@hotmail.es>",
6
6
  "homepage": "https://github.com/vicente1992/bot-whatsapp#readme",
@@ -61,5 +61,5 @@
61
61
  "tslib": "^2.6.2",
62
62
  "tsm": "^2.3.0"
63
63
  },
64
- "gitHead": "65db098c60f48e70d64572523c88972a551db9ae"
64
+ "gitHead": "f24fef3c8787b34a1fc239ef215eef119b663031"
65
65
  }