PageSourceSearch

https://myechoboard.com/assets/nativePerformanceRecorder-DaU7m7e2.js

js myechoboard.com collected 2026-10-02 00:17:51 UTC 9,746 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-capacitor-8exTJy5k.js","assets/runtime-preload-CFP917pd.js","assets/supabase-client-2CObC91N.js","assets/vendor-supabase-BL1taoPA.js","assets/startup-platform-OWIpYyjW.js","assets/supabase-config-BOS-KsQP.js"])))=>i.map(i=>d[i]);
2import{_ as e}from"./runtime-preload-CFP917pd.js";import{C as t,r as n}from"./vendor-capacitor-8exTJy5k.js";import{b as a}from"./runtime-utils-GN4cODRt.js";const o="echo:native-performance-config-v1",r={enabled:!0,recorderEnabled:!0,severeUploadsEnabled:!0,detectionSampleRate:1,eventSampleRate:1,traceSampleRate:.1,profileSampleRate:.01,maxBatchEvents:20,flushIntervalMs:2e3},i=(e,t)=>{const n=Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t},s=e=>{const t=e&&"object"==typeof e?e:{},n=r,a=(e,n,a,o)=>{const r=Number(t[e]);return Number.isFinite(r)?Math.min(a,Math.max(n,r)):o},o=(e,n)=>"boolean"==typeof t[e]?t[e]:n;return{enabled:o("enabled",n.enabled),recorderEnabled:o("recorderEnabled",n.recorderEnabled),severeUploadsEnabled:o("severeUploadsEnabled",n.severeUploadsEnabled),detectionSampleRate:i(t.detectionSampleRate,n.detectionSampleRate),eventSampleRate:i(t.eventSampleRate,n.eventSampleRate),traceSampleRate:i(t.traceSampleRate,n.traceSampleRate),profileSampleRate:i(t.profileSampleRate,n.profileSampleRate),maxBatchEvents:Math.round(a("maxBatchEvents",5,50,n.maxBatchEvents)),flushIntervalMs:Math.round(a("flushIntervalMs",1e3,1e4,n.flushIntervalMs))}};let l=r;try{"undefined"!=typeof window&&(l=s(JSON.parse(window.localStorage.getItem(o)||"null")))}catch{}const c=()=>l,d=new Set(["frontpage","explore","boards","board_detail","echo_detail","profile","settings","favorites","create","auth","admin","other"]),u=new Set(["launch","lifecycle","route","interaction","feed","media","network","render","bridge","memory","thermal","frame_freeze","renderer_exit","native_hang","process_exit","scenario"]),m=new Set(["idle","startup","navigation","feed_fetch","feed_render","feed_append","media_decode","media_play","search","filter","upload","share","background","resume","other"]),p=e=>{const t=e.split(/[?#]/,1)[0].replace(/\/+$/,"")||"/";return"/"===t||"/frontpage"===t?"frontpage":"/explore"===t?"explore":/\/echo\/[^/]+/.test(t)?"echo_detail":/^\/boards\/[^/]+/.test(t)||/^\/u\/[^/]+\/[^/]+/.test(t)?"board_detail":"/boards"===t?"boards":"/profile"===t?"profile":t.startsWith("/settings")?"settings":t.startsWith("/favorites")?"favorites":t.startsWith("/create")?"create":t.startsWith("/auth")||t.startsWith("/login")?"auth":t.startsWith("/admin")?"admin":"other"},h=e=>{if("string"==typeof e)return e.trim().toLowerCase().replace(/[^a-z0-9_.:-]+/g,"_").slice(0,64)||void 0},f=(e,t)=>{const n=Number(e);return Number.isFinite(n)?Math.min(t,Math.max(0,n)):void 0},v=n("EchoPerformance"),g=performance.now(),b=a(),w=a(),_=[];let S=[],y=0,E=0,k=p("undefined"!=typeof location?location.pathname:"/"),R="startup",M=!1,I="none";const A=t.isNativePlatform(),x="ios"===t.getPlatform()?"ios":"android"===t.getPlatform()?"android":"web",N="echo@82c8ecfb285dea89064bdb27336da8441e615321";let L="web";const P=()=>{var e;if(!navigator.onLine)return"offline";const t=null==(e=navigator.connection)?void 0:e.effectiveType;return"slow-2g"===t?"slow_2g":"2g"===t||"3g"===t||"4g"===t?t:"unknown"},C=()=>{var e,t,n;const a=navigator.userAgent,o=null==(e=a.match(/(?:Version|Chrome)\/([0-9.]+)/i))?void 0:e[1];if(/Android/i.test(a))return`android-chromium:${o||"unknown"}`;const r=null==(t=a.match(/AppleWebKit\/([0-9.]+)/i))?void 0:t[1];return/(?:iPhone|iPad|iPod)/i.test(a)?`ios-webkit:${r||"unknown"}`:`web:${(null==(n=a.match(/(?:Chrome|Firefox|Version)\/([0-9.]+)/i))?void 0:n[1])||"unknown"}`},T=()=>{const e=window.__ECHO_NATIVE_PERFORMANCE_STATE__;return{version:1,performanceSessionId:b,launchId:w,platform:x,release:N,build:L,routeGroup:p(location.pathname),previousRouteGroup:k,foreground:"visible"===document.visibilityState,powerSave:Boolean((null==e?void 0:e.powerSave)??(null==e?void 0:e.lowPower)),thermalState:(t=null==e?void 0:e.thermalState,"string"==typeof t?{nominal:0,fair:1,serious:2,critical:3}[t.toLowerCase()]??0:Math.max(0,Math.min(10,Number(t)||0))),memoryPressure:I,networkClass:P(),webViewVersion:C(),mountedCards:document.querySelectorAll("[data-memory-id],[data-echo-id]").length,mountedImages:document.images.length,mountedVideos:document.querySelectorAll("video").length,playingMedia:Array.from(document.querySelectorAll("video,audio")).filter(e=>!e.paused).length,events:_.slice()};var t},$=async()=>
2{if(window.clearTimeout(E),E=0,!A||0===S.length)return;const e=S.splice(0,c().maxBatchEvents);try{await v.recordBatch({events:e})}catch{S=[...e,...S].slice(-100)}S.length&&O()};function O(){!E&&A&&(E=window.setTimeout(()=>{$()},c().flushIntervalMs))}const B=e=>{const t=c(),n="frame_freeze"===e.kind?t.detectionSampleRate:t.eventSampleRate;if(!t.enabled||!t.recorderEnabled||Math.random()>n)return null;const a=performance.now(),o=((e,t,n)=>{if(!u.has(String(e.kind))||!m.has(String(e.operation)))return null;const a=d.has(String(e.routeGroup))?e.routeGroup:"other",o={version:1,sequence:t,monotonicMs:f(e.monotonicMs,Number.MAX_SAFE_INTEGER)??n,sinceLaunchMs:f(e.sinceLaunchMs,864e5)??n,kind:e.kind,routeGroup:a,operation:e.operation};e.interactionKind&&(o.interactionKind=e.interactionKind);const r=h(e.control);r&&(o.control=r);const i=f(e.durationMs,12e4);void 0!==i&&(o.durationMs=i),e.severity&&(o.severity=e.severity);const s=f(e.count,1e5);void 0!==s&&(o.count=s);const l=f(e.value,1e9);return void 0!==l&&(o.value=l),o})({...e,operation:e.operation||R,routeGroup:p(location.pathname),monotonicMs:a,sinceLaunchMs:a-g},++y,a-g);if(!o)return null;if(_.push(o),S.push(o),(()=>{var e;const t=performance.now()-g-12e4;for(;_.length>500||((null==(e=_[0])?void 0:e.sinceLaunchMs)??1/0)<t;)_.shift()})(),S.length>=t.maxBatchEvents?$():O(),A&&("route"===o.kind||"scenario"===o.kind)){const e=h(o.control||`${o.kind}_${o.routeGroup}`)||o.kind;v.markTrace({name:e,begin:!0}).then(()=>v.markTrace({name:e,begin:!1})).catch(()=>{})}return o},F=e=>{R=e},V=(e,t,n,a)=>{B({kind:"frame_freeze",durationMs:e,severity:t,interactionKind:n,control:a})},j=e=>B({kind:"scenario",operation:"other",control:h(e)}),G=()=>T(),W=()=>({performanceSessionId:b,launchId:w}
2),D=()=>{B({kind:"route",operation:"navigation",control:"fully_drawn"}),A&&v.reportFullyDrawn().catch(()=>{})},K=async()=>{if(M)return;if(M=!0,A){const{App:t}=await e(async()=>{const{App:e}=await import("./vendor-capacitor-8exTJy5k.js").then(e=>e.b);return{App:e}},__vite__mapDeps([0,1])),n=await t.getInfo().catch(()=>null);n&&(L=n.build,window.__ECHO_NATIVE_BUILD__={release:N,build:L,platform:x})}const t=c();if(B({kind:"launch",operation:"startup"}),A){await v.configure({enabled:t.enabled,recorderEnabled:t.recorderEnabled,traceSampleRate:t.traceSampleRate,profileSampleRate:t.profileSampleRate}).catch(()=>{});const n=await v.getPendingDiagnostics().catch(()=>({diagnostics:[]})),a=Array.isArray(n.diagnostics)?n.diagnostics.slice(0,20):[];if(a.length){const e=a.flatMap(e=>e&&"object"==typeof e&&"id"in e?[String(e.id)]:[]);await v.acknowledgeDiagnostics({ids:e}).catch(()=>{})}await v.startSession({performanceSessionId:b,launchId:w,release:N,build:L}).catch(()=>{}),(async()=>{try{const{supabase:t}=await e(async()=>{const{supabase:e}=await import("./supabase-client-2CObC91N.js");return{supabase:e}},__vite__mapDeps([2,3,4,5])),{data:n,error:a}=await t.from("system_settings").select("value").eq("key","native_performance_diagnostics").maybeSingle();if(a||!n)return l;const r="string"==typeof n.value?JSON.parse(n.value):n.value;l=s(r),"undefined"!=typeof window&&window.localStorage.setItem(o,JSON.stringify(l))}catch{}return l})().then(e=>v.configure({enabled:e.enabled,recorderEnabled:e.recorderEnabled,traceSampleRate:e.traceSampleRate,profileSampleRate:e.profileSampleRate})).catch(()=>{})}document.addEventListener("click",e=>{const t=e.target instanceof Element?e.target.closest('button,a,input,[role="button"]'):null,n=(null==t?void 0:t.matches("a"))?"link":(null==t?void 0:t.matches("input"))?"input":"button";B({kind:"interaction",interactionKind:n,control:(null==t?void 0:t.dataset.perfControl)||`${(null==t?void 0:t.tagName)||"unknown"}_${(null==t?void 0:t.getAttribute("role"))||"control"}`})},{capture:!0,passive:!0}),window.addEventListener("popstate",()=>{const e=p(location.pathname);B({kind:"route",operation:"navigation",control:`${k}_to_${e}`}),k=e}),["pushState","replaceState"].forEach(e=>{const t=history[e].bind(history);history[e]=(...e)=>{const n=t(...e),a=p(location.pathname);return a!==k&&(B({kind:"route",operation:"navigation",control:`${k}_to_${a}`}),k=a),n}}),document.addEventListener("visibilitychange",()=>{B({kind:"lifecycle",operation:document.hidden?"background":"resume"}),document.hidden&&$()}),window.addEventListener("pagehide",()=>{$()}),window.addEventListener("echo:native-memory-pressure",e=>{const t=e.detail;I=null==(null==t?void 0:t.level)?"warning":String(t.level).slice(0,32)})};if("undefined"!=typeof window){const e=window.__ECHO_PERF__;window.__ECHO_PERF__={summary:(null==e?void 0:e.summary)||(()=>T()),markScenario:t=>{null==e||e.markScenario(t),j(t)},exportSanitized:G,performanceSessionId:b,launchId:w,injectTestStall:e=>{if("1"!==localStorage.getItem("echo:perf-diagnostics"))return;const t=Math.min(3500,Math.max(0,Number(e)||0)),n=performance.now()+t;for(;performance.now()<n;);}}}export{G as exportSanitizedPerformanceDiagnostics,$ as flushNativePerformanceEvents,W as getPerformanceSessionIds,K as initializeNativePerformanceRecorder,j as markPerformanceScenario,V as recordNativeFreeze,B as recordPerformanceBreadcrumb,D as reportFullyDrawn,F as setActivePerformanceOperation};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.