UNPKG

inapp-spy

Version:
2 lines 5.27 kB
"use strict";(()=>{var M=Object.defineProperty,_=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var A=(e,t,n)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&A(e,n,t[n]);if(b)for(var n of b(t))O.call(t,n)&&A(e,n,t[n]);return e},l=(e,t)=>_(e,V(t));var c=(e,t,n)=>new Promise((r,a)=>{var o=p=>{try{s(n.next(p))}catch(u){a(u)}},i=p=>{try{s(n.throw(p))}catch(u){a(u)}},s=p=>p.done?r(p.value):Promise.resolve(p.value).then(o,i);s((n=n.apply(e,t)).next())});var q="Window is not available and no user agent was provided.",f=()=>{var e,t;if(typeof window!="undefined"){let n=((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.vendor)||(window==null?void 0:window.opera);if(n)return n}return console.error(q),""},d={isInApp:!1,appKey:void 0,appName:void 0,skipped:!1},U=e=>e.match(/(iPhone|iPad|iPod|Macintosh)/)!==null,k=({skip:e,appKey:t,ua:n})=>{if(!e||e.length===0)return!1;let r=U(n);return e.some(({appKey:a,platform:o})=>t===a&&(!o||r&&o==="apple"||!r&&o==="android"))},G=new RegExp(/Mozilla\/5\.0 \([^\)]+\) AppleWebKit\/[^\s]+ \(KHTML, like Gecko\) Version\/[^\s]+ (Mobile\/[^\s]+ )?Safari\/[^\s]+$/),h=e=>G.test(e),P=e=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(e)||window&&window.document&&e.includes("Mac")&&"ontouchend"in window.document,I=e=>[...e.matchAll(/Version\/([^\s]+)/g)][0][1];function v(){return c(this,null,function*(){return new Promise(e=>{if(window.document.readyState==="complete")e(!0);else{let t=()=>{e(!0),window.removeEventListener("load",t)};window.addEventListener("load",t)}})})}var B=r=>c(null,[r],function*({maxTime:e,properties:t,interval:n}){let a=0;return new Promise(o=>{let i=setInterval(()=>{a+=n;for(let s of t)if(s in window){clearInterval(i),o(!0);return}a>=e&&(clearInterval(i),o(!1))},n)})});var g=()=>"TelegramWebview"in window||"TelegramWebviewProxy"in window||"TelegramWebviewProxyProto"in window;var x={telegram:{name:"Telegram"}},K=()=>{if(typeof window!="undefined"&&g())return"telegram"},te=Object.keys(x);var w={messenger:{regex:/(\bFB[\w_]+\/(Messenger))|(^(?!.*\buseragents)(?!.*\bIABMV).*(FB_IAB|FBAN).*)/i,name:"Facebook Messenger"},instagram:{regex:/\bInstagram/i,name:"Instagram"},facebook:{regex:/\bFB[\w_]+\/|\bFacebook/i,name:"Facebook"},twitter:{regex:/\bTwitter/i,name:"Twitter"},line:{regex:/\bLine\//i,name:"Line"},wechat:{regex:/\bMicroMessenger\//i,name:"WeChat"},threads:{regex:/\bBarcelona/i,name:"Threads"},tiktok:{regex:/musical_ly|Bytedance/i,name:"TikTok"},snapchat:{regex:/Snapchat/i,name:"Snapchat"},linkedin:{regex:/LinkedInApp/i,name:"LinkedIn"},gsa:{regex:/GSA/i,name:"Google Search App"},whatsapp:{regex:/\b(WAiOS|WA4A)\//i,name:"WhatsApp"}},j=Object.keys(w),T=e=>j.find(t=>w[t].regex.test(e));var $=["WebView","(iPhone|iPod|iPad)(?!.*Safari/)","Android.*wv\\)"],D=new RegExp(`${$.map(e=>`(${e})`).join("|")}`,"i");var z=()=>c(null,null,function*(){try{return yield navigator.storage.getDirectory(),!1}catch(e){return(e instanceof Error?e.message:String(e)).toLowerCase().includes("unknown transient reason")}}),H=()=>{let e=!1;return new Promise(t=>{let n=`idb${Math.random()}`,r=indexedDB.open(n,1),a=(o,i)=>{e||(e=!0,i&&i.close(),indexedDB.deleteDatabase(n),t(o))};r.onupgradeneeded=o=>{let i=o.target.result,s=i.createObjectStore("t",{autoIncrement:!0}).put(new Blob);s.onerror=p=>{var S;let N=((S=p.target.error)==null?void 0:S.message)||"";a(N.includes("are not yet supported"),i)},s.onsuccess=()=>a(!1,i)},r.onerror=()=>a(!1),r.onsuccess=()=>a(!1,r.result)})},E=()=>c(null,null,function*(){var e;return typeof navigator=="undefined"?!1:((e=navigator.storage)==null?void 0:e.getDirectory)!==void 0?yield z():navigator.maxTouchPoints!==void 0?yield H():!1});var y=(e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"}),F=({note:e,debug:t,last:n})=>{t&&console.log(e,"SchemaDataExtractor"in window||"MicrodataExtractor"in window?"This is Safari":n?"Did not detect Safari - assuming SFSVC":"Still checking if Safari",performance.now())},R="17",L=(...r)=>c(null,[...r],function*({debug:e=!1,maxVersion:t,maxTime:n=300}={}){let a=f();if(!a||!P(a)||!h(a)||"clearAppBadge"in((window==null?void 0:window.navigator)||{})||(yield E())||g())return!1;let i=I(a);if(y(i,R)<0||t!==void 0&&(y(t,R)<0||y(i,t)>0))return!1;yield v(),e&&F({note:"Page loaded",debug:e});let s=yield B({interval:60,maxTime:n,properties:["SchemaDataExtractor","MicrodataExtractor"]});return e&&F({note:"Extra polling done",debug:e,last:!0}),!s});var C=(e={})=>{var s,p;let{skip:t,ua:n=""}=e,r=n||f();if(!r)return l(m({},d),{ua:r});let a=u=>k({skip:t,appKey:u,ua:r}),o=T(r);if(o||r.match(D)!==null)return a(o)?l(m({},d),{ua:r,skipped:!0}):{isInApp:!0,appKey:o,appName:o?w[o].name:void 0,ua:r,skipped:!1};let i=K();return i?a(i)?l(m({},d),{ua:r,skipped:!0}):{isInApp:!0,appKey:i,appName:(p=(s=x)==null?void 0:s[i])==null?void 0:p.name,ua:r,skipped:!1}:l(m({},d),{ua:r})},J=L,ye=C;typeof window!="undefined"&&(window.InAppSpy=C,window.SFSVCExperimental=J);})(); //# sourceMappingURL=index.global.js.map