@apps-in-toss/user-scripts 1.9.4 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/package.json +3 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
declare const afterDocumentLoad = "\"use strict\";(()=>{var e=document.createElement(\"style\");e.textContent=`\n*:not(input):not(textarea) {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n`;document.head.appendChild(e);})();\n";
|
|
2
|
-
declare const beforeDocumentLoad = "\"use strict\";(()=>{var b=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let n=this._window.__GRANITE_NATIVE_EMITTER;if(!n)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return n.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},u=new b,y=()=>Math.random().toString(36).substring(2,15),R=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[n,r]of Object.entries(e))t[n]=r;return t}return e};function h(e){return(...t)=>{let n=y(),r=[],a=()=>{for(let o of r)o()};return new Promise((o,i)=>{r.push(u.on(`${e}/resolve/${n}`,s=>{a(),o(s)})),r.push(u.on(`${e}/reject/${n}`,s=>{a(),i(R(s))})),u.postMessage({type:\"method\",functionName:e,eventId:n,args:t})})}}function g(e){return()=>u.getConstant(e)}var m=class{_log=h(\"debugLog\");log(t,n){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:\"debug\",params:{...n,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType===\"game\",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var l=class{callbacks={};on(t,n){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(n)}emit(t,n){this.callbacks[t]?.forEach(r=>r(n))}};window.__appsInToss={appName:g(\"getAppName\")(),deploymentId:g(\"getDeploymentId\")(),webViewType:g(\"getWebViewType\")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new l,debugLogger:new m};var d=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function f(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!==\"game\"||typeof caches>\"u\")return;let e=\"@apps-in-toss/caches/\",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener(\"load\",async()=>{let n=await caches.keys();for(let r of n)r.startsWith(e)&&r!==t&&await caches.delete(r)}),f(async(n,r,a)=>{let o=new Request(a[0],a[1]);if(!d.test(o.url))return await n.call(r,o);let i=await caches.open(t),s=await i.match(o);if(s){let v=s.headers.get(\"ETag\"),_=s.headers.get(\"Last-Modified\");v&&o.headers.set(\"If-None-Match\",v),_&&o.headers.set(\"If-Modified-Since\",_);let p=await n.call(r,o);return p.status===304?(s.__revalidateResponse=p,s):(i.put(o,p.clone()),p)}let w=await n.call(r,o);return i.put(o,w.clone()),w})})();f(async(e,t,n)=>{let r=new Request(n[0],n[1]),a=Date.now();window.__appsInToss.eventEmitter.emit(\"fetchRequest\",{request:r});let o=await e.call(t,r);return window.__appsInToss.eventEmitter.emit(\"fetchResponse\",{request:r,response:o,requestAt:a}),o});var E=window.__appsInToss.debugLogger;E.log(\"load_start\",{});window.addEventListener(\"load\",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.(\"navigation\")[0]??null,n=typeof e<\"u\"&&t!==null,r=n?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};E.log(\"load_complete\",{isNavigationDebugSupported:n,...r})});function c(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>\"u\"||typeof performance.memory.usedJSHeapSize>\"u\"||typeof performance.memory.totalJSHeapSize>\"u\"||typeof performance.memory.jsHeapSizeLimit>\"u\")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:c(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:c(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:c(performance.memory.jsHeapSizeLimit/1024,2)})}e(\"memory_usage_first_0s\"),setTimeout(()=>e(\"memory_usage_first_1s\"),1e3),setTimeout(()=>e(\"memory_usage_first_10s\"),1e4),setTimeout(()=>e(\"memory_usage_first_30s\"),3e4),setTimeout(()=>e(\"memory_usage_first_60s\"),6e4),setInterval(()=>e(\"memory_usage_every_180s\"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>\"u\"||typeof PerformanceObserver>\"u\")return;new PerformanceObserver(a=>{a.getEntries().forEach(i=>{i.name===\"first-paint\"?e.log(\"first_paint\",{fpStartAtMs:t+i.startTime}):i.name===\"first-contentful-paint\"&&e.log(\"first_contentful_paint\",{fcpStartAtMs:t+i.startTime})})}).observe({type:\"paint\"}),new PerformanceObserver(a=>{a.getEntries().forEach(i=>{e.log(\"largest_contentful_paint\",{lcpStartAtMs:t+i.startTime,lcpRenderSize:i.size})})}).observe({type:\"largest-contentful-paint\"})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;function e(t){let n=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(n==null)return;let r=n.getExtension(\"WEBGL_debug_renderer_info\"),a=n.getParameter(n.MAX_VIEWPORT_DIMS),o={webGLRenderer:n.getParameter(n.RENDERER),webGLVendor:n.getParameter(n.VENDOR),webGLVersion:n.getParameter(n.VERSION),webGLShadingLanguageVersion:n.getParameter(n.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:a[0],webGLMaxViewportHeight:a[1],webGLMaxRenderbufferSize:n.getParameter(n.MAX_RENDERBUFFER_SIZE)},i=r?{webGLUnmaskedVendor:n.getParameter(r.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:n.getParameter(r.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log(\"unity_webgl_info\",{...o,...i})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((r,a)=>{for(let o of r)o.type===\"childList\"&&o.addedNodes.forEach(i=>{if(i instanceof HTMLCanvasElement&&i.getAttribute(\"id\")===\"unity-canvas\"&&(e(i),a.disconnect()),i instanceof HTMLElement){let s=i.querySelector(\"#unity-canvas\");s!=null&&(e(s),a.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:n})=>{d.test(n.url)&&e.log(\"game_resource_download_start\",{gameResourceRequestURL:n.url})}),t.on(\"fetchResponse\",async({request:n,requestAt:r,response:a})=>{if(!d.test(n.url))return;let o=c((await a.clone().blob()).size/1024,2),i=Date.now();e.log(\"game_resource_download_end\",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:r,gameResourceResponseAtMs:i,gameResourceResponseSize:o,gameResourceResponseStatus:a.__revalidateResponse?.status??a.status,gameResourceDownloadDurationMs:i-r})})})();})();\n";
|
|
2
|
+
declare const beforeDocumentLoad = "\"use strict\";(()=>{var Y=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},g=new Y,M=()=>Math.random().toString(36).substring(2,15),D=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=M(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(g.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(g.on(`${e}/reject/${r}`,c=>{o(),a(D(c))})),g.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function I(e){return t=>{let r=M(),n=[g.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),g.on(`${e}/onError/${r}`,o=>{t.onError(D(o))})];return g.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{g.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function m(e){return()=>g.getConstant(e)}var Q=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(c){return r!==c})}}}};typeof window<\"u\"&&(window.__GRANITE_NATIVE_EMITTER=Q());var Re=d(\"closeView\"),Me=d(\"generateHapticFeedback\"),De=d(\"share\"),Ne=d(\"setSecureScreen\"),Fe=d(\"setScreenAwakeMode\"),Oe=d(\"getNetworkStatus\"),Be=d(\"setIosSwipeGestureEnabled\"),Ge=d(\"openURL\"),Ve=d(\"openPermissionDialog\"),ke=d(\"getPermission\"),He=d(\"requestPermission\"),ze=m(\"setClipboardText\"),Ue=m(\"getClipboardText\"),We=m(\"fetchContacts\"),qe=m(\"fetchAlbumPhotos\"),$e=m(\"getCurrentLocation\"),je=m(\"openCamera\"),Ke=d(\"appLogin\"),Je=d(\"eventLog\"),Xe=d(\"getTossShareLink\"),Ze=d(\"setDeviceOrientation\"),Ye=d(\"checkoutPayment\"),Qe=d(\"saveBase64Data\"),et=d(\"appsInTossSignTossCert\"),tt=d(\"getGameCenterGameProfile\"),rt=d(\"openGameCenterLeaderboard\"),nt=d(\"submitGameCenterLeaderBoardScore\"),ot=d(\"getUserKeyForGame\"),st=d(\"getIsTossLoginIntegratedService\"),at=d(\"grantPromotionRewardForGame\"),it=d(\"getServerTime\"),ct=m(\"getLocale\"),dt=m(\"getSchemeUri\"),ut=m(\"getPlatformOS\"),pt=m(\"getOperationalEnvironment\"),mt=m(\"getTossAppVersion\"),lt=m(\"getDeviceId\"),gt=I(\"contactsViral\"),vt=I(\"startUpdateLocation\"),ft=I(\"onVisibilityChangedByTransparentServiceWeb\");var E=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},N=class extends E{constructor(){super({methodName:\"fetchAlbumPhotos\",message:\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},F=class extends E{constructor(){super({methodName:\"fetchContacts\",message:\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},O=class extends E{constructor(){super({methodName:\"openCamera\",message:\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var x=class extends E{constructor(){super({methodName:\"getCurrentLocation\",message:\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},B=x,G=class extends E{constructor(){super({methodName:\"getClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},V=class extends E{constructor(){super({methodName:\"setClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var ee=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},v=new ee,K=()=>Math.random().toString(36).substring(2,15),J=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function i(e){return(...t)=>{let r=K(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(v.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(v.on(`${e}/reject/${r}`,c=>{o(),a(J(c))})),v.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function w(e){return t=>{let r=K(),n=[v.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),v.on(`${e}/onError/${r}`,o=>{t.onError(J(o))})];return v.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{v.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>v.getConstant(e)}var Tt={getItem:i(\"getStorageItem\"),setItem:i(\"setStorageItem\"),removeItem:i(\"removeStorageItem\"),clearItems:i(\"clearItems\")},te=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,k=e=>[\"*\",\"x\",\"X\"].includes(e),H=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},re=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ne=(e,t)=>{if(k(e)||k(t))return 0;let[r,n]=re(H(e),H(t));return r>n?1:r<n?-1:0},z=e=>{if(typeof e!=\"string\")throw new TypeError(\"Invalid argument: expected a string\");let t=e.match(te);if(!t)throw new Error(`Invalid semver: '${e}'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},U=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??\"0\",s=t[n]??\"0\",a=ne(o,s);if(a!==0)return a}return 0},oe=(e,t)=>{let r=z(e),n=z(t),o=r.pop(),s=n.pop(),a=U(r,n);return a!==0?a:o&&s?U(o.split(\".\"),s.split(\".\")):o?-1:s?1:0};function W(e){if(u(\"getOperationalEnvironment\")()===\"sandbox\")return!0;let r=u(\"getTossAppVersion\")(),o=u(\"getPlatformOS\")()===\"ios\"?e.ios:e.android;return o===void 0?!1:o===\"always\"?!0:o===\"never\"?!1:oe(r,o)>=0}function se(e){return i(\"processProductGrant\")(e)}var yt={createOneTimePurchaseOrder:e=>{let t=W({android:\"5.219.0\",ios:\"5.219.0\"}),r=()=>{};if(!t)return r;let n=W({android:\"5.231.1\",ios:\"5.230.0\"}),{options:o,onEvent:s,onError:a}=e,c=o.sku??o.productId;return n?w(\"requestOneTimePurchase\")({options:{sku:c},onEvent:async p=>{if(p.type===\"purchased\"){let l=await o.processProductGrant({orderId:p.data.orderId});await se({orderId:p.data.orderId,isProductGranted:l}).catch(a)}else s(p)},onError:p=>{a(p)}}):(i(\"iapCreateOneTimePurchaseOrder\")({productId:c}).then(l=>{Promise.resolve(o.processProductGrant({orderId:l.orderId})).then(()=>{s({type:\"success\",data:l})}).catch(h=>{a(h)})}).catch(l=>{a(l)}),r)},getProductItemList:i(\"iapGetProductItemList\"),getPendingOrders:i(\"getPendingOrders\"),getCompletedOrRefundedOrders:i(\"getCompletedOrRefundedOrders\"),completeProductGrant:i(\"completeProductGrant\")},Lt=u(\"getSafeAreaInsets\");var Pt=u(\"getSafeAreaInsets\");var xt={loadAppsInTossAdMob:Object.assign(w(\"loadAppsInTossAdMob\"),{isSupported:u(\"loadAppsInTossAdMob_isSupported\")}),showAppsInTossAdMob:Object.assign(w(\"showAppsInTossAdMob\"),{isSupported:u(\"showAppsInTossAdMob_isSupported\")}),isAppsInTossAdMobLoaded:Object.assign(i(\"isAppsInTossAdMobLoaded\"),{isSupported:u(\"isAppsInTossAdMobLoaded_isSupported\")})};var Rt={getDeploymentId:u(\"getDeploymentId\")},Mt=u(\"deploymentId\"),Dt=u(\"brandDisplayName\"),Nt=u(\"brandIcon\"),Ft=u(\"brandPrimaryColor\");var Ot={addAccessoryButton:i(\"addAccessoryButton\"),removeAccessoryButton:i(\"removeAccessoryButton\")},ae=i(\"requestPermission\"),ie=i(\"getPermission\"),ce=i(\"openPermissionDialog\");function S({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ae(e)===\"denied\")throw new r;return t(...o)};return n.getPermission=()=>ie(e),n.openPermissionDialog=()=>ce(e),n}var Gt=S({handler:e=>i(\"fetchAlbumPhotos\")(e),permission:{name:\"photos\",access:\"read\"},error:N}),kt=S({handler:e=>i(\"fetchContacts\")(e),permission:{name:\"contacts\",access:\"read\"},error:F}),zt=S({handler:e=>i(\"getCurrentLocation\")(e),permission:{name:\"geolocation\",access:\"access\"},error:x}),Wt=S({handler:e=>i(\"openCamera\")(e),permission:{name:\"camera\",access:\"access\"},error:O}),$t=S({handler:e=>i(\"setClipboardText\")(e),permission:{name:\"clipboard\",access:\"write\"},error:V}),Kt=S({handler:()=>i(\"getClipboardText\")(),permission:{name:\"clipboard\",access:\"read\"},error:G}),de=i(\"getPermission\"),ue=i(\"openPermissionDialog\"),X=e=>w(\"updateLocationEvent\")({...e,onError:t=>{let r=new B;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});X.getPermission=()=>de({name:\"geolocation\",access:\"access\"});X.openPermissionDialog=()=>ue({name:\"geolocation\",access:\"access\"});var Xt=Object.assign(w(\"loadFullScreenAd\"),{isSupported:u(\"loadFullScreenAd_isSupported\")}),Zt=Object.assign(w(\"showFullScreenAd\"),{isSupported:u(\"showFullScreenAd_isSupported\")}),pe=i(\"openURL\");function me(e){let t=le(e);return pe(t)}function le(e){return[\"http://\",\"https://\"].some(r=>e.startsWith(r))?ge(e):e}function ge(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var q=\"https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js\",$=15e3,T=null;function A(){if(!(typeof window>\"u\"))return window.TossAdsSpaceKit}function ve(){if(typeof window>\"u\"||typeof document>\"u\")return Promise.reject(new Error(\"Ads SDK can only be loaded in a browser environment.\"));let e=A();if(e)return Promise.resolve(e);if(T)return T;let t=new Promise((r,n)=>{let o=document.createElement(\"script\"),s=()=>{o.removeEventListener(\"load\",a),o.removeEventListener(\"error\",c),window.clearTimeout(f),T=null},a=()=>{let p=A();if(p){s(),r(p);return}s(),n(new Error(\"Ads SDK script loaded but window.TossAdsSpaceKit was not exposed.\"))},c=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${q}.`))},f=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${$}ms.`))},$);o.addEventListener(\"load\",a),o.addEventListener(\"error\",c),o.async=!0,o.src=q,document.head.appendChild(o)});return T=t,t}var b=Object.assign(w(\"fetchTossAd\"),{isSupported:u(\"fetchTossAd_isSupported\")}),fe=i(\"tossAdEventLog\"),we=new Set([\"1\",\"2\"]);function he(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error(\"fetchTossAd is not supported in this environment.\"));return}return b({options:e,onEvent:t,onError:r})})}function j(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>we.has(String(r.styleId))):[];return{requestId:e.requestId??\"\",status:e.status??\"OK\",ads:t,ext:e.ext}}function Ee(e){return be(e)?e.resultType!==\"SUCCESS\"?e:e.success?{...e,success:j(e.success)}:{resultType:\"FAIL\",error:{reason:\"fetchTossAd returned SUCCESS without payload\"}}:Se(e)?{resultType:\"SUCCESS\",success:j(e)}:{resultType:\"FAIL\",error:{reason:\"Invalid response from fetchTossAd\"}}}function be(e){return!!(e&&typeof e==\"object\"&&\"resultType\"in e)}function Se(e){return!!(e&&typeof e==\"object\"&&\"ads\"in e)}function _e(){return async(e,t)=>{try{let r=await he({adGroupId:t.spaceUnitId,sdkId:\"108\",availableStyleIds:[\"1\",\"2\"]});return Ee(r)}catch(r){return{resultType:\"FAIL\",error:{reason:r instanceof Error?r.message:\"Unknown fetchTossAd error\"}}}}}var R=null;function Ae(e){let{callbacks:t}=e;if(window.TossAdsSpaceKit!=null&&window.TossAdsSpaceKit.isInitialized()){t?.onInitializationFailed?.(new Error(\"[toss-ad] Already initialized.\"));return}R!=null&&t?.onInitializationFailed?.(new Error(\"[toss-ad] initialization already in progress.\"));let r=()=>t?.onInitialized?.(),n=o=>{let s=o instanceof Error?o:new Error(String(o));t?.onInitializationFailed?.(s)};R=ve().then(o=>{let a={environment:\"live\",customAdFetcher:_e(),opener:me};o.init(a),r()}).catch(o=>{R=null,n(o)})}function Ce(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=A();if(!a)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!a.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let c=typeof t==\"string\"?document.querySelector(t):t;if(!c)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:ye(e,r.callbacks)};a.banner.createSlot(c,f)}catch(s){o(s)}}function Ie(e){let t=A();t?.banner&&t.banner.destroy(e)}function Te(){let e=A();e?.banner&&e.banner.destroyAll()}function ye(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{fe({log_name:\"display_ads_all::impression__1px_banner\",log_type:\"event\",params:{event_type:\"impression\",schema_id:1812034,request_id:n?.adMetadata?.requestId??\"\"}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:\"UNKNOWN\"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var Yt={initialize:Object.assign(Ae,{isSupported:b.isSupported}),attach:Object.assign(Ce,{isSupported:b.isSupported}),destroy:Object.assign(Ie,{isSupported:b.isSupported}),destroyAll:Object.assign(Te,{isSupported:b.isSupported})},Qt=Object.assign(i(\"getServerTime\"),{isSupported:u(\"getServerTime_isSupported\")});var y=class{_log=i(\"debugLog\");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:\"debug\",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType===\"game\",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var L=class{callbacks={};on(t,r){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u(\"getAppName\")(),deploymentId:u(\"getDeploymentId\")(),webViewType:u(\"getWebViewType\")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new L,debugLogger:new y};var C=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function P(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!==\"game\"||typeof caches>\"u\")return;let e=\"@apps-in-toss/caches/\",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener(\"load\",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),P(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!C.test(s.url))return await r.call(n,s);let a=await caches.open(t),c=await a.match(s);if(c){let p=c.headers.get(\"ETag\"),l=c.headers.get(\"Last-Modified\");p&&s.headers.set(\"If-None-Match\",p),l&&s.headers.set(\"If-Modified-Since\",l);let h=await r.call(n,s);return h.status===304?(c.__revalidateResponse=h,c):(a.put(s,h.clone()),h)}let f=await r.call(n,s);return a.put(s,f.clone()),f})})();P(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit(\"fetchRequest\",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit(\"fetchResponse\",{request:n,response:s,requestAt:o}),s});var Z=window.__appsInToss.debugLogger;Z.log(\"load_start\",{});window.addEventListener(\"load\",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.(\"navigation\")[0]??null,r=typeof e<\"u\"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};Z.log(\"load_complete\",{isNavigationDebugSupported:r,...n})});function _(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>\"u\"||typeof performance.memory.usedJSHeapSize>\"u\"||typeof performance.memory.totalJSHeapSize>\"u\"||typeof performance.memory.jsHeapSizeLimit>\"u\")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:_(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:_(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:_(performance.memory.jsHeapSizeLimit/1024,2)})}e(\"memory_usage_first_0s\"),setTimeout(()=>e(\"memory_usage_first_1s\"),1e3),setTimeout(()=>e(\"memory_usage_first_10s\"),1e4),setTimeout(()=>e(\"memory_usage_first_30s\"),3e4),setTimeout(()=>e(\"memory_usage_first_60s\"),6e4),setInterval(()=>e(\"memory_usage_every_180s\"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>\"u\"||typeof PerformanceObserver>\"u\")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name===\"first-paint\"?e.log(\"first_paint\",{fpStartAtMs:t+a.startTime}):a.name===\"first-contentful-paint\"&&e.log(\"first_contentful_paint\",{fcpStartAtMs:t+a.startTime})})}).observe({type:\"paint\"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log(\"largest_contentful_paint\",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:\"largest-contentful-paint\"})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;function e(t){let r=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(r==null)return;let n=r.getExtension(\"WEBGL_debug_renderer_info\"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log(\"unity_webgl_info\",{...s,...a})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type===\"childList\"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute(\"id\")===\"unity-canvas\"&&(e(a),o.disconnect()),a instanceof HTMLElement){let c=a.querySelector(\"#unity-canvas\");c!=null&&(e(c),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:r})=>{C.test(r.url)&&e.log(\"game_resource_download_start\",{gameResourceRequestURL:r.url})}),t.on(\"fetchResponse\",async({request:r,requestAt:n,response:o})=>{if(!C.test(r.url))return;let s=_((await o.clone().blob()).size/1024,2),a=Date.now();e.log(\"game_resource_download_end\",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n";
|
|
3
3
|
|
|
4
4
|
export { afterDocumentLoad, beforeDocumentLoad };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
declare const afterDocumentLoad = "\"use strict\";(()=>{var e=document.createElement(\"style\");e.textContent=`\n*:not(input):not(textarea) {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n`;document.head.appendChild(e);})();\n";
|
|
2
|
-
declare const beforeDocumentLoad = "\"use strict\";(()=>{var b=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let n=this._window.__GRANITE_NATIVE_EMITTER;if(!n)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return n.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},u=new b,y=()=>Math.random().toString(36).substring(2,15),R=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[n,r]of Object.entries(e))t[n]=r;return t}return e};function h(e){return(...t)=>{let n=y(),r=[],a=()=>{for(let o of r)o()};return new Promise((o,i)=>{r.push(u.on(`${e}/resolve/${n}`,s=>{a(),o(s)})),r.push(u.on(`${e}/reject/${n}`,s=>{a(),i(R(s))})),u.postMessage({type:\"method\",functionName:e,eventId:n,args:t})})}}function g(e){return()=>u.getConstant(e)}var m=class{_log=h(\"debugLog\");log(t,n){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:\"debug\",params:{...n,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType===\"game\",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var l=class{callbacks={};on(t,n){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(n)}emit(t,n){this.callbacks[t]?.forEach(r=>r(n))}};window.__appsInToss={appName:g(\"getAppName\")(),deploymentId:g(\"getDeploymentId\")(),webViewType:g(\"getWebViewType\")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new l,debugLogger:new m};var d=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function f(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!==\"game\"||typeof caches>\"u\")return;let e=\"@apps-in-toss/caches/\",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener(\"load\",async()=>{let n=await caches.keys();for(let r of n)r.startsWith(e)&&r!==t&&await caches.delete(r)}),f(async(n,r,a)=>{let o=new Request(a[0],a[1]);if(!d.test(o.url))return await n.call(r,o);let i=await caches.open(t),s=await i.match(o);if(s){let v=s.headers.get(\"ETag\"),_=s.headers.get(\"Last-Modified\");v&&o.headers.set(\"If-None-Match\",v),_&&o.headers.set(\"If-Modified-Since\",_);let p=await n.call(r,o);return p.status===304?(s.__revalidateResponse=p,s):(i.put(o,p.clone()),p)}let w=await n.call(r,o);return i.put(o,w.clone()),w})})();f(async(e,t,n)=>{let r=new Request(n[0],n[1]),a=Date.now();window.__appsInToss.eventEmitter.emit(\"fetchRequest\",{request:r});let o=await e.call(t,r);return window.__appsInToss.eventEmitter.emit(\"fetchResponse\",{request:r,response:o,requestAt:a}),o});var E=window.__appsInToss.debugLogger;E.log(\"load_start\",{});window.addEventListener(\"load\",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.(\"navigation\")[0]??null,n=typeof e<\"u\"&&t!==null,r=n?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};E.log(\"load_complete\",{isNavigationDebugSupported:n,...r})});function c(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>\"u\"||typeof performance.memory.usedJSHeapSize>\"u\"||typeof performance.memory.totalJSHeapSize>\"u\"||typeof performance.memory.jsHeapSizeLimit>\"u\")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:c(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:c(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:c(performance.memory.jsHeapSizeLimit/1024,2)})}e(\"memory_usage_first_0s\"),setTimeout(()=>e(\"memory_usage_first_1s\"),1e3),setTimeout(()=>e(\"memory_usage_first_10s\"),1e4),setTimeout(()=>e(\"memory_usage_first_30s\"),3e4),setTimeout(()=>e(\"memory_usage_first_60s\"),6e4),setInterval(()=>e(\"memory_usage_every_180s\"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>\"u\"||typeof PerformanceObserver>\"u\")return;new PerformanceObserver(a=>{a.getEntries().forEach(i=>{i.name===\"first-paint\"?e.log(\"first_paint\",{fpStartAtMs:t+i.startTime}):i.name===\"first-contentful-paint\"&&e.log(\"first_contentful_paint\",{fcpStartAtMs:t+i.startTime})})}).observe({type:\"paint\"}),new PerformanceObserver(a=>{a.getEntries().forEach(i=>{e.log(\"largest_contentful_paint\",{lcpStartAtMs:t+i.startTime,lcpRenderSize:i.size})})}).observe({type:\"largest-contentful-paint\"})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;function e(t){let n=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(n==null)return;let r=n.getExtension(\"WEBGL_debug_renderer_info\"),a=n.getParameter(n.MAX_VIEWPORT_DIMS),o={webGLRenderer:n.getParameter(n.RENDERER),webGLVendor:n.getParameter(n.VENDOR),webGLVersion:n.getParameter(n.VERSION),webGLShadingLanguageVersion:n.getParameter(n.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:a[0],webGLMaxViewportHeight:a[1],webGLMaxRenderbufferSize:n.getParameter(n.MAX_RENDERBUFFER_SIZE)},i=r?{webGLUnmaskedVendor:n.getParameter(r.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:n.getParameter(r.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log(\"unity_webgl_info\",{...o,...i})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((r,a)=>{for(let o of r)o.type===\"childList\"&&o.addedNodes.forEach(i=>{if(i instanceof HTMLCanvasElement&&i.getAttribute(\"id\")===\"unity-canvas\"&&(e(i),a.disconnect()),i instanceof HTMLElement){let s=i.querySelector(\"#unity-canvas\");s!=null&&(e(s),a.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:n})=>{d.test(n.url)&&e.log(\"game_resource_download_start\",{gameResourceRequestURL:n.url})}),t.on(\"fetchResponse\",async({request:n,requestAt:r,response:a})=>{if(!d.test(n.url))return;let o=c((await a.clone().blob()).size/1024,2),i=Date.now();e.log(\"game_resource_download_end\",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:r,gameResourceResponseAtMs:i,gameResourceResponseSize:o,gameResourceResponseStatus:a.__revalidateResponse?.status??a.status,gameResourceDownloadDurationMs:i-r})})})();})();\n";
|
|
2
|
+
declare const beforeDocumentLoad = "\"use strict\";(()=>{var Y=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},g=new Y,M=()=>Math.random().toString(36).substring(2,15),D=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=M(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(g.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(g.on(`${e}/reject/${r}`,c=>{o(),a(D(c))})),g.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function I(e){return t=>{let r=M(),n=[g.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),g.on(`${e}/onError/${r}`,o=>{t.onError(D(o))})];return g.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{g.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function m(e){return()=>g.getConstant(e)}var Q=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(c){return r!==c})}}}};typeof window<\"u\"&&(window.__GRANITE_NATIVE_EMITTER=Q());var Re=d(\"closeView\"),Me=d(\"generateHapticFeedback\"),De=d(\"share\"),Ne=d(\"setSecureScreen\"),Fe=d(\"setScreenAwakeMode\"),Oe=d(\"getNetworkStatus\"),Be=d(\"setIosSwipeGestureEnabled\"),Ge=d(\"openURL\"),Ve=d(\"openPermissionDialog\"),ke=d(\"getPermission\"),He=d(\"requestPermission\"),ze=m(\"setClipboardText\"),Ue=m(\"getClipboardText\"),We=m(\"fetchContacts\"),qe=m(\"fetchAlbumPhotos\"),$e=m(\"getCurrentLocation\"),je=m(\"openCamera\"),Ke=d(\"appLogin\"),Je=d(\"eventLog\"),Xe=d(\"getTossShareLink\"),Ze=d(\"setDeviceOrientation\"),Ye=d(\"checkoutPayment\"),Qe=d(\"saveBase64Data\"),et=d(\"appsInTossSignTossCert\"),tt=d(\"getGameCenterGameProfile\"),rt=d(\"openGameCenterLeaderboard\"),nt=d(\"submitGameCenterLeaderBoardScore\"),ot=d(\"getUserKeyForGame\"),st=d(\"getIsTossLoginIntegratedService\"),at=d(\"grantPromotionRewardForGame\"),it=d(\"getServerTime\"),ct=m(\"getLocale\"),dt=m(\"getSchemeUri\"),ut=m(\"getPlatformOS\"),pt=m(\"getOperationalEnvironment\"),mt=m(\"getTossAppVersion\"),lt=m(\"getDeviceId\"),gt=I(\"contactsViral\"),vt=I(\"startUpdateLocation\"),ft=I(\"onVisibilityChangedByTransparentServiceWeb\");var E=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},N=class extends E{constructor(){super({methodName:\"fetchAlbumPhotos\",message:\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},F=class extends E{constructor(){super({methodName:\"fetchContacts\",message:\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},O=class extends E{constructor(){super({methodName:\"openCamera\",message:\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var x=class extends E{constructor(){super({methodName:\"getCurrentLocation\",message:\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},B=x,G=class extends E{constructor(){super({methodName:\"getClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},V=class extends E{constructor(){super({methodName:\"setClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var ee=class{get _window(){return typeof window<\"u\"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error(\"ReactNativeWebView is not available in browser environment\");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error(\"__GRANITE_NATIVE_EMITTER is not available\");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},v=new ee,K=()=>Math.random().toString(36).substring(2,15),J=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function i(e){return(...t)=>{let r=K(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(v.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(v.on(`${e}/reject/${r}`,c=>{o(),a(J(c))})),v.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function w(e){return t=>{let r=K(),n=[v.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),v.on(`${e}/onError/${r}`,o=>{t.onError(J(o))})];return v.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{v.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>v.getConstant(e)}var Tt={getItem:i(\"getStorageItem\"),setItem:i(\"setStorageItem\"),removeItem:i(\"removeStorageItem\"),clearItems:i(\"clearItems\")},te=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,k=e=>[\"*\",\"x\",\"X\"].includes(e),H=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},re=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ne=(e,t)=>{if(k(e)||k(t))return 0;let[r,n]=re(H(e),H(t));return r>n?1:r<n?-1:0},z=e=>{if(typeof e!=\"string\")throw new TypeError(\"Invalid argument: expected a string\");let t=e.match(te);if(!t)throw new Error(`Invalid semver: '${e}'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},U=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??\"0\",s=t[n]??\"0\",a=ne(o,s);if(a!==0)return a}return 0},oe=(e,t)=>{let r=z(e),n=z(t),o=r.pop(),s=n.pop(),a=U(r,n);return a!==0?a:o&&s?U(o.split(\".\"),s.split(\".\")):o?-1:s?1:0};function W(e){if(u(\"getOperationalEnvironment\")()===\"sandbox\")return!0;let r=u(\"getTossAppVersion\")(),o=u(\"getPlatformOS\")()===\"ios\"?e.ios:e.android;return o===void 0?!1:o===\"always\"?!0:o===\"never\"?!1:oe(r,o)>=0}function se(e){return i(\"processProductGrant\")(e)}var yt={createOneTimePurchaseOrder:e=>{let t=W({android:\"5.219.0\",ios:\"5.219.0\"}),r=()=>{};if(!t)return r;let n=W({android:\"5.231.1\",ios:\"5.230.0\"}),{options:o,onEvent:s,onError:a}=e,c=o.sku??o.productId;return n?w(\"requestOneTimePurchase\")({options:{sku:c},onEvent:async p=>{if(p.type===\"purchased\"){let l=await o.processProductGrant({orderId:p.data.orderId});await se({orderId:p.data.orderId,isProductGranted:l}).catch(a)}else s(p)},onError:p=>{a(p)}}):(i(\"iapCreateOneTimePurchaseOrder\")({productId:c}).then(l=>{Promise.resolve(o.processProductGrant({orderId:l.orderId})).then(()=>{s({type:\"success\",data:l})}).catch(h=>{a(h)})}).catch(l=>{a(l)}),r)},getProductItemList:i(\"iapGetProductItemList\"),getPendingOrders:i(\"getPendingOrders\"),getCompletedOrRefundedOrders:i(\"getCompletedOrRefundedOrders\"),completeProductGrant:i(\"completeProductGrant\")},Lt=u(\"getSafeAreaInsets\");var Pt=u(\"getSafeAreaInsets\");var xt={loadAppsInTossAdMob:Object.assign(w(\"loadAppsInTossAdMob\"),{isSupported:u(\"loadAppsInTossAdMob_isSupported\")}),showAppsInTossAdMob:Object.assign(w(\"showAppsInTossAdMob\"),{isSupported:u(\"showAppsInTossAdMob_isSupported\")}),isAppsInTossAdMobLoaded:Object.assign(i(\"isAppsInTossAdMobLoaded\"),{isSupported:u(\"isAppsInTossAdMobLoaded_isSupported\")})};var Rt={getDeploymentId:u(\"getDeploymentId\")},Mt=u(\"deploymentId\"),Dt=u(\"brandDisplayName\"),Nt=u(\"brandIcon\"),Ft=u(\"brandPrimaryColor\");var Ot={addAccessoryButton:i(\"addAccessoryButton\"),removeAccessoryButton:i(\"removeAccessoryButton\")},ae=i(\"requestPermission\"),ie=i(\"getPermission\"),ce=i(\"openPermissionDialog\");function S({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ae(e)===\"denied\")throw new r;return t(...o)};return n.getPermission=()=>ie(e),n.openPermissionDialog=()=>ce(e),n}var Gt=S({handler:e=>i(\"fetchAlbumPhotos\")(e),permission:{name:\"photos\",access:\"read\"},error:N}),kt=S({handler:e=>i(\"fetchContacts\")(e),permission:{name:\"contacts\",access:\"read\"},error:F}),zt=S({handler:e=>i(\"getCurrentLocation\")(e),permission:{name:\"geolocation\",access:\"access\"},error:x}),Wt=S({handler:e=>i(\"openCamera\")(e),permission:{name:\"camera\",access:\"access\"},error:O}),$t=S({handler:e=>i(\"setClipboardText\")(e),permission:{name:\"clipboard\",access:\"write\"},error:V}),Kt=S({handler:()=>i(\"getClipboardText\")(),permission:{name:\"clipboard\",access:\"read\"},error:G}),de=i(\"getPermission\"),ue=i(\"openPermissionDialog\"),X=e=>w(\"updateLocationEvent\")({...e,onError:t=>{let r=new B;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});X.getPermission=()=>de({name:\"geolocation\",access:\"access\"});X.openPermissionDialog=()=>ue({name:\"geolocation\",access:\"access\"});var Xt=Object.assign(w(\"loadFullScreenAd\"),{isSupported:u(\"loadFullScreenAd_isSupported\")}),Zt=Object.assign(w(\"showFullScreenAd\"),{isSupported:u(\"showFullScreenAd_isSupported\")}),pe=i(\"openURL\");function me(e){let t=le(e);return pe(t)}function le(e){return[\"http://\",\"https://\"].some(r=>e.startsWith(r))?ge(e):e}function ge(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var q=\"https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js\",$=15e3,T=null;function A(){if(!(typeof window>\"u\"))return window.TossAdsSpaceKit}function ve(){if(typeof window>\"u\"||typeof document>\"u\")return Promise.reject(new Error(\"Ads SDK can only be loaded in a browser environment.\"));let e=A();if(e)return Promise.resolve(e);if(T)return T;let t=new Promise((r,n)=>{let o=document.createElement(\"script\"),s=()=>{o.removeEventListener(\"load\",a),o.removeEventListener(\"error\",c),window.clearTimeout(f),T=null},a=()=>{let p=A();if(p){s(),r(p);return}s(),n(new Error(\"Ads SDK script loaded but window.TossAdsSpaceKit was not exposed.\"))},c=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${q}.`))},f=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${$}ms.`))},$);o.addEventListener(\"load\",a),o.addEventListener(\"error\",c),o.async=!0,o.src=q,document.head.appendChild(o)});return T=t,t}var b=Object.assign(w(\"fetchTossAd\"),{isSupported:u(\"fetchTossAd_isSupported\")}),fe=i(\"tossAdEventLog\"),we=new Set([\"1\",\"2\"]);function he(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error(\"fetchTossAd is not supported in this environment.\"));return}return b({options:e,onEvent:t,onError:r})})}function j(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>we.has(String(r.styleId))):[];return{requestId:e.requestId??\"\",status:e.status??\"OK\",ads:t,ext:e.ext}}function Ee(e){return be(e)?e.resultType!==\"SUCCESS\"?e:e.success?{...e,success:j(e.success)}:{resultType:\"FAIL\",error:{reason:\"fetchTossAd returned SUCCESS without payload\"}}:Se(e)?{resultType:\"SUCCESS\",success:j(e)}:{resultType:\"FAIL\",error:{reason:\"Invalid response from fetchTossAd\"}}}function be(e){return!!(e&&typeof e==\"object\"&&\"resultType\"in e)}function Se(e){return!!(e&&typeof e==\"object\"&&\"ads\"in e)}function _e(){return async(e,t)=>{try{let r=await he({adGroupId:t.spaceUnitId,sdkId:\"108\",availableStyleIds:[\"1\",\"2\"]});return Ee(r)}catch(r){return{resultType:\"FAIL\",error:{reason:r instanceof Error?r.message:\"Unknown fetchTossAd error\"}}}}}var R=null;function Ae(e){let{callbacks:t}=e;if(window.TossAdsSpaceKit!=null&&window.TossAdsSpaceKit.isInitialized()){t?.onInitializationFailed?.(new Error(\"[toss-ad] Already initialized.\"));return}R!=null&&t?.onInitializationFailed?.(new Error(\"[toss-ad] initialization already in progress.\"));let r=()=>t?.onInitialized?.(),n=o=>{let s=o instanceof Error?o:new Error(String(o));t?.onInitializationFailed?.(s)};R=ve().then(o=>{let a={environment:\"live\",customAdFetcher:_e(),opener:me};o.init(a),r()}).catch(o=>{R=null,n(o)})}function Ce(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=A();if(!a)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!a.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let c=typeof t==\"string\"?document.querySelector(t):t;if(!c)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:ye(e,r.callbacks)};a.banner.createSlot(c,f)}catch(s){o(s)}}function Ie(e){let t=A();t?.banner&&t.banner.destroy(e)}function Te(){let e=A();e?.banner&&e.banner.destroyAll()}function ye(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{fe({log_name:\"display_ads_all::impression__1px_banner\",log_type:\"event\",params:{event_type:\"impression\",schema_id:1812034,request_id:n?.adMetadata?.requestId??\"\"}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:\"UNKNOWN\"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var Yt={initialize:Object.assign(Ae,{isSupported:b.isSupported}),attach:Object.assign(Ce,{isSupported:b.isSupported}),destroy:Object.assign(Ie,{isSupported:b.isSupported}),destroyAll:Object.assign(Te,{isSupported:b.isSupported})},Qt=Object.assign(i(\"getServerTime\"),{isSupported:u(\"getServerTime_isSupported\")});var y=class{_log=i(\"debugLog\");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:\"debug\",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType===\"game\",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var L=class{callbacks={};on(t,r){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u(\"getAppName\")(),deploymentId:u(\"getDeploymentId\")(),webViewType:u(\"getWebViewType\")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new L,debugLogger:new y};var C=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function P(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!==\"game\"||typeof caches>\"u\")return;let e=\"@apps-in-toss/caches/\",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener(\"load\",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),P(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!C.test(s.url))return await r.call(n,s);let a=await caches.open(t),c=await a.match(s);if(c){let p=c.headers.get(\"ETag\"),l=c.headers.get(\"Last-Modified\");p&&s.headers.set(\"If-None-Match\",p),l&&s.headers.set(\"If-Modified-Since\",l);let h=await r.call(n,s);return h.status===304?(c.__revalidateResponse=h,c):(a.put(s,h.clone()),h)}let f=await r.call(n,s);return a.put(s,f.clone()),f})})();P(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit(\"fetchRequest\",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit(\"fetchResponse\",{request:n,response:s,requestAt:o}),s});var Z=window.__appsInToss.debugLogger;Z.log(\"load_start\",{});window.addEventListener(\"load\",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.(\"navigation\")[0]??null,r=typeof e<\"u\"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};Z.log(\"load_complete\",{isNavigationDebugSupported:r,...n})});function _(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>\"u\"||typeof performance.memory.usedJSHeapSize>\"u\"||typeof performance.memory.totalJSHeapSize>\"u\"||typeof performance.memory.jsHeapSizeLimit>\"u\")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:_(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:_(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:_(performance.memory.jsHeapSizeLimit/1024,2)})}e(\"memory_usage_first_0s\"),setTimeout(()=>e(\"memory_usage_first_1s\"),1e3),setTimeout(()=>e(\"memory_usage_first_10s\"),1e4),setTimeout(()=>e(\"memory_usage_first_30s\"),3e4),setTimeout(()=>e(\"memory_usage_first_60s\"),6e4),setInterval(()=>e(\"memory_usage_every_180s\"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>\"u\"||typeof PerformanceObserver>\"u\")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name===\"first-paint\"?e.log(\"first_paint\",{fpStartAtMs:t+a.startTime}):a.name===\"first-contentful-paint\"&&e.log(\"first_contentful_paint\",{fcpStartAtMs:t+a.startTime})})}).observe({type:\"paint\"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log(\"largest_contentful_paint\",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:\"largest-contentful-paint\"})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;function e(t){let r=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(r==null)return;let n=r.getExtension(\"WEBGL_debug_renderer_info\"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log(\"unity_webgl_info\",{...s,...a})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type===\"childList\"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute(\"id\")===\"unity-canvas\"&&(e(a),o.disconnect()),a instanceof HTMLElement){let c=a.querySelector(\"#unity-canvas\");c!=null&&(e(c),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:r})=>{C.test(r.url)&&e.log(\"game_resource_download_start\",{gameResourceRequestURL:r.url})}),t.on(\"fetchResponse\",async({request:r,requestAt:n,response:o})=>{if(!C.test(r.url))return;let s=_((await o.clone().blob()).size/1024,2),a=Date.now();e.log(\"game_resource_download_end\",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n";
|
|
3
3
|
|
|
4
4
|
export { afterDocumentLoad, beforeDocumentLoad };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})},c=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!d.call(t,r)&&r!==n&&o(t,r,{get:()=>e[r],enumerable:!(s=a(e,r))||s.enumerable});return t};var l=t=>c(o({},"__esModule",{value:!0}),t);var g={};u(g,{afterDocumentLoad:()=>p,beforeDocumentLoad:()=>m});module.exports=l(g);var p=`"use strict";(()=>{var e=document.createElement("style");e.textContent=\`
|
|
2
2
|
*:not(input):not(textarea) {
|
|
3
3
|
-webkit-user-select: none;
|
|
4
4
|
-moz-user-select: none;
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
-webkit-touch-callout: none;
|
|
8
8
|
}
|
|
9
9
|
\`;document.head.appendChild(e);})();
|
|
10
|
-
`,g='"use strict";(()=>{var b=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let n=this._window.__GRANITE_NATIVE_EMITTER;if(!n)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return n.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},u=new b,y=()=>Math.random().toString(36).substring(2,15),R=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[n,r]of Object.entries(e))t[n]=r;return t}return e};function h(e){return(...t)=>{let n=y(),r=[],a=()=>{for(let o of r)o()};return new Promise((o,i)=>{r.push(u.on(`${e}/resolve/${n}`,s=>{a(),o(s)})),r.push(u.on(`${e}/reject/${n}`,s=>{a(),i(R(s))})),u.postMessage({type:"method",functionName:e,eventId:n,args:t})})}}function g(e){return()=>u.getConstant(e)}var m=class{_log=h("debugLog");log(t,n){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...n,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var l=class{callbacks={};on(t,n){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(n)}emit(t,n){this.callbacks[t]?.forEach(r=>r(n))}};window.__appsInToss={appName:g("getAppName")(),deploymentId:g("getDeploymentId")(),webViewType:g("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new l,debugLogger:new m};var d=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function f(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let n=await caches.keys();for(let r of n)r.startsWith(e)&&r!==t&&await caches.delete(r)}),f(async(n,r,a)=>{let o=new Request(a[0],a[1]);if(!d.test(o.url))return await n.call(r,o);let i=await caches.open(t),s=await i.match(o);if(s){let v=s.headers.get("ETag"),_=s.headers.get("Last-Modified");v&&o.headers.set("If-None-Match",v),_&&o.headers.set("If-Modified-Since",_);let p=await n.call(r,o);return p.status===304?(s.__revalidateResponse=p,s):(i.put(o,p.clone()),p)}let w=await n.call(r,o);return i.put(o,w.clone()),w})})();f(async(e,t,n)=>{let r=new Request(n[0],n[1]),a=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:r});let o=await e.call(t,r);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:r,response:o,requestAt:a}),o});var E=window.__appsInToss.debugLogger;E.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,n=typeof e<"u"&&t!==null,r=n?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};E.log("load_complete",{isNavigationDebugSupported:n,...r})});function c(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:c(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:c(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:c(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(a=>{a.getEntries().forEach(i=>{i.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+i.startTime}):i.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+i.startTime})})}).observe({type:"paint"}),new PerformanceObserver(a=>{a.getEntries().forEach(i=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+i.startTime,lcpRenderSize:i.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;function e(t){let n=t.getContext("webgl2")??t.getContext("webgl");if(n==null)return;let r=n.getExtension("WEBGL_debug_renderer_info"),a=n.getParameter(n.MAX_VIEWPORT_DIMS),o={webGLRenderer:n.getParameter(n.RENDERER),webGLVendor:n.getParameter(n.VENDOR),webGLVersion:n.getParameter(n.VERSION),webGLShadingLanguageVersion:n.getParameter(n.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:a[0],webGLMaxViewportHeight:a[1],webGLMaxRenderbufferSize:n.getParameter(n.MAX_RENDERBUFFER_SIZE)},i=r?{webGLUnmaskedVendor:n.getParameter(r.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:n.getParameter(r.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...o,...i})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((r,a)=>{for(let o of r)o.type==="childList"&&o.addedNodes.forEach(i=>{if(i instanceof HTMLCanvasElement&&i.getAttribute("id")==="unity-canvas"&&(e(i),a.disconnect()),i instanceof HTMLElement){let s=i.querySelector("#unity-canvas");s!=null&&(e(s),a.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:n})=>{d.test(n.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:n.url})}),t.on("fetchResponse",async({request:n,requestAt:r,response:a})=>{if(!d.test(n.url))return;let o=c((await a.clone().blob()).size/1024,2),i=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:r,gameResourceResponseAtMs:i,gameResourceResponseSize:o,gameResourceResponseStatus:a.__revalidateResponse?.status??a.status,gameResourceDownloadDurationMs:i-r})})})();})();\n';0&&(module.exports={afterDocumentLoad,beforeDocumentLoad});
|
|
10
|
+
`,m='"use strict";(()=>{var Y=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},g=new Y,M=()=>Math.random().toString(36).substring(2,15),D=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=M(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(g.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(g.on(`${e}/reject/${r}`,c=>{o(),a(D(c))})),g.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function I(e){return t=>{let r=M(),n=[g.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),g.on(`${e}/onError/${r}`,o=>{t.onError(D(o))})];return g.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{g.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function m(e){return()=>g.getConstant(e)}var Q=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(c){return r!==c})}}}};typeof window<"u"&&(window.__GRANITE_NATIVE_EMITTER=Q());var Re=d("closeView"),Me=d("generateHapticFeedback"),De=d("share"),Ne=d("setSecureScreen"),Fe=d("setScreenAwakeMode"),Oe=d("getNetworkStatus"),Be=d("setIosSwipeGestureEnabled"),Ge=d("openURL"),Ve=d("openPermissionDialog"),ke=d("getPermission"),He=d("requestPermission"),ze=m("setClipboardText"),Ue=m("getClipboardText"),We=m("fetchContacts"),qe=m("fetchAlbumPhotos"),$e=m("getCurrentLocation"),je=m("openCamera"),Ke=d("appLogin"),Je=d("eventLog"),Xe=d("getTossShareLink"),Ze=d("setDeviceOrientation"),Ye=d("checkoutPayment"),Qe=d("saveBase64Data"),et=d("appsInTossSignTossCert"),tt=d("getGameCenterGameProfile"),rt=d("openGameCenterLeaderboard"),nt=d("submitGameCenterLeaderBoardScore"),ot=d("getUserKeyForGame"),st=d("getIsTossLoginIntegratedService"),at=d("grantPromotionRewardForGame"),it=d("getServerTime"),ct=m("getLocale"),dt=m("getSchemeUri"),ut=m("getPlatformOS"),pt=m("getOperationalEnvironment"),mt=m("getTossAppVersion"),lt=m("getDeviceId"),gt=I("contactsViral"),vt=I("startUpdateLocation"),ft=I("onVisibilityChangedByTransparentServiceWeb");var E=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},N=class extends E{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},F=class extends E{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},O=class extends E{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var x=class extends E{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},B=x,G=class extends E{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},V=class extends E{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var ee=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},v=new ee,K=()=>Math.random().toString(36).substring(2,15),J=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function i(e){return(...t)=>{let r=K(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(v.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(v.on(`${e}/reject/${r}`,c=>{o(),a(J(c))})),v.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function w(e){return t=>{let r=K(),n=[v.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),v.on(`${e}/onError/${r}`,o=>{t.onError(J(o))})];return v.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{v.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>v.getConstant(e)}var Tt={getItem:i("getStorageItem"),setItem:i("setStorageItem"),removeItem:i("removeStorageItem"),clearItems:i("clearItems")},te=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,k=e=>["*","x","X"].includes(e),H=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},re=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ne=(e,t)=>{if(k(e)||k(t))return 0;let[r,n]=re(H(e),H(t));return r>n?1:r<n?-1:0},z=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(te);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},U=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??"0",s=t[n]??"0",a=ne(o,s);if(a!==0)return a}return 0},oe=(e,t)=>{let r=z(e),n=z(t),o=r.pop(),s=n.pop(),a=U(r,n);return a!==0?a:o&&s?U(o.split("."),s.split(".")):o?-1:s?1:0};function W(e){if(u("getOperationalEnvironment")()==="sandbox")return!0;let r=u("getTossAppVersion")(),o=u("getPlatformOS")()==="ios"?e.ios:e.android;return o===void 0?!1:o==="always"?!0:o==="never"?!1:oe(r,o)>=0}function se(e){return i("processProductGrant")(e)}var yt={createOneTimePurchaseOrder:e=>{let t=W({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=W({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,c=o.sku??o.productId;return n?w("requestOneTimePurchase")({options:{sku:c},onEvent:async p=>{if(p.type==="purchased"){let l=await o.processProductGrant({orderId:p.data.orderId});await se({orderId:p.data.orderId,isProductGranted:l}).catch(a)}else s(p)},onError:p=>{a(p)}}):(i("iapCreateOneTimePurchaseOrder")({productId:c}).then(l=>{Promise.resolve(o.processProductGrant({orderId:l.orderId})).then(()=>{s({type:"success",data:l})}).catch(h=>{a(h)})}).catch(l=>{a(l)}),r)},getProductItemList:i("iapGetProductItemList"),getPendingOrders:i("getPendingOrders"),getCompletedOrRefundedOrders:i("getCompletedOrRefundedOrders"),completeProductGrant:i("completeProductGrant")},Lt=u("getSafeAreaInsets");var Pt=u("getSafeAreaInsets");var xt={loadAppsInTossAdMob:Object.assign(w("loadAppsInTossAdMob"),{isSupported:u("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(w("showAppsInTossAdMob"),{isSupported:u("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(i("isAppsInTossAdMobLoaded"),{isSupported:u("isAppsInTossAdMobLoaded_isSupported")})};var Rt={getDeploymentId:u("getDeploymentId")},Mt=u("deploymentId"),Dt=u("brandDisplayName"),Nt=u("brandIcon"),Ft=u("brandPrimaryColor");var Ot={addAccessoryButton:i("addAccessoryButton"),removeAccessoryButton:i("removeAccessoryButton")},ae=i("requestPermission"),ie=i("getPermission"),ce=i("openPermissionDialog");function S({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ae(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>ie(e),n.openPermissionDialog=()=>ce(e),n}var Gt=S({handler:e=>i("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:N}),kt=S({handler:e=>i("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:F}),zt=S({handler:e=>i("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:x}),Wt=S({handler:e=>i("openCamera")(e),permission:{name:"camera",access:"access"},error:O}),$t=S({handler:e=>i("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:V}),Kt=S({handler:()=>i("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:G}),de=i("getPermission"),ue=i("openPermissionDialog"),X=e=>w("updateLocationEvent")({...e,onError:t=>{let r=new B;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});X.getPermission=()=>de({name:"geolocation",access:"access"});X.openPermissionDialog=()=>ue({name:"geolocation",access:"access"});var Xt=Object.assign(w("loadFullScreenAd"),{isSupported:u("loadFullScreenAd_isSupported")}),Zt=Object.assign(w("showFullScreenAd"),{isSupported:u("showFullScreenAd_isSupported")}),pe=i("openURL");function me(e){let t=le(e);return pe(t)}function le(e){return["http://","https://"].some(r=>e.startsWith(r))?ge(e):e}function ge(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var q="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",$=15e3,T=null;function A(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function ve(){if(typeof window>"u"||typeof document>"u")return Promise.reject(new Error("Ads SDK can only be loaded in a browser environment."));let e=A();if(e)return Promise.resolve(e);if(T)return T;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",c),window.clearTimeout(f),T=null},a=()=>{let p=A();if(p){s(),r(p);return}s(),n(new Error("Ads SDK script loaded but window.TossAdsSpaceKit was not exposed."))},c=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${q}.`))},f=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${$}ms.`))},$);o.addEventListener("load",a),o.addEventListener("error",c),o.async=!0,o.src=q,document.head.appendChild(o)});return T=t,t}var b=Object.assign(w("fetchTossAd"),{isSupported:u("fetchTossAd_isSupported")}),fe=i("tossAdEventLog"),we=new Set(["1","2"]);function he(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return b({options:e,onEvent:t,onError:r})})}function j(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>we.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function Ee(e){return be(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:j(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Se(e)?{resultType:"SUCCESS",success:j(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function be(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Se(e){return!!(e&&typeof e=="object"&&"ads"in e)}function _e(){return async(e,t)=>{try{let r=await he({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return Ee(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var R=null;function Ae(e){let{callbacks:t}=e;if(window.TossAdsSpaceKit!=null&&window.TossAdsSpaceKit.isInitialized()){t?.onInitializationFailed?.(new Error("[toss-ad] Already initialized."));return}R!=null&&t?.onInitializationFailed?.(new Error("[toss-ad] initialization already in progress."));let r=()=>t?.onInitialized?.(),n=o=>{let s=o instanceof Error?o:new Error(String(o));t?.onInitializationFailed?.(s)};R=ve().then(o=>{let a={environment:"live",customAdFetcher:_e(),opener:me};o.init(a),r()}).catch(o=>{R=null,n(o)})}function Ce(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=A();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let c=typeof t=="string"?document.querySelector(t):t;if(!c)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:ye(e,r.callbacks)};a.banner.createSlot(c,f)}catch(s){o(s)}}function Ie(e){let t=A();t?.banner&&t.banner.destroy(e)}function Te(){let e=A();e?.banner&&e.banner.destroyAll()}function ye(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{fe({log_name:"display_ads_all::impression__1px_banner",log_type:"event",params:{event_type:"impression",schema_id:1812034,request_id:n?.adMetadata?.requestId??""}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:"UNKNOWN"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var Yt={initialize:Object.assign(Ae,{isSupported:b.isSupported}),attach:Object.assign(Ce,{isSupported:b.isSupported}),destroy:Object.assign(Ie,{isSupported:b.isSupported}),destroyAll:Object.assign(Te,{isSupported:b.isSupported})},Qt=Object.assign(i("getServerTime"),{isSupported:u("getServerTime_isSupported")});var y=class{_log=i("debugLog");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var L=class{callbacks={};on(t,r){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u("getAppName")(),deploymentId:u("getDeploymentId")(),webViewType:u("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new L,debugLogger:new y};var C=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function P(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),P(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!C.test(s.url))return await r.call(n,s);let a=await caches.open(t),c=await a.match(s);if(c){let p=c.headers.get("ETag"),l=c.headers.get("Last-Modified");p&&s.headers.set("If-None-Match",p),l&&s.headers.set("If-Modified-Since",l);let h=await r.call(n,s);return h.status===304?(c.__revalidateResponse=h,c):(a.put(s,h.clone()),h)}let f=await r.call(n,s);return a.put(s,f.clone()),f})})();P(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:n,response:s,requestAt:o}),s});var Z=window.__appsInToss.debugLogger;Z.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,r=typeof e<"u"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};Z.log("load_complete",{isNavigationDebugSupported:r,...n})});function _(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:_(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:_(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:_(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+a.startTime}):a.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+a.startTime})})}).observe({type:"paint"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;function e(t){let r=t.getContext("webgl2")??t.getContext("webgl");if(r==null)return;let n=r.getExtension("WEBGL_debug_renderer_info"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...s,...a})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type==="childList"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute("id")==="unity-canvas"&&(e(a),o.disconnect()),a instanceof HTMLElement){let c=a.querySelector("#unity-canvas");c!=null&&(e(c),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:r})=>{C.test(r.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:r.url})}),t.on("fetchResponse",async({request:r,requestAt:n,response:o})=>{if(!C.test(r.url))return;let s=_((await o.clone().blob()).size/1024,2),a=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n';0&&(module.exports={afterDocumentLoad,beforeDocumentLoad});
|
package/dist/index.mjs
CHANGED
|
@@ -7,4 +7,4 @@ var e=`"use strict";(()=>{var e=document.createElement("style");e.textContent=\`
|
|
|
7
7
|
-webkit-touch-callout: none;
|
|
8
8
|
}
|
|
9
9
|
\`;document.head.appendChild(e);})();
|
|
10
|
-
`,t='"use strict";(()=>{var b=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let n=this._window.__GRANITE_NATIVE_EMITTER;if(!n)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return n.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},u=new b,y=()=>Math.random().toString(36).substring(2,15),R=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[n,r]of Object.entries(e))t[n]=r;return t}return e};function h(e){return(...t)=>{let n=y(),r=[],a=()=>{for(let o of r)o()};return new Promise((o,i)=>{r.push(u.on(`${e}/resolve/${n}`,s=>{a(),o(s)})),r.push(u.on(`${e}/reject/${n}`,s=>{a(),i(R(s))})),u.postMessage({type:"method",functionName:e,eventId:n,args:t})})}}function g(e){return()=>u.getConstant(e)}var m=class{_log=h("debugLog");log(t,n){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...n,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var l=class{callbacks={};on(t,n){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(n)}emit(t,n){this.callbacks[t]?.forEach(r=>r(n))}};window.__appsInToss={appName:g("getAppName")(),deploymentId:g("getDeploymentId")(),webViewType:g("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new l,debugLogger:new m};var d=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function f(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let n=await caches.keys();for(let r of n)r.startsWith(e)&&r!==t&&await caches.delete(r)}),f(async(n,r,a)=>{let o=new Request(a[0],a[1]);if(!d.test(o.url))return await n.call(r,o);let i=await caches.open(t),s=await i.match(o);if(s){let v=s.headers.get("ETag"),_=s.headers.get("Last-Modified");v&&o.headers.set("If-None-Match",v),_&&o.headers.set("If-Modified-Since",_);let p=await n.call(r,o);return p.status===304?(s.__revalidateResponse=p,s):(i.put(o,p.clone()),p)}let w=await n.call(r,o);return i.put(o,w.clone()),w})})();f(async(e,t,n)=>{let r=new Request(n[0],n[1]),a=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:r});let o=await e.call(t,r);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:r,response:o,requestAt:a}),o});var E=window.__appsInToss.debugLogger;E.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,n=typeof e<"u"&&t!==null,r=n?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};E.log("load_complete",{isNavigationDebugSupported:n,...r})});function c(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:c(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:c(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:c(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(a=>{a.getEntries().forEach(i=>{i.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+i.startTime}):i.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+i.startTime})})}).observe({type:"paint"}),new PerformanceObserver(a=>{a.getEntries().forEach(i=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+i.startTime,lcpRenderSize:i.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;function e(t){let n=t.getContext("webgl2")??t.getContext("webgl");if(n==null)return;let r=n.getExtension("WEBGL_debug_renderer_info"),a=n.getParameter(n.MAX_VIEWPORT_DIMS),o={webGLRenderer:n.getParameter(n.RENDERER),webGLVendor:n.getParameter(n.VENDOR),webGLVersion:n.getParameter(n.VERSION),webGLShadingLanguageVersion:n.getParameter(n.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:a[0],webGLMaxViewportHeight:a[1],webGLMaxRenderbufferSize:n.getParameter(n.MAX_RENDERBUFFER_SIZE)},i=r?{webGLUnmaskedVendor:n.getParameter(r.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:n.getParameter(r.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...o,...i})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((r,a)=>{for(let o of r)o.type==="childList"&&o.addedNodes.forEach(i=>{if(i instanceof HTMLCanvasElement&&i.getAttribute("id")==="unity-canvas"&&(e(i),a.disconnect()),i instanceof HTMLElement){let s=i.querySelector("#unity-canvas");s!=null&&(e(s),a.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:n})=>{d.test(n.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:n.url})}),t.on("fetchResponse",async({request:n,requestAt:r,response:a})=>{if(!d.test(n.url))return;let o=c((await a.clone().blob()).size/1024,2),i=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:r,gameResourceResponseAtMs:i,gameResourceResponseSize:o,gameResourceResponseStatus:a.__revalidateResponse?.status??a.status,gameResourceDownloadDurationMs:i-r})})})();})();\n';export{e as afterDocumentLoad,t as beforeDocumentLoad};
|
|
10
|
+
`,t='"use strict";(()=>{var Y=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},g=new Y,M=()=>Math.random().toString(36).substring(2,15),D=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=M(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(g.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(g.on(`${e}/reject/${r}`,c=>{o(),a(D(c))})),g.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function I(e){return t=>{let r=M(),n=[g.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),g.on(`${e}/onError/${r}`,o=>{t.onError(D(o))})];return g.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{g.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function m(e){return()=>g.getConstant(e)}var Q=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(c){return r!==c})}}}};typeof window<"u"&&(window.__GRANITE_NATIVE_EMITTER=Q());var Re=d("closeView"),Me=d("generateHapticFeedback"),De=d("share"),Ne=d("setSecureScreen"),Fe=d("setScreenAwakeMode"),Oe=d("getNetworkStatus"),Be=d("setIosSwipeGestureEnabled"),Ge=d("openURL"),Ve=d("openPermissionDialog"),ke=d("getPermission"),He=d("requestPermission"),ze=m("setClipboardText"),Ue=m("getClipboardText"),We=m("fetchContacts"),qe=m("fetchAlbumPhotos"),$e=m("getCurrentLocation"),je=m("openCamera"),Ke=d("appLogin"),Je=d("eventLog"),Xe=d("getTossShareLink"),Ze=d("setDeviceOrientation"),Ye=d("checkoutPayment"),Qe=d("saveBase64Data"),et=d("appsInTossSignTossCert"),tt=d("getGameCenterGameProfile"),rt=d("openGameCenterLeaderboard"),nt=d("submitGameCenterLeaderBoardScore"),ot=d("getUserKeyForGame"),st=d("getIsTossLoginIntegratedService"),at=d("grantPromotionRewardForGame"),it=d("getServerTime"),ct=m("getLocale"),dt=m("getSchemeUri"),ut=m("getPlatformOS"),pt=m("getOperationalEnvironment"),mt=m("getTossAppVersion"),lt=m("getDeviceId"),gt=I("contactsViral"),vt=I("startUpdateLocation"),ft=I("onVisibilityChangedByTransparentServiceWeb");var E=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},N=class extends E{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},F=class extends E{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},O=class extends E{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var x=class extends E{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},B=x,G=class extends E{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},V=class extends E{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var ee=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},v=new ee,K=()=>Math.random().toString(36).substring(2,15),J=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function i(e){return(...t)=>{let r=K(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(v.on(`${e}/resolve/${r}`,c=>{o(),s(c)})),n.push(v.on(`${e}/reject/${r}`,c=>{o(),a(J(c))})),v.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function w(e){return t=>{let r=K(),n=[v.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),v.on(`${e}/onError/${r}`,o=>{t.onError(J(o))})];return v.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{v.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>v.getConstant(e)}var Tt={getItem:i("getStorageItem"),setItem:i("setStorageItem"),removeItem:i("removeStorageItem"),clearItems:i("clearItems")},te=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,k=e=>["*","x","X"].includes(e),H=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},re=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ne=(e,t)=>{if(k(e)||k(t))return 0;let[r,n]=re(H(e),H(t));return r>n?1:r<n?-1:0},z=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(te);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},U=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??"0",s=t[n]??"0",a=ne(o,s);if(a!==0)return a}return 0},oe=(e,t)=>{let r=z(e),n=z(t),o=r.pop(),s=n.pop(),a=U(r,n);return a!==0?a:o&&s?U(o.split("."),s.split(".")):o?-1:s?1:0};function W(e){if(u("getOperationalEnvironment")()==="sandbox")return!0;let r=u("getTossAppVersion")(),o=u("getPlatformOS")()==="ios"?e.ios:e.android;return o===void 0?!1:o==="always"?!0:o==="never"?!1:oe(r,o)>=0}function se(e){return i("processProductGrant")(e)}var yt={createOneTimePurchaseOrder:e=>{let t=W({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=W({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,c=o.sku??o.productId;return n?w("requestOneTimePurchase")({options:{sku:c},onEvent:async p=>{if(p.type==="purchased"){let l=await o.processProductGrant({orderId:p.data.orderId});await se({orderId:p.data.orderId,isProductGranted:l}).catch(a)}else s(p)},onError:p=>{a(p)}}):(i("iapCreateOneTimePurchaseOrder")({productId:c}).then(l=>{Promise.resolve(o.processProductGrant({orderId:l.orderId})).then(()=>{s({type:"success",data:l})}).catch(h=>{a(h)})}).catch(l=>{a(l)}),r)},getProductItemList:i("iapGetProductItemList"),getPendingOrders:i("getPendingOrders"),getCompletedOrRefundedOrders:i("getCompletedOrRefundedOrders"),completeProductGrant:i("completeProductGrant")},Lt=u("getSafeAreaInsets");var Pt=u("getSafeAreaInsets");var xt={loadAppsInTossAdMob:Object.assign(w("loadAppsInTossAdMob"),{isSupported:u("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(w("showAppsInTossAdMob"),{isSupported:u("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(i("isAppsInTossAdMobLoaded"),{isSupported:u("isAppsInTossAdMobLoaded_isSupported")})};var Rt={getDeploymentId:u("getDeploymentId")},Mt=u("deploymentId"),Dt=u("brandDisplayName"),Nt=u("brandIcon"),Ft=u("brandPrimaryColor");var Ot={addAccessoryButton:i("addAccessoryButton"),removeAccessoryButton:i("removeAccessoryButton")},ae=i("requestPermission"),ie=i("getPermission"),ce=i("openPermissionDialog");function S({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ae(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>ie(e),n.openPermissionDialog=()=>ce(e),n}var Gt=S({handler:e=>i("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:N}),kt=S({handler:e=>i("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:F}),zt=S({handler:e=>i("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:x}),Wt=S({handler:e=>i("openCamera")(e),permission:{name:"camera",access:"access"},error:O}),$t=S({handler:e=>i("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:V}),Kt=S({handler:()=>i("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:G}),de=i("getPermission"),ue=i("openPermissionDialog"),X=e=>w("updateLocationEvent")({...e,onError:t=>{let r=new B;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});X.getPermission=()=>de({name:"geolocation",access:"access"});X.openPermissionDialog=()=>ue({name:"geolocation",access:"access"});var Xt=Object.assign(w("loadFullScreenAd"),{isSupported:u("loadFullScreenAd_isSupported")}),Zt=Object.assign(w("showFullScreenAd"),{isSupported:u("showFullScreenAd_isSupported")}),pe=i("openURL");function me(e){let t=le(e);return pe(t)}function le(e){return["http://","https://"].some(r=>e.startsWith(r))?ge(e):e}function ge(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var q="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",$=15e3,T=null;function A(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function ve(){if(typeof window>"u"||typeof document>"u")return Promise.reject(new Error("Ads SDK can only be loaded in a browser environment."));let e=A();if(e)return Promise.resolve(e);if(T)return T;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",c),window.clearTimeout(f),T=null},a=()=>{let p=A();if(p){s(),r(p);return}s(),n(new Error("Ads SDK script loaded but window.TossAdsSpaceKit was not exposed."))},c=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${q}.`))},f=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${$}ms.`))},$);o.addEventListener("load",a),o.addEventListener("error",c),o.async=!0,o.src=q,document.head.appendChild(o)});return T=t,t}var b=Object.assign(w("fetchTossAd"),{isSupported:u("fetchTossAd_isSupported")}),fe=i("tossAdEventLog"),we=new Set(["1","2"]);function he(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return b({options:e,onEvent:t,onError:r})})}function j(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>we.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function Ee(e){return be(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:j(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Se(e)?{resultType:"SUCCESS",success:j(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function be(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Se(e){return!!(e&&typeof e=="object"&&"ads"in e)}function _e(){return async(e,t)=>{try{let r=await he({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return Ee(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var R=null;function Ae(e){let{callbacks:t}=e;if(window.TossAdsSpaceKit!=null&&window.TossAdsSpaceKit.isInitialized()){t?.onInitializationFailed?.(new Error("[toss-ad] Already initialized."));return}R!=null&&t?.onInitializationFailed?.(new Error("[toss-ad] initialization already in progress."));let r=()=>t?.onInitialized?.(),n=o=>{let s=o instanceof Error?o:new Error(String(o));t?.onInitializationFailed?.(s)};R=ve().then(o=>{let a={environment:"live",customAdFetcher:_e(),opener:me};o.init(a),r()}).catch(o=>{R=null,n(o)})}function Ce(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=A();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let c=typeof t=="string"?document.querySelector(t):t;if(!c)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:ye(e,r.callbacks)};a.banner.createSlot(c,f)}catch(s){o(s)}}function Ie(e){let t=A();t?.banner&&t.banner.destroy(e)}function Te(){let e=A();e?.banner&&e.banner.destroyAll()}function ye(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{fe({log_name:"display_ads_all::impression__1px_banner",log_type:"event",params:{event_type:"impression",schema_id:1812034,request_id:n?.adMetadata?.requestId??""}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:"UNKNOWN"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var Yt={initialize:Object.assign(Ae,{isSupported:b.isSupported}),attach:Object.assign(Ce,{isSupported:b.isSupported}),destroy:Object.assign(Ie,{isSupported:b.isSupported}),destroyAll:Object.assign(Te,{isSupported:b.isSupported})},Qt=Object.assign(i("getServerTime"),{isSupported:u("getServerTime_isSupported")});var y=class{_log=i("debugLog");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var L=class{callbacks={};on(t,r){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u("getAppName")(),deploymentId:u("getDeploymentId")(),webViewType:u("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new L,debugLogger:new y};var C=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function P(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),P(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!C.test(s.url))return await r.call(n,s);let a=await caches.open(t),c=await a.match(s);if(c){let p=c.headers.get("ETag"),l=c.headers.get("Last-Modified");p&&s.headers.set("If-None-Match",p),l&&s.headers.set("If-Modified-Since",l);let h=await r.call(n,s);return h.status===304?(c.__revalidateResponse=h,c):(a.put(s,h.clone()),h)}let f=await r.call(n,s);return a.put(s,f.clone()),f})})();P(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:n,response:s,requestAt:o}),s});var Z=window.__appsInToss.debugLogger;Z.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,r=typeof e<"u"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};Z.log("load_complete",{isNavigationDebugSupported:r,...n})});function _(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:_(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:_(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:_(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+a.startTime}):a.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+a.startTime})})}).observe({type:"paint"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;function e(t){let r=t.getContext("webgl2")??t.getContext("webgl");if(r==null)return;let n=r.getExtension("WEBGL_debug_renderer_info"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...s,...a})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type==="childList"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute("id")==="unity-canvas"&&(e(a),o.disconnect()),a instanceof HTMLElement){let c=a.querySelector("#unity-canvas");c!=null&&(e(c),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:r})=>{C.test(r.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:r.url})}),t.on("fetchResponse",async({request:r,requestAt:n,response:o})=>{if(!C.test(r.url))return;let s=_((await o.clone().blob()).size/1024,2),a=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n';export{e as afterDocumentLoad,t as beforeDocumentLoad};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/user-scripts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"import": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"build": "node ./build.mjs"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@apps-in-toss/bridge-core": "^1.
|
|
26
|
+
"@apps-in-toss/bridge-core": "^1.10.1",
|
|
27
|
+
"@apps-in-toss/web-bridge": "^1.10.1",
|
|
27
28
|
"tsup": "^8.3.5",
|
|
28
29
|
"typescript": "5.8.3"
|
|
29
30
|
}
|