UNPKG

inapp-spy

Version:
2 lines 5.24 kB
"use strict";(()=>{var _=Object.defineProperty,M=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var A=(e,t,n)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,u=(e,t)=>{for(var n in t||(t={}))O.call(t,n)&&A(e,n,t[n]);if(b)for(var n of b(t))W.call(t,n)&&A(e,n,t[n]);return e},m=(e,t)=>M(e,V(t));var c=(e,t,n)=>new Promise((r,a)=>{var o=s=>{try{p(n.next(s))}catch(l){a(l)}},i=s=>{try{p(n.throw(s))}catch(l){a(l)}},p=s=>s.done?r(s.value):Promise.resolve(s.value).then(o,i);p((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},G=e=>e.match(/(iPhone|iPad|iPod|Macintosh)/)!==null,k=({skip:e,appKey:t,ua:n})=>{if(!e||e.length===0)return!1;let r=G(n);return e.some(({appKey:a,platform:o})=>t===a&&(!o||r&&o==="apple"||!r&&o==="android"))},U=new RegExp(/Mozilla\/5\.0 \([^\)]+\) AppleWebKit\/[^\s]+ \(KHTML, like Gecko\) Version\/[^\s]+ (Mobile\/[^\s]+ )?Safari\/[^\s]+$/),P=e=>U.test(e),h=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 p of t)if(p 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_]+\//,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"}},j=Object.keys(w),T=e=>j.find(t=>w[t].regex.test(e));var $=["WebView","(iPhone|iPod|iPad)(?!.*Safari/)","Android.*wv\\)","FB_\\w|FB\\w","Snapchat","GSA"],D=new RegExp(`${$.map(e=>`(${e})`).join("|")}`,"ig");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,p=i.createObjectStore("t",{autoIncrement:!0}).put(new Blob);p.onerror=s=>{var y;let N=((y=s.target.error)==null?void 0:y.message)||"";a(N.includes("are not yet supported"),i)},p.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 S=(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||!h(a)||!P(a)||"clearAppBadge"in((window==null?void 0:window.navigator)||{})||(yield E())||g())return!1;let i=I(a);if(S(i,R)<0||t!==void 0&&(S(t,R)<0||S(i,t)>0))return!1;yield v(),e&&F({note:"Page loaded",debug:e});let p=yield B({interval:60,maxTime:n,properties:["SchemaDataExtractor","MicrodataExtractor"]});return e&&F({note:"Extra polling done",debug:e,last:!0}),!p});var C=(e={})=>{var i,p;let{skip:t,ua:n=""}=e,r=n||f();if(!r)return m(u({},d),{ua:r});let a=s=>k({skip:t,appKey:s,ua:r});if(r.match(D)!==null){let s=T(r);return a(s)?m(u({},d),{ua:r,skipped:!0}):{isInApp:!0,appKey:s,appName:s?w[s].name:void 0,ua:r,skipped:!1}}let o=K();return o?a(o)?m(u({},d),{ua:r,skipped:!0}):{isInApp:!0,appKey:o,appName:(p=(i=x)==null?void 0:i[o])==null?void 0:p.name,ua:r,skipped:!1}:m(u({},d),{ua:r})},J=L,Se=C;typeof window!="undefined"&&(window.InAppSpy=C,window.SFSVCExperimental=J);})(); //# sourceMappingURL=index.global.js.map