Socket
Socket
Sign inDemoInstall

twitter-lite

Package Overview
Dependencies
Maintainers
2
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

twitter-lite - npm Package Compare versions

Comparing version 0.11.0 to 0.12.0

2

dist/twitter.js

@@ -1,2 +0,2 @@

var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),s=require("./stream"),o=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},a={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},i=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,s=Object.assign({},a,r);this.authType=s.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:s.consumer_key,secret:s.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:s.access_token_key,secret:s.access_token_secret},this.url=o(s.subdomain,s.version),this.oauth=o(s.subdomain,"oauth"),this.config=s};h._handleResponse=function(e){try{if(e.ok){var t=e.headers;return 204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e}))}return Promise.resolve(e.json()).then(function(e){throw e})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},s={};e&&(s={oauth_callback:e}),s&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},s={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};s.oauth_verifier&&s.oauth_token&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var s={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?s.data=r:s.url+="?"+n.stringify(r)),{requestData:s,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(s,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var s=this._makeRequest("POST",e,i.includes(e)?null:t),o=s.requestData,a=Object.assign({},u,s.headers);return i.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),a["Content-Type"]="application/x-www-form-urlencoded"),r(o.url,{method:"POST",headers:a,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var s=this._makeRequest("PUT",e,t),o=s.requestData,a=Object.assign({},u,s.headers);return n=JSON.stringify(n),r(o.url,{method:"PUT",headers:a,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var a=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var i=new s,u={url:o("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){i.destroy=a.stream.destroy=function(){return e.body.destroy()},e.ok?i.emit("start",e):(e._headers=e.headers,i.emit("error",e)),e.body.on("data",function(e){return i.parse(e)}).on("error",function(e){return i.emit("error",e)}).on("end",function(){return i.emit("end",e)})}).catch(function(e){return i.emit("error",e)}),i},module.exports=h;
var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),s=require("./stream"),o=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},a={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},i=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create","collections/entries/curate"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,s=Object.assign({},a,r);this.authType=s.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:s.consumer_key,secret:s.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:s.access_token_key,secret:s.access_token_secret},this.url=o(s.subdomain,s.version),this.oauth=o(s.subdomain,"oauth"),this.config=s};h._handleResponse=function(e){try{var t=e.headers;return e.ok?204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e})):Promise.resolve(e.json()).then(function(e){throw Object.assign({},{_headers:t},e)})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},s={};e&&(s={oauth_callback:e}),s&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},s={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};s.oauth_verifier&&s.oauth_token&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var s={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?s.data=r:s.url+="?"+n.stringify(r)),{requestData:s,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(s,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var s=this._makeRequest("POST",e,i.includes(e)?null:t),o=s.requestData,a=Object.assign({},u,s.headers);return i.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),a["Content-Type"]="application/x-www-form-urlencoded"),r(o.url,{method:"POST",headers:a,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var s=this._makeRequest("PUT",e,t),o=s.requestData,a=Object.assign({},u,s.headers);return n=JSON.stringify(n),r(o.url,{method:"PUT",headers:a,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var a=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var i=new s,u={url:o("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){i.destroy=a.stream.destroy=function(){return e.body.destroy()},e.ok?i.emit("start",e):(e._headers=e.headers,i.emit("error",e)),e.body.on("data",function(e){return i.parse(e)}).on("error",function(e){return i.emit("error",e)}).on("end",function(){return i.emit("end",e)})}).catch(function(e){return i.emit("error",e)}),i},module.exports=h;
//# sourceMappingURL=twitter.js.map

@@ -1,2 +0,2 @@

var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),s=require("./stream"),o=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},a={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},i=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,s=Object.assign({},a,r);this.authType=s.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:s.consumer_key,secret:s.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:s.access_token_key,secret:s.access_token_secret},this.url=o(s.subdomain,s.version),this.oauth=o(s.subdomain,"oauth"),this.config=s};h._handleResponse=function(e){try{if(e.ok){var t=e.headers;return 204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e}))}return Promise.resolve(e.json()).then(function(e){throw e})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},s={};e&&(s={oauth_callback:e}),s&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},s={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};s.oauth_verifier&&s.oauth_token&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var s={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?s.data=r:s.url+="?"+n.stringify(r)),{requestData:s,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(s,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var s=this._makeRequest("POST",e,i.includes(e)?null:t),o=s.requestData,a=Object.assign({},u,s.headers);return i.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),a["Content-Type"]="application/x-www-form-urlencoded"),r(o.url,{method:"POST",headers:a,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var s=this._makeRequest("PUT",e,t),o=s.requestData,a=Object.assign({},u,s.headers);return n=JSON.stringify(n),r(o.url,{method:"PUT",headers:a,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var a=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var i=new s,u={url:o("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){i.destroy=a.stream.destroy=function(){return e.body.destroy()},e.ok?i.emit("start",e):(e._headers=e.headers,i.emit("error",e)),e.body.on("data",function(e){return i.parse(e)}).on("error",function(e){return i.emit("error",e)}).on("end",function(){return i.emit("end",e)})}).catch(function(e){return i.emit("error",e)}),i},module.exports=h;
var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),s=require("./stream"),o=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},a={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},i=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create","collections/entries/curate"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,s=Object.assign({},a,r);this.authType=s.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:s.consumer_key,secret:s.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:s.access_token_key,secret:s.access_token_secret},this.url=o(s.subdomain,s.version),this.oauth=o(s.subdomain,"oauth"),this.config=s};h._handleResponse=function(e){try{var t=e.headers;return e.ok?204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e})):Promise.resolve(e.json()).then(function(e){throw Object.assign({},{_headers:t},e)})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},s={};e&&(s={oauth_callback:e}),s&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},s={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};s.oauth_verifier&&s.oauth_token&&(t.url+="?"+n.stringify(s));var o=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,o)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var s={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?s.data=r:s.url+="?"+n.stringify(r)),{requestData:s,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(s,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var s=this._makeRequest("POST",e,i.includes(e)?null:t),o=s.requestData,a=Object.assign({},u,s.headers);return i.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),a["Content-Type"]="application/x-www-form-urlencoded"),r(o.url,{method:"POST",headers:a,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var s=this._makeRequest("PUT",e,t),o=s.requestData,a=Object.assign({},u,s.headers);return n=JSON.stringify(n),r(o.url,{method:"PUT",headers:a,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var a=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var i=new s,u={url:o("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){i.destroy=a.stream.destroy=function(){return e.body.destroy()},e.ok?i.emit("start",e):(e._headers=e.headers,i.emit("error",e)),e.body.on("data",function(e){return i.parse(e)}).on("error",function(e){return i.emit("error",e)}).on("end",function(){return i.emit("end",e)})}).catch(function(e){return i.emit("error",e)}),i},module.exports=h;
//# sourceMappingURL=twitter.m.js.map

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),o=require("./stream"),s=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},i={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},a=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,o=Object.assign({},i,r);this.authType=o.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:o.consumer_key,secret:o.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:o.access_token_key,secret:o.access_token_secret},this.url=s(o.subdomain,o.version),this.oauth=s(o.subdomain,"oauth"),this.config=o};h._handleResponse=function(e){try{if(e.ok){var t=e.headers;return 204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e}))}return Promise.resolve(e.json()).then(function(e){throw e})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},o={};e&&(o={oauth_callback:e}),o&&(t.url+="?"+n.stringify(o));var s=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,s)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},o={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};o.oauth_verifier&&o.oauth_token&&(t.url+="?"+n.stringify(o));var s=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,s)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var o={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?o.data=r:o.url+="?"+n.stringify(r)),{requestData:o,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(o,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var o=this._makeRequest("POST",e,a.includes(e)?null:t),s=o.requestData,i=Object.assign({},u,o.headers);return a.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),i["Content-Type"]="application/x-www-form-urlencoded"),r(s.url,{method:"POST",headers:i,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var o=this._makeRequest("PUT",e,t),s=o.requestData,i=Object.assign({},u,o.headers);return n=JSON.stringify(n),r(s.url,{method:"PUT",headers:i,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var i=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var a=new o,u={url:s("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){a.destroy=i.stream.destroy=function(){return e.body.destroy()},e.ok?a.emit("start",e):(e._headers=e.headers,a.emit("error",e)),e.body.on("data",function(e){return a.parse(e)}).on("error",function(e){return a.emit("error",e)}).on("end",function(){return a.emit("end",e)})}).catch(function(e){return a.emit("error",e)}),a},module.exports=h});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){var e=require("crypto"),t=require("oauth-1.0a"),r=require("cross-fetch"),n=require("querystring"),o=require("./stream"),s=function(e,t){return void 0===t&&(t="1.1"),"https://"+e+".twitter.com/"+t},a={subdomain:"api",consumer_key:null,consumer_secret:null,access_token_key:null,access_token_secret:null,bearer_token:null,version:"1.1"},i=["direct_messages/events/new","direct_messages/welcome_messages/new","direct_messages/welcome_messages/rules/new","media/metadata/create","collections/entries/curate"],u={"Content-Type":"application/json",Accept:"application/json"};function c(e){return e.replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")}var h=function(r){var n,o=Object.assign({},a,r);this.authType=o.bearer_token?"App":"User",this.client=t({consumer:{key:(n={key:o.consumer_key,secret:o.consumer_secret}).key,secret:n.secret},signature_method:"HMAC-SHA1",hash_function:function(t,r){return e.createHmac("sha1",r).update(t).digest("base64")}}),this.token={key:o.access_token_key,secret:o.access_token_secret},this.url=s(o.subdomain,o.version),this.oauth=s(o.subdomain,"oauth"),this.config=o};h._handleResponse=function(e){try{var t=e.headers;return e.ok?204===e.status||"0"===e.headers.get("content-length")?Promise.resolve({_headers:t}):Promise.resolve(e.json().then(function(e){return e._headers=t,e})):Promise.resolve(e.json()).then(function(e){throw Object.assign({},{_headers:t},e)})}catch(e){return Promise.reject(e)}},h._handleResponseTextOrJson=function(e){try{return Promise.resolve(e.text()).then(function(t){if(e.ok)return n.parse(t);var r;try{r=JSON.parse(t)}catch(e){r=t}return Promise.reject(r)})}catch(e){return Promise.reject(e)}},h.prototype.getBearerToken=function(){try{var e={Authorization:"Basic "+Buffer.from(this.config.consumer_key+":"+this.config.consumer_secret).toString("base64"),"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};return Promise.resolve(r("https://api.twitter.com/oauth2/token",{method:"POST",body:"grant_type=client_credentials",headers:e}).then(h._handleResponse))}catch(e){return Promise.reject(e)}},h.prototype.getRequestToken=function(e){try{var t={url:this.oauth+"/request_token",method:"POST"},o={};e&&(o={oauth_callback:e}),o&&(t.url+="?"+n.stringify(o));var s=this.client.toHeader(this.client.authorize(t,{}));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,s)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype.getAccessToken=function(e){try{var t={url:this.oauth+"/access_token",method:"POST"},o={oauth_verifier:e.oauth_verifier,oauth_token:e.oauth_token};o.oauth_verifier&&o.oauth_token&&(t.url+="?"+n.stringify(o));var s=this.client.toHeader(this.client.authorize(t));return Promise.resolve(r(t.url,{method:"POST",headers:Object.assign({},u,s)}).then(h._handleResponseTextOrJson))}catch(e){return Promise.reject(e)}},h.prototype._makeRequest=function(e,t,r){var o={url:this.url+"/"+t+".json",method:e};return r&&("POST"===e?o.data=r:o.url+="?"+n.stringify(r)),{requestData:o,headers:"User"===this.authType?this.client.toHeader(this.client.authorize(o,this.token)):{Authorization:"Bearer "+this.config.bearer_token}}},h.prototype.get=function(e,t){var n=this._makeRequest("GET",e,t);return r(n.requestData.url,{headers:n.headers}).then(h._handleResponse)},h.prototype.post=function(e,t){var o=this._makeRequest("POST",e,i.includes(e)?null:t),s=o.requestData,a=Object.assign({},u,o.headers);return i.includes(e)?t=JSON.stringify(t):(t=c(n.stringify(t)),a["Content-Type"]="application/x-www-form-urlencoded"),r(s.url,{method:"POST",headers:a,body:t}).then(h._handleResponse)},h.prototype.put=function(e,t,n){var o=this._makeRequest("PUT",e,t),s=o.requestData,a=Object.assign({},u,o.headers);return n=JSON.stringify(n),r(s.url,{method:"PUT",headers:a,body:n}).then(h._handleResponse)},h.prototype.stream=function(e,t){var a=this;if("User"!==this.authType)throw new Error("Streams require user context authentication");var i=new o,u={url:s("stream")+"/"+e+".json",method:"POST"};t&&(u.data=t);var h=this.client.toHeader(this.client.authorize(u,this.token));return r(u.url,{method:"POST",headers:Object.assign({},h,{"Content-Type":"application/x-www-form-urlencoded"}),body:c(n.stringify(t))}).then(function(e){i.destroy=a.stream.destroy=function(){return e.body.destroy()},e.ok?i.emit("start",e):(e._headers=e.headers,i.emit("error",e)),e.body.on("data",function(e){return i.parse(e)}).on("error",function(e){return i.emit("error",e)}).on("end",function(){return i.emit("end",e)})}).catch(function(e){return i.emit("error",e)}),i},module.exports=h});
//# sourceMappingURL=twitter.umd.js.map

@@ -1,7 +0,7 @@

/**
* Typings for twitter-lite
*
/**
* Typings for twitter-lite
*
* @version 0.10-1.0
* @author Floris de Bijl <@fdebijl>
*
*
* @example

@@ -16,3 +16,3 @@ * const Twitter = require('twitter-lite')

* });
*
*
* @example

@@ -37,8 +37,8 @@ * // Enable esModuleInterop in your tsconfig to import typings

export default class Twitter {
#authType: AuthType;
#url: string;
#oauth: string;
#config: TwitterOptions;
#client: OAuth;
#token: KeySecret;
private authType: AuthType;
private url: string;
private oauth: string;
private config: TwitterOptions;
private client: OAuth;
private token: KeySecret;

@@ -64,5 +64,11 @@ constructor(options: TwitterOptions);

*/
private _makeRequest(method: 'GET' | 'POST' | 'PUT', resource: string, parameters: object): { requestData: { url: string; method: string; }; headers: ({ Authorization: string; } | OAuth.Header); };
private _makeRequest(
method: 'GET' | 'POST' | 'PUT',
resource: string,
parameters: object
): {
requestData: { url: string; method: string };
headers: { Authorization: string } | OAuth.Header;
};
/**

@@ -87,17 +93,21 @@ * Send a GET request

*/
public post<T = any>(resource: string, body: object): Promise<T>
public post<T = any>(resource: string, body: object): Promise<T>;
/**
* Send a PUT request
* Send a PUT request
* @type {T = any} Expected type for the response from this request, generally `object` or `array`.
* @param {string} resource - endpoint e.g. `direct_messages/welcome_messages/update`
* @param {object} parameters - required or optional query parameters
* @param {object} body - PUT request body
* @param {object} body - PUT request body
* @returns {Promise<any>} Promise resolving to the response from the Twitter API.
*/
public put<T = any>(resource: string, parameters: object, body: object): Promise<T>
public put<T = any>(
resource: string,
parameters: object,
body: object
): Promise<T>;
/**
* Open a stream to a specified endpoint
*
*
* @param {string} resource - endpoint, e.g. `statuses/filter`

@@ -110,2 +120,6 @@ * @param {object} parameters

/* In reality snowflakes are BigInts. Once BigInt is supported by browsers and Node per default, we could adjust this type.
Currently Twitter themselves convert it to strings for the API though, so this change will come some time in the far future. */
type snowflake = string;
interface TwitterOptions {

@@ -147,12 +161,17 @@ /** "api" is the default (change for other subdomains) */

interface TokenResponse {
oauth_token: OauthToken;
oauth_token_secret: OauthTokenSecret;
}
type TokenResponse =
| {
oauth_token: OauthToken;
oauth_token_secret: OauthTokenSecret;
oauth_callback_confirmed: true;
}
| { oauth_callback_confirmed: false };
interface AccessTokenResponse extends TokenResponse {
user_id: number;
interface AccessTokenResponse {
oauth_token: string;
oauth_token_secret: string;
user_id: snowflake;
screen_name: string;
}
declare class Stream extends EventEmitter {

@@ -162,2 +181,3 @@ constructor();

parse(buffer: Buffer): void;
}
destroy(): void;
}
{
"name": "twitter-lite",
"version": "0.11.0",
"version": "0.12.0",
"description": "Tiny, full-featured client/server REST/stream library for the Twitter API",

@@ -35,11 +35,11 @@ "source": "twitter.js",

"devDependencies": {
"@types/jest": "^23.3.10",
"@types/node": "^13.7.4",
"@types/jest": "^25.2.1",
"@types/node": "^13.13.4",
"bundlesize": "^0.18.0",
"dotenv": "^6.2.0",
"eslint": "^5.15.3",
"eslint-plugin-jest": "^22.4.1",
"flow-bin": "^0.68.0",
"husky": "^1.3.1",
"jest": "^23.6.0",
"dotenv": "^8.2.0",
"eslint": "^6.8.0",
"eslint-plugin-jest": "^23.8.2",
"flow-bin": "^0.123.0",
"husky": "^4.2.5",
"jest": "^25.5.0",
"microbundle": "^0.11.0",

@@ -49,6 +49,6 @@ "typescript": "^3.8.2"

"scripts": {
"lint": "eslint ./",
"lint": "eslint --fix ./",
"prepare": "microbundle {stream,twitter}.js && bundlesize",
"test": "eslint . && jest --detectOpenHandles",
"release": "npm run -s prepare && npm test && git tag $npm_package_version && git push && git push --tags && npm publish"
"test": "eslint --fix . && jest --detectOpenHandles",
"release": "npm run -s prepare && git tag $npm_package_version && git push && git push --tags && npm publish"
},

@@ -55,0 +55,0 @@ "husky": {

@@ -323,5 +323,14 @@ # Twitter Lite

### Headers on success
```es6
const tweets = await client.get("statuses/home_timeline");
console.log(`Rate: ${tweets._headers.get('x-rate-limit-remaining')} / ${tweets._headers.get('x-rate-limit-limit')}`);
const delta = (tweets._headers.get('x-rate-limit-reset') * 1000) - Date.now()
console.log(`Reset: ${Math.ceil(delta / 1000 / 60)} minutes`);
```
### API errors
`.get` and `.post` reject on error, so you can use try/catch to handle errors. The error object contains an `errors` property with the error `code` and `message`, and a `_headers` property with the the HTTP response code and [Headers](https://developer.twitter.com/en/docs/basics/rate-limiting.html) object returned by the Twitter API. Note that each `_headers` property is an array, usually of length 1.
`.get` and `.post` reject on error, so you can use try/catch to handle errors. The error object contains an `errors` property with the error `code` and `message`, and a `_headers` property with the the HTTP response code and [Headers](https://developer.twitter.com/en/docs/basics/rate-limiting.html) object returned by the Twitter API.

@@ -337,3 +346,3 @@ ```es6

// rate limit exceeded
console.log("Rate limit will reset on", new Date(e._headers["x-rate-limit-reset"] * 1000));
console.log("Rate limit will reset on", new Date(e._headers.get("x-rate-limit-reset") * 1000));
else

@@ -340,0 +349,0 @@ // some other kind of error, e.g. read-only API trying to POST

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc