{"version":3,"sources":["jsdelivr-header.js","/npm/twit-wrapper@1.0.5/src/TwitterClient.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,KAAO,QAAQ,QAErB,MAAM,cACJ,YACE,EACA,EACA,EACA,EACA,EAAU,IACV,GAAY,GAEZ,KAAK,KAAO,IAAI,KAAK,CACnB,aAAc,EACd,gBAAiB,EACjB,aAAc,EACd,oBAAqB,EACrB,WAAY,EACZ,aAEH,CAGD,UAAU,GACR,OAAO,IAAI,SAAQ,CAAC,EAAS,KAC3B,MACM,EAAS,CAAE,OAAS,GAAE,KAC5B,KAAK,KACF,KAHS,kBAGC,GACV,MAAK,IACJ,MAAM,EAAQ,EAAI,KAClB,EAAQ,CACN,iBAAkB,EAAM,WACxB,gBAAiB,EAAM,KAAK,KAC5B,uBAAwB,EAAM,KAAK,YACnC,kBAAmB,EAAM,KAAK,OAC9B,WAAY,EAAM,MALpB,IAQD,OAAM,IACL,EAAO,EAAP,GAbJ,GAgBH,CAMD,UAAU,EAAS,EAAU,EAAO,KAAM,EAAa,KACrD,OAAO,IAAI,SAAQ,CAAC,EAAS,KAC3B,MACM,EAAS,CAAE,EAAI,GAAE,WAAiB,IAAY,MAAO,EAAY,QACvE,KAAK,KACF,IAHS,gBAGA,GACT,MAAK,IACJ,MACM,EADS,EAAI,KAAK,SACC,KAAI,KAC3B,WAAY,EAAM,WAClB,UAAW,EAAM,KAAK,KACtB,iBAAkB,EAAM,KAAK,YAC7B,WAAY,EAAM,KAClB,4BAA6B,EAAM,iBAC/B,EAAM,iBAAiB,KACvB,SAEN,EAAQ,EAAR,IAED,OAAM,IACL,EAAO,EAAP,GAhBJ,GAmBH,EAGH,OAAO,QAAU","file":"/npm/twit-wrapper@1.0.5/lib/TwitterClient.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/twit-wrapper@1.0.5/lib/TwitterClient.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const Twit = require('twit');\n\nclass TwitterClient {\n  constructor(\n    consumerAPIKey,\n    consumerAPISecretKey,\n    accessToken,\n    accessTokenSecret,\n    timeout = 60000,\n    strictSSL = true,\n  ) {\n    this.twit = new Twit({\n      consumer_key: consumerAPIKey,\n      consumer_secret: consumerAPISecretKey,\n      access_token: accessToken,\n      access_token_secret: accessTokenSecret,\n      timeout_ms: timeout,\n      strictSSL,\n    });\n  }\n\n  // Methods\n  postTweet(msg) {\n    return new Promise((resolve, reject) => {\n      const url = 'statuses/update';\n      const params = { status: `${msg}` };\n      this.twit\n        .post(url, params)\n        .then(res => {\n          const tweet = res.data;\n          resolve({\n            tweet_created_at: tweet.created_at,\n            tweet_user_name: tweet.user.name,\n            tweet_user_screen_name: tweet.user.screen_name,\n            tweet_text_length: tweet.text.length,\n            tweet_text: tweet.text,\n          });\n        })\n        .catch(err => {\n          reject(err);\n        });\n    });\n  }\n\n  // Return tweets containing the keyword since fromDate param.\n  // Filter:\n  // - default language is English.\n  // - Limit result to 100 tweets (maximum)\n  getTweets(keyword, fromDate, lang = 'en', maxResults = 100) {\n    return new Promise((resolve, reject) => {\n      const url = 'search/tweets';\n      const params = { q: `${keyword} since:${fromDate}`, count: maxResults, lang };\n      this.twit\n        .get(url, params)\n        .then(res => {\n          const tweets = res.data.statuses;\n          const tweetsMap = tweets.map(tweet => ({\n            created_at: tweet.created_at,\n            user_name: tweet.user.name,\n            user_screen_name: tweet.user.screen_name,\n            tweet_text: tweet.text,\n            tweet_retweeted_status_text: tweet.retweeted_status\n              ? tweet.retweeted_status.text\n              : null,\n          }));\n          resolve(tweetsMap);\n        })\n        .catch(err => {\n          reject(err);\n        });\n    });\n  }\n}\n\nmodule.exports = TwitterClient;\n"]}