(()=>{"use strict";const e="mnojpmjdmbbfmejpflffifhffcmidifd";let t=null;const r=()=>t,n=()=>"complete"===document.readyState&&"visible"===document.visibilityState,s=(RegExp(/&(?:amp|lt|gt|quot|#(0+)?39);/g.source),["authorization","x-csrf-token","x-guest-token"]),a=/[; ]_twitter_sess=([^\s;]*)/;let i=null,o={};const c=e=>{if(!e)return null;const t=e.match(a);return t?unescape(t[1]):null},u=()=>o,l=()=>o.authorization&&(o["x-csrf-token"]&&o["x-twitter-auth-type"]||o["x-csrf-token"]&&o["x-guest-token"]),d="twitter",m=["https://api.twitter.com/1.1/*"],p=["requestHeaders","extraHeaders"];let h=0;const f=new class{constructor(e){this.values=new Map,this.maxEntries=e}get(e){if(!e)return null;const t=this.values.get(e);return t?(this.values.delete(e),this.values.set(e,t),t):null}put(e,t){if(this.values.size>=this.maxEntries){const e=this.values.keys().next().value;this.values.delete(e)}this.values.set(e,t)}}(128),g=(e,t)=>{if(!e||!t)return;const n=t.id_str,s=`twitter#channel:${n}`,a=e,i=(l=e)?`twitter_${l}`:"",o=t.profile_image_url_https.replace("_normal",""),c=((e,t)=>e?t?`https://twitter.com/intent/user?user_id=${t}&screen_name=${e}`:`https://twitter.com/${e}/`:"")(e,n),u=r();var l;u&&u.postMessage({type:"SavePublisherVisit",mediaType:d,data:{url:c,publisherKey:s,publisherName:a,mediaKey:i,favIconUrl:o}})},v=e=>{const t=(e=>{const t=new URLSearchParams(e.search);if(!t)return"";const r=t.get("screen_name");if(r)return unescape(r);if(!e.pathname)return"";const n=e.pathname.split("/").filter((e=>e));return n&&0!==n.length?n[0]:""})(e);if(!t)return;const n=f.get(t);n?g(t,n):(async e=>e?((e,t)=>new Promise(((n,s)=>{if(!e||!t)return void s(new Error("Invalid parameters"));if(!l())return void s(new Error("Missing auth headers"));const a=r();if(!a)return void s(new Error("Invalid port"));if(0!==h&&Date.now()-h<3e3)return void s(new Error("Ignoring API request due to network throttle"));h=Date.now();const i=u();a.postMessage({type:"OnAPIRequest",mediaType:d,data:{name:e,url:t,init:{credentials:"include",headers:{...i},referrerPolicy:"no-referrer-when-downgrade",method:"GET",redirect:"follow"}}}),a.onMessage.addListener((function t(r){if(a){if(!r||!r.data)return a.onMessage.removeListener(t),void s(new Error("Invalid message"));if("OnAPIResponse"===r.type){if(!r.data.name||!r.data.response&&!r.data.error)return a.onMessage.removeListener(t),void s(new Error("Invalid message"));if(r.data.name===e){if(a.onMessage.removeListener(t),r.data.error)return void s(new Error(r.data.error));n(r.data.response)}}}else s(new Error("Invalid port"))}))})))("GetUserDetails",`https://api.twitter.com/1.1/users/show.json?screen_name=${e}`):Promise.reject(new Error("Invalid parameters")))(t).then((e=>{f.put(t,e),g(t,e)})).catch((e=>{console.error(`Failed to fetch user details for ${t}: ${e.message}`)}))},w=()=>{const e=new URL(location.href);(e=>{if(["/","/about","/home","/login","/logout","/messages","/privacy","/search","/settings","/tos"].includes(e))return!0;const t=["/account/","/compose/","/explore","/hashtag/","/i/","/messages/","/notifications","/settings/","/who_to_follow/","/?login","/?logout"];for(const r of t)if(e.startsWith(r))return!0;return!1})(e.pathname)?(()=>{const e=r();e&&e.postMessage({type:"SavePublisherVisit",mediaType:"",data:{url:"https://twitter.com",publisherKey:"twitter.com",publisherName:"twitter.com",mediaKey:"",favIconUrl:""}})})():v(e)};let y=!1,b=!1;const x=(e,t)=>{e===d&&t&&t.requestHeaders&&(e=>{if(!e)return!1;let t={};for(const r of e)if("Cookie"===r.name){const e=c(r.value);e!==i&&(i=e,t={})}else(s.includes(r.name)||r.name.startsWith("x-twitter-"))&&(t[r.name]=r.value);return"yes"!==t["x-twitter-active-user"]&&(t["x-twitter-active-user"]="yes"),!((e,t)=>{const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(t);if(r.length!==n.length)return!1;for(let n=0;n{e&&e.url&&w()};var I;chrome.extension.inIncognitoContext||(I=e=>{e?(n()?w():document.addEventListener("readystatechange",(function(){n()&&w()})),document.addEventListener("visibilitychange",(function(){"visible"===document.visibilityState&&w()})),((e,t,n,s)=>{if(b)return;b=!0;const a=r();a&&(a.postMessage({type:"RegisterOnSendHeadersWebRequest",mediaType:e,data:{urlPatterns:t,extra:n}}),a.onMessage.addListener((function(e){e.data&&"OnSendHeadersWebRequest"===e.type&&s(e.mediaType,e.data.details)})))})(d,m,p,x),((e,t)=>{if(y)return;y=!0;const n=r();n&&(n.postMessage({type:"RegisterOnUpdatedTab",mediaType:e}),n.onMessage.addListener((function(e){e.data&&"OnUpdatedTab"===e.type&&t(e.data.changeInfo)})))})(d,E)):console.error("Failed to initialize communications port")},t?I(!0):(chrome.runtime.sendMessage(e,{type:"SupportsGreaselion"},(function(r){!chrome.runtime.lastError&&r&&r.supported&&(t=chrome.runtime.connect(e,{name:"Greaselion"}),I(!0))})),setTimeout((()=>{t||(t=chrome.runtime.connect("jidkidbbcafjabdphckchenhfomhnfma",{name:"Greaselion"}),I(!0))}),100)),console.info("Greaselion script loaded: twitterBase.ts"))})();