reporting-lib 0.1.11 → 0.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../src/api/xhr.js"],"names":[],"mappings":"AA0DA,oCAEC"}
1
+ {"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../src/api/xhr.js"],"names":[],"mappings":"AA8DA,oCAEC"}
package/dist/api/xhr.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { lazyReportCache } from '../report/index.js';
2
- import { isValidOssVideoUrl } from '../util/tool.js';
2
+ import { isValidOssVideoUrl, getRequestBodySize } from '../util/tool.js';
3
3
  const originalPrototype = XMLHttpRequest.prototype;
4
4
  const originalOpen = originalPrototype.open;
5
5
  const originalSend = originalPrototype.send;
@@ -11,10 +11,12 @@ function overWriteOpenAndSend() {
11
11
  };
12
12
  originalPrototype.send = function newSend(...args) {
13
13
  this.startTime = Date.now();
14
+ const body = args[0];
15
+ this.requestSize = getRequestBodySize(body);
14
16
  const onLoadEnd = () => {
15
17
  this.endTime = Date.now();
16
18
  this.duration = this.endTime - this.startTime;
17
- const { status, duration, startTime, endTime, method, response } = this;
19
+ const { status, duration, startTime, endTime, method, response, requestSize } = this;
18
20
  let { url } = this;
19
21
  let code = status;
20
22
  let request_url = url;
@@ -36,6 +38,7 @@ function overWriteOpenAndSend() {
36
38
  code,
37
39
  // success: status >= 200 && status < 300,
38
40
  sub_type: 'xhr',
41
+ request_size: requestSize,
39
42
  };
40
43
  lazyReportCache('api', reportData);
41
44
  this.removeEventListener('loadend', onLoadEnd, true);
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/api/xhr.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,iBAAiB,GAAG,cAAc,CAAC,SAAS,CAAC;AACnD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAE5C,SAAS,oBAAoB;IAC3B,iBAAiB,CAAC,IAAI,GAAG,SAAS,OAAO,CAAC,GAAG,IAAI;QAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;IACD,iBAAiB,CAAC,IAAI,GAAG,SAAS,OAAO,CAAC,GAAG,IAAI;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAE9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;YACvE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,GAAG,MAAM,CAAC;YAClB,IAAI,WAAW,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACnC,CAAC;YAAA,MAAM,CAAC;YAER,CAAC;YACD,IAAG,kBAAkB,CAAC,WAAW,CAAC,EAAC,CAAC;gBAClC,WAAW,GAAG,8DAA8D,CAAA;YAC9E,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,MAAM;gBACN,QAAQ;gBACR,aAAa;gBACb,WAAW;gBACX,WAAW;gBACX,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,IAAI;gBACJ,0CAA0C;gBAC1C,QAAQ,EAAE,KAAK;aAChB,CAAA;YAED,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAA;QAED,6CAA6C;QAC7C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;AAGH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,GAAG;IACzB,oBAAoB,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/api/xhr.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEtE,MAAM,iBAAiB,GAAG,cAAc,CAAC,SAAS,CAAC;AACnD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAE5C,SAAS,oBAAoB;IAC3B,iBAAiB,CAAC,IAAI,GAAG,SAAS,OAAO,CAAC,GAAG,IAAI;QAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;IACD,iBAAiB,CAAC,IAAI,GAAG,SAAS,OAAO,CAAC,GAAG,IAAI;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAE9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAC,QAAQ,EAAC,WAAW,EAAE,GAAG,IAAI,CAAC;YACnF,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,GAAG,MAAM,CAAC;YAClB,IAAI,WAAW,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACnC,CAAC;YAAA,MAAM,CAAC;YAER,CAAC;YACD,IAAG,kBAAkB,CAAC,WAAW,CAAC,EAAC,CAAC;gBAClC,WAAW,GAAG,8DAA8D,CAAA;YAC9E,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,MAAM;gBACN,QAAQ;gBACR,aAAa;gBACb,WAAW;gBACX,WAAW;gBACX,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,IAAI;gBACJ,0CAA0C;gBAC1C,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,WAAW;aAC1B,CAAA;YAED,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAA;QAED,6CAA6C;QAC7C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;AAGH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,GAAG;IACzB,oBAAoB,EAAE,CAAC;AACzB,CAAC"}
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var A={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},T="",m=A;function ee(e){for(let t in A)e[t]&&(A[t]=e[t]);e.version&&(T=e.version);}var w=new Map;function te(){return w}function ne(e,t){w.get(e)?w.get(e).push(t):w.set(e,[t]);}function oe(){w.clear();}function Ie(e,t,o=false){if(m.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(m.userId)||0,source:m.source,type:e,url:window.location.href,data:t});if(o){k(m.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{k(m.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{k(m.reportUrl,n);});}var re=null;function u(e,t,o=3e3){ne(e,t),clearTimeout(re),re=setTimeout(()=>{let n=te();if(n.size){for(let[r,i]of n)Ie(r,i);oe();}},o);}function k(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Ee(e,t);}function Ee(e,t){let o=new XMLHttpRequest;o.open("POST",e,true),o.setRequestHeader("Content-Type","application/json"),o.send(t);}var Me=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:o=(r,i)=>{},threshold:n=.9}={})=>{let r=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([r/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,h])=>{let O=document.elementFromPoint(d,h),Z=O?.tagName||"NULL";c.push({x:d,y:h,tag:Z}),(!O||t.includes(Z))&&s++;});let l=s/e>=n;o(l,c);},Oe=(e,t=300,o=false)=>{let n=null;return function(...r){let i=this;n&&clearTimeout(n),o&&!n&&e.apply(i,r),n=setTimeout(()=>{o||e.apply(i,r),n=null;},t);}},Ae=Oe(e=>{Me({onDetected:(t,o)=>{console.log("isWhite: ",t),e(t),b=null;}});},1e3),b=null,ie=()=>(b||(b=new Promise(e=>{setTimeout(()=>{Ae(e);},3e3);})),b),se=()=>{let e=navigator.userAgent,t="Unknown",o="Unknown";return /edg/i.test(e)?(t="Edge",o=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",o=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",o=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",o=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",o=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",o=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:o}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},x=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},L=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}};var ce=se(),R={user_agent:ce.name+ce.version,platform:ae()},Fe=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ke=10;function Re(e){let t=e.match(Fe);if(!t)return {};let o=t[2]||"<anonymous>",n=t[1]||"",r=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:o,functionName:n,lineno:r,colno:i}}function le(e){let{stack:t}=e;if(!t)return [];let o=[];for(let n of t.split(`
2
- `).slice(1)){let r=Re(n);r.filename&&o.push(r);}return o.slice(0,ke)}function D(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let o={error_type:"resource",...R,msg:L(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:T};u("error",o);}else {let o=le(e.error),n=e.message;if(o?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=o[0];n=`${e.message},${a},line:${c}:${l}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r),await ie()&&u("error",{...r,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,o=le(t),n=t;if(o?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=o[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r);});}var Te=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(Te=t.timeStamp,e(t));},true);},p=(e,t,o,n)=>{let r,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(r??0),(i||r===void 0)&&(r=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,o),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},z=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},y=()=>z()?.activationStart??0,f=(e,t=-1)=>{let o=z(),n="navigate";return Te>=0?n="back-forward-cache":o&&(document.prerendering||y()>0?n="prerender":document.wasDiscarded?n="restore":o.type&&(n=o.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},$=new WeakMap;function V(e,t){return $.get(e)||$.set(e,new t),$.get(e)}var H=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let o=this.o[0],n=this.o.at(-1);this.i&&o&&n&&t.startTime-n.startTime<1e3&&t.startTime-o.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},C=(e,t,o={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(r=>{Promise.resolve().then(()=>{t(r.getEntries());});});return n.observe({type:e,buffered:!0,...o}),n}}catch{}},J=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,we=new Set,de=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,U=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of we)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",U,true));}},I=()=>{if(g<0){let e=y();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(o=>o.name==="hidden"&&o.startTime>e)[0]?.startTime)??de(),addEventListener("visibilitychange",U,true),addEventListener("prerenderingchange",U,true),v(()=>{setTimeout(()=>{g=de();});});}return {get firstHiddenTime(){return g},onHidden(e){we.add(e);}}},E=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},ue=[1800,3e3],X=(e,t={})=>{E(()=>{let o=I(),n,r=f("FCP"),i=C("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<o.firstHiddenTime&&(r.value=Math.max(s.startTime-y(),0),r.entries.push(s),n(true)));});i&&(n=p(e,r,ue,t.reportAllChanges),v(a=>{r=f("FCP"),n=p(e,r,ue,t.reportAllChanges),j(()=>{r.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],ye=(e,t={})=>{let o=I();X(J(()=>{let n,r=f("CLS",0),i=V(t,H),a=c=>{for(let l of c)i.h(l);i.i>r.value&&(r.value=i.i,r.entries=i.o,n());},s=C("layout-shift",a);s&&(n=p(e,r,pe,t.reportAllChanges),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,r=f("CLS",0),n=p(e,r,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Ce=0,W=1/0,P=0,De=e=>{for(let t of e)t.interactionId&&(W=Math.min(W,t.interactionId),P=Math.max(P,t.interactionId),Ce=P?(P-W)/7+1:0);},_,fe=()=>_?Ce:performance.interactionCount??0,$e=()=>{"interactionCount"in performance||_||(_=C("event",De,{type:"event",buffered:true,durationThreshold:0}));},me=0,q=class{u=[];l=new Map;m;p;v(){me=fe(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((fe()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let o=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>o.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((r,i)=>i.P-r.P),this.u.length>10){let r=this.u.splice(10);for(let i of r)this.l.delete(i.id);}this.p?.(n);}}},Se=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=J(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},he=[200,500],be=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let o=I();E(()=>{$e();let n,r=f("INP"),i=V(t,q),a=c=>{Se(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==r.value&&(r.value=l.P,r.entries=l.entries,n());});},s=C("event",a,{durationThreshold:t.durationThreshold??40});n=p(e,r,he,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),r=f("INP"),n=p(e,r,he,t.reportAllChanges);}));});},B=class{m;h(t){this.m?.(t);}},ge=[2500,4e3],xe=(e,t={})=>{E(()=>{let o=I(),n,r=f("LCP"),i=V(t,B),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<o.firstHiddenTime&&(r.value=Math.max(l.startTime-y(),0),r.entries=[l],n());},s=C("largest-contentful-paint",a);if(s){n=p(e,r,ge,t.reportAllChanges);let c=J(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(Se(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{r=f("LCP"),n=p(e,r,ge,t.reportAllChanges),j(()=>{r.value=performance.now()-d.timeStamp,n(true);});});}});},ve=[800,1800],N=e=>{document.prerendering?E(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},Le=(e,t={})=>{let o=f("TTFB"),n=p(e,o,ve,t.reportAllChanges);N(()=>{let r=z();r&&(o.value=Math.max(r.responseStart-y(),0),o.entries=[r],n(true),v(()=>{o=f("TTFB",0),n=p(e,o,ve,t.reportAllChanges),n(true);}));});};function G(){ye(S),be(S),xe(S),X(S),Le(S);}function S(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var M=XMLHttpRequest.prototype,We=M.open,He=M.send;function Ue(){M.open=function(...t){this.url=t[1],this.method=t[0],We.apply(this,t);},M.send=function(...t){this.startTime=Date.now();let o=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:n,duration:r,startTime:i,endTime:a,method:s,response:c}=this,{url:l}=this,d=n,h=l;try{d=JSON.parse(c).code;}catch{}x(h)&&(h="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:n,duration:r,request_url:h,method:s||"GET",code:d,sub_type:"xhr"}),this.removeEventListener("loadend",o,true);};this.addEventListener("loadend",o,true),He.apply(this,t);};}function K(){Ue();}var _e=window.fetch;function qe(){window.fetch=function(t,o){let n=Date.now(),r=t;x(r)&&(r="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:r,method:o?.method||"GET",sub_type:"fetch"};return _e(t,o).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Y(){qe();}function Q(){K(),Y();}var Pe=false,Be={init(e={}){ee(e),Pe||(D(),G(),Q(),Pe=true);}},yt=Be;
3
- module.exports=yt;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var O={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},w="",h=O;function ee(e){for(let t in O)e[t]&&(O[t]=e[t]);e.version&&(w=e.version);}var y=new Map;function te(){return y}function ne(e,t){y.get(e)?y.get(e).push(t):y.set(e,[t]);}function re(){y.clear();}function Ee(e,t,r=false){if(h.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(h.userId)||0,source:h.source,type:e,url:window.location.href,data:t});if(r){R(h.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{R(h.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{R(h.reportUrl,n);});}var oe=null;function u(e,t,r=3e3){ne(e,t),clearTimeout(oe),oe=setTimeout(()=>{let n=te();if(n.size){for(let[o,i]of n)Ee(o,i);re();}},r);}function R(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Me(e,t);}function Me(e,t){let r=new XMLHttpRequest;r.open("POST",e,true),r.setRequestHeader("Content-Type","application/json"),r.send(t);}var Ae=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:r=(o,i)=>{},threshold:n=.9}={})=>{let o=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([o/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,L])=>{let T=document.elementFromPoint(d,L),m=T?.tagName||"NULL";c.push({x:d,y:L,tag:m}),(!T||t.includes(m))&&s++;});let l=s/e>=n;r(l,c);},Fe=(e,t=300,r=false)=>{let n=null;return function(...o){let i=this;n&&clearTimeout(n),r&&!n&&e.apply(i,o),n=setTimeout(()=>{r||e.apply(i,o),n=null;},t);}},Oe=Fe(e=>{Ae({onDetected:(t,r)=>{e(t),P=null;}});},1e3),P=null,ie=()=>(P||(P=new Promise(e=>{setTimeout(()=>{Oe(e);},3e3);})),P),se=()=>{let e=navigator.userAgent,t="Unknown",r="Unknown";return /edg/i.test(e)?(t="Edge",r=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",r=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",r=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",r=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",r=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",r=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:r}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},b=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},I=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},ce=e=>{if(!e)return 0;try{if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return e.byteLength;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(e instanceof FormData){let t=0;for(let[r,n]of e.entries())t+=new TextEncoder().encode(r).length,typeof n=="string"?t+=new TextEncoder().encode(n).length:n instanceof Blob&&(t+=n.size);return t}}catch{return 0}return 0};var le=se(),B={user_agent:le.name+le.version,platform:ae()},ke=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Re=10;function Be(e){let t=e.match(ke);if(!t)return {};let r=t[2]||"<anonymous>",n=t[1]||"",o=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:r,functionName:n,lineno:o,colno:i}}function de(e){let{stack:t}=e;if(!t)return [];let r=[];for(let n of t.split(`
2
+ `).slice(1)){let o=Be(n);o.filename&&r.push(o);}return r.slice(0,Re)}function q(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let r={error_type:"resource",...B,msg:I(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:w};u("error",r);}else {let r=de(e.error),n=e.message;if(r?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=r[0];n=`${e.message},${a},line:${c}:${l}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o),await ie()&&u("error",{...o,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,r=de(t),n=t;if(r?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=r[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o);});}var we=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(we=t.timeStamp,e(t));},true);},f=(e,t,r,n)=>{let o,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(o??0),(i||o===void 0)&&(o=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,r),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},V=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},C=()=>V()?.activationStart??0,p=(e,t=-1)=>{let r=V(),n="navigate";return we>=0?n="back-forward-cache":r&&(document.prerendering||C()>0?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},D=new WeakMap;function J(e,t){return D.get(e)||D.set(e,new t),D.get(e)}var U=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let r=this.o[0],n=this.o.at(-1);this.i&&r&&n&&t.startTime-n.startTime<1e3&&t.startTime-r.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},S=(e,t,r={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(o=>{Promise.resolve().then(()=>{t(o.getEntries());});});return n.observe({type:e,buffered:!0,...r}),n}}catch{}},X=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,ye=new Set,ue=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,W=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of ye)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",W,true));}},M=()=>{if(g<0){let e=C();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(r=>r.name==="hidden"&&r.startTime>e)[0]?.startTime)??ue(),addEventListener("visibilitychange",W,true),addEventListener("prerenderingchange",W,true),v(()=>{setTimeout(()=>{g=ue();});});}return {get firstHiddenTime(){return g},onHidden(e){ye.add(e);}}},A=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},fe=[1800,3e3],G=(e,t={})=>{A(()=>{let r=M(),n,o=p("FCP"),i=S("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<r.firstHiddenTime&&(o.value=Math.max(s.startTime-C(),0),o.entries.push(s),n(true)));});i&&(n=f(e,o,fe,t.reportAllChanges),v(a=>{o=p("FCP"),n=f(e,o,fe,t.reportAllChanges),j(()=>{o.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],Ce=(e,t={})=>{let r=M();G(X(()=>{let n,o=p("CLS",0),i=J(t,U),a=c=>{for(let l of c)i.h(l);i.i>o.value&&(o.value=i.i,o.entries=i.o,n());},s=S("layout-shift",a);s&&(n=f(e,o,pe,t.reportAllChanges),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,o=p("CLS",0),n=f(e,o,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Se=0,$=1/0,E=0,qe=e=>{for(let t of e)t.interactionId&&($=Math.min($,t.interactionId),E=Math.max(E,t.interactionId),Se=E?(E-$)/7+1:0);},_,he=()=>_?Se:performance.interactionCount??0,De=()=>{"interactionCount"in performance||_||(_=S("event",qe,{type:"event",buffered:true,durationThreshold:0}));},me=0,H=class{u=[];l=new Map;m;p;v(){me=he(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((he()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let r=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>r.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((o,i)=>i.P-o.P),this.u.length>10){let o=this.u.splice(10);for(let i of o)this.l.delete(i.id);}this.p?.(n);}}},xe=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=X(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},ge=[200,500],Le=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let r=M();A(()=>{De();let n,o=p("INP"),i=J(t,H),a=c=>{xe(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==o.value&&(o.value=l.P,o.entries=l.entries,n());});},s=S("event",a,{durationThreshold:t.durationThreshold??40});n=f(e,o,ge,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),o=p("INP"),n=f(e,o,ge,t.reportAllChanges);}));});},z=class{m;h(t){this.m?.(t);}},ve=[2500,4e3],Pe=(e,t={})=>{A(()=>{let r=M(),n,o=p("LCP"),i=J(t,z),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<r.firstHiddenTime&&(o.value=Math.max(l.startTime-C(),0),o.entries=[l],n());},s=S("largest-contentful-paint",a);if(s){n=f(e,o,ve,t.reportAllChanges);let c=X(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(xe(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{o=p("LCP"),n=f(e,o,ve,t.reportAllChanges),j(()=>{o.value=performance.now()-d.timeStamp,n(true);});});}});},Te=[800,1800],N=e=>{document.prerendering?A(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},be=(e,t={})=>{let r=p("TTFB"),n=f(e,r,Te,t.reportAllChanges);N(()=>{let o=V();o&&(r.value=Math.max(o.responseStart-C(),0),r.entries=[o],n(true),v(()=>{r=p("TTFB",0),n=f(e,r,Te,t.reportAllChanges),n(true);}));});};function K(){Ce(x),Le(x),Pe(x),G(x),be(x);}function x(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var F=XMLHttpRequest.prototype,$e=F.open,Ue=F.send;function We(){F.open=function(...t){this.url=t[1],this.method=t[0],$e.apply(this,t);},F.send=function(...t){this.startTime=Date.now();let r=t[0];this.requestSize=ce(r);let n=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:o,duration:i,startTime:a,endTime:s,method:c,response:l,requestSize:d}=this,{url:L}=this,T=o,m=L;try{T=JSON.parse(l).code;}catch{}b(m)&&(m="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:o,duration:i,request_url:m,method:c||"GET",code:T,sub_type:"xhr",request_size:d}),this.removeEventListener("loadend",n,true);};this.addEventListener("loadend",n,true),Ue.apply(this,t);};}function Y(){We();}var _e=window.fetch;function He(){window.fetch=function(t,r){let n=Date.now(),o=t;b(o)&&(o="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:o,method:r?.method||"GET",sub_type:"fetch"};return _e(t,r).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Q(){He();}function Z(){Y(),Q();}var Ie=false,ze={init(e={}){ee(e),Ie||(q(),K(),Z(),Ie=true);}},St=ze;
3
+ module.exports=St;//# sourceMappingURL=index.cjs.map
4
4
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY',\"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => {},\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n console.log('isWhite: ', isWhite);\n resolve(isWhite);\n pendingPromise = null; \n },\n });\n}, 1000); \n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2); \n } catch (e) {\n return String(data);\n }\n}\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
1
+ {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","getRequestBodySize","body","total","value","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","requestSize","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY', \"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => { },\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n resolve(isWhite);\n pendingPromise = null;\n },\n });\n}, 1000);\n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2);\n } catch (e) {\n return String(data);\n }\n}\n\nexport const getRequestBodySize = (body) => {\n if (!body) return 0;\n try {\n\n if (typeof body === \"string\") return new TextEncoder().encode(body).length;\n if (body instanceof Blob) return body.size;\n if (body instanceof ArrayBuffer) return body.byteLength;\n if (ArrayBuffer.isView(body)) return body.byteLength;\n if (body instanceof URLSearchParams) return new TextEncoder().encode(body.toString()).length;\n\n if (body instanceof FormData) {\n let total = 0;\n for (const [key, value] of body.entries()) {\n total += new TextEncoder().encode(key).length;\n if (typeof value === \"string\") {\n total += new TextEncoder().encode(value).length;\n } else if (value instanceof Blob) {\n total += value.size;\n }\n }\n return total;\n }\n } catch (error) {\n return 0;\n }\n\n return 0;\n}\n\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl,getRequestBodySize} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const body = args[0];\n this.requestSize = getRequestBodySize(body);\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response,requestSize } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n request_size: requestSize,\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
@@ -1,4 +1,4 @@
1
- var ReportingLib=(function(){'use strict';var A={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},T="",m=A;function ee(e){for(let t in A)e[t]&&(A[t]=e[t]);e.version&&(T=e.version);}var w=new Map;function te(){return w}function ne(e,t){w.get(e)?w.get(e).push(t):w.set(e,[t]);}function oe(){w.clear();}function Ie(e,t,o=false){if(m.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(m.userId)||0,source:m.source,type:e,url:window.location.href,data:t});if(o){k(m.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{k(m.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{k(m.reportUrl,n);});}var re=null;function u(e,t,o=3e3){ne(e,t),clearTimeout(re),re=setTimeout(()=>{let n=te();if(n.size){for(let[r,i]of n)Ie(r,i);oe();}},o);}function k(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Ee(e,t);}function Ee(e,t){let o=new XMLHttpRequest;o.open("POST",e,true),o.setRequestHeader("Content-Type","application/json"),o.send(t);}var Me=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:o=(r,i)=>{},threshold:n=.9}={})=>{let r=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([r/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,h])=>{let O=document.elementFromPoint(d,h),Z=O?.tagName||"NULL";c.push({x:d,y:h,tag:Z}),(!O||t.includes(Z))&&s++;});let l=s/e>=n;o(l,c);},Oe=(e,t=300,o=false)=>{let n=null;return function(...r){let i=this;n&&clearTimeout(n),o&&!n&&e.apply(i,r),n=setTimeout(()=>{o||e.apply(i,r),n=null;},t);}},Ae=Oe(e=>{Me({onDetected:(t,o)=>{console.log("isWhite: ",t),e(t),b=null;}});},1e3),b=null,ie=()=>(b||(b=new Promise(e=>{setTimeout(()=>{Ae(e);},3e3);})),b),se=()=>{let e=navigator.userAgent,t="Unknown",o="Unknown";return /edg/i.test(e)?(t="Edge",o=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",o=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",o=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",o=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",o=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",o=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:o}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},x=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},L=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}};var ce=se(),R={user_agent:ce.name+ce.version,platform:ae()},Fe=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ke=10;function Re(e){let t=e.match(Fe);if(!t)return {};let o=t[2]||"<anonymous>",n=t[1]||"",r=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:o,functionName:n,lineno:r,colno:i}}function le(e){let{stack:t}=e;if(!t)return [];let o=[];for(let n of t.split(`
2
- `).slice(1)){let r=Re(n);r.filename&&o.push(r);}return o.slice(0,ke)}function D(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let o={error_type:"resource",...R,msg:L(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:T};u("error",o);}else {let o=le(e.error),n=e.message;if(o?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=o[0];n=`${e.message},${a},line:${c}:${l}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r),await ie()&&u("error",{...r,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,o=le(t),n=t;if(o?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=o[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r);});}var Te=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(Te=t.timeStamp,e(t));},true);},p=(e,t,o,n)=>{let r,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(r??0),(i||r===void 0)&&(r=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,o),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},z=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},y=()=>z()?.activationStart??0,f=(e,t=-1)=>{let o=z(),n="navigate";return Te>=0?n="back-forward-cache":o&&(document.prerendering||y()>0?n="prerender":document.wasDiscarded?n="restore":o.type&&(n=o.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},$=new WeakMap;function V(e,t){return $.get(e)||$.set(e,new t),$.get(e)}var H=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let o=this.o[0],n=this.o.at(-1);this.i&&o&&n&&t.startTime-n.startTime<1e3&&t.startTime-o.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},C=(e,t,o={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(r=>{Promise.resolve().then(()=>{t(r.getEntries());});});return n.observe({type:e,buffered:!0,...o}),n}}catch{}},J=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,we=new Set,de=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,U=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of we)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",U,true));}},I=()=>{if(g<0){let e=y();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(o=>o.name==="hidden"&&o.startTime>e)[0]?.startTime)??de(),addEventListener("visibilitychange",U,true),addEventListener("prerenderingchange",U,true),v(()=>{setTimeout(()=>{g=de();});});}return {get firstHiddenTime(){return g},onHidden(e){we.add(e);}}},E=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},ue=[1800,3e3],X=(e,t={})=>{E(()=>{let o=I(),n,r=f("FCP"),i=C("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<o.firstHiddenTime&&(r.value=Math.max(s.startTime-y(),0),r.entries.push(s),n(true)));});i&&(n=p(e,r,ue,t.reportAllChanges),v(a=>{r=f("FCP"),n=p(e,r,ue,t.reportAllChanges),j(()=>{r.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],ye=(e,t={})=>{let o=I();X(J(()=>{let n,r=f("CLS",0),i=V(t,H),a=c=>{for(let l of c)i.h(l);i.i>r.value&&(r.value=i.i,r.entries=i.o,n());},s=C("layout-shift",a);s&&(n=p(e,r,pe,t.reportAllChanges),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,r=f("CLS",0),n=p(e,r,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Ce=0,W=1/0,P=0,De=e=>{for(let t of e)t.interactionId&&(W=Math.min(W,t.interactionId),P=Math.max(P,t.interactionId),Ce=P?(P-W)/7+1:0);},_,fe=()=>_?Ce:performance.interactionCount??0,$e=()=>{"interactionCount"in performance||_||(_=C("event",De,{type:"event",buffered:true,durationThreshold:0}));},me=0,q=class{u=[];l=new Map;m;p;v(){me=fe(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((fe()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let o=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>o.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((r,i)=>i.P-r.P),this.u.length>10){let r=this.u.splice(10);for(let i of r)this.l.delete(i.id);}this.p?.(n);}}},Se=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=J(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},he=[200,500],be=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let o=I();E(()=>{$e();let n,r=f("INP"),i=V(t,q),a=c=>{Se(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==r.value&&(r.value=l.P,r.entries=l.entries,n());});},s=C("event",a,{durationThreshold:t.durationThreshold??40});n=p(e,r,he,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),r=f("INP"),n=p(e,r,he,t.reportAllChanges);}));});},B=class{m;h(t){this.m?.(t);}},ge=[2500,4e3],xe=(e,t={})=>{E(()=>{let o=I(),n,r=f("LCP"),i=V(t,B),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<o.firstHiddenTime&&(r.value=Math.max(l.startTime-y(),0),r.entries=[l],n());},s=C("largest-contentful-paint",a);if(s){n=p(e,r,ge,t.reportAllChanges);let c=J(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(Se(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{r=f("LCP"),n=p(e,r,ge,t.reportAllChanges),j(()=>{r.value=performance.now()-d.timeStamp,n(true);});});}});},ve=[800,1800],N=e=>{document.prerendering?E(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},Le=(e,t={})=>{let o=f("TTFB"),n=p(e,o,ve,t.reportAllChanges);N(()=>{let r=z();r&&(o.value=Math.max(r.responseStart-y(),0),o.entries=[r],n(true),v(()=>{o=f("TTFB",0),n=p(e,o,ve,t.reportAllChanges),n(true);}));});};function G(){ye(S),be(S),xe(S),X(S),Le(S);}function S(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var M=XMLHttpRequest.prototype,We=M.open,He=M.send;function Ue(){M.open=function(...t){this.url=t[1],this.method=t[0],We.apply(this,t);},M.send=function(...t){this.startTime=Date.now();let o=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:n,duration:r,startTime:i,endTime:a,method:s,response:c}=this,{url:l}=this,d=n,h=l;try{d=JSON.parse(c).code;}catch{}x(h)&&(h="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:n,duration:r,request_url:h,method:s||"GET",code:d,sub_type:"xhr"}),this.removeEventListener("loadend",o,true);};this.addEventListener("loadend",o,true),He.apply(this,t);};}function K(){Ue();}var _e=window.fetch;function qe(){window.fetch=function(t,o){let n=Date.now(),r=t;x(r)&&(r="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:r,method:o?.method||"GET",sub_type:"fetch"};return _e(t,o).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Y(){qe();}function Q(){K(),Y();}var Pe=false,Be={init(e={}){ee(e),Pe||(D(),G(),Q(),Pe=true);}},yt=Be;
3
- return yt;})();//# sourceMappingURL=index.global.js.map
1
+ var ReportingLib=(function(){'use strict';var O={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},w="",h=O;function ee(e){for(let t in O)e[t]&&(O[t]=e[t]);e.version&&(w=e.version);}var y=new Map;function te(){return y}function ne(e,t){y.get(e)?y.get(e).push(t):y.set(e,[t]);}function re(){y.clear();}function Ee(e,t,r=false){if(h.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(h.userId)||0,source:h.source,type:e,url:window.location.href,data:t});if(r){R(h.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{R(h.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{R(h.reportUrl,n);});}var oe=null;function u(e,t,r=3e3){ne(e,t),clearTimeout(oe),oe=setTimeout(()=>{let n=te();if(n.size){for(let[o,i]of n)Ee(o,i);re();}},r);}function R(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Me(e,t);}function Me(e,t){let r=new XMLHttpRequest;r.open("POST",e,true),r.setRequestHeader("Content-Type","application/json"),r.send(t);}var Ae=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:r=(o,i)=>{},threshold:n=.9}={})=>{let o=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([o/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,L])=>{let T=document.elementFromPoint(d,L),m=T?.tagName||"NULL";c.push({x:d,y:L,tag:m}),(!T||t.includes(m))&&s++;});let l=s/e>=n;r(l,c);},Fe=(e,t=300,r=false)=>{let n=null;return function(...o){let i=this;n&&clearTimeout(n),r&&!n&&e.apply(i,o),n=setTimeout(()=>{r||e.apply(i,o),n=null;},t);}},Oe=Fe(e=>{Ae({onDetected:(t,r)=>{e(t),P=null;}});},1e3),P=null,ie=()=>(P||(P=new Promise(e=>{setTimeout(()=>{Oe(e);},3e3);})),P),se=()=>{let e=navigator.userAgent,t="Unknown",r="Unknown";return /edg/i.test(e)?(t="Edge",r=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",r=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",r=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",r=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",r=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",r=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:r}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},b=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},I=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},ce=e=>{if(!e)return 0;try{if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return e.byteLength;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(e instanceof FormData){let t=0;for(let[r,n]of e.entries())t+=new TextEncoder().encode(r).length,typeof n=="string"?t+=new TextEncoder().encode(n).length:n instanceof Blob&&(t+=n.size);return t}}catch{return 0}return 0};var le=se(),B={user_agent:le.name+le.version,platform:ae()},ke=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Re=10;function Be(e){let t=e.match(ke);if(!t)return {};let r=t[2]||"<anonymous>",n=t[1]||"",o=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:r,functionName:n,lineno:o,colno:i}}function de(e){let{stack:t}=e;if(!t)return [];let r=[];for(let n of t.split(`
2
+ `).slice(1)){let o=Be(n);o.filename&&r.push(o);}return r.slice(0,Re)}function q(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let r={error_type:"resource",...B,msg:I(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:w};u("error",r);}else {let r=de(e.error),n=e.message;if(r?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=r[0];n=`${e.message},${a},line:${c}:${l}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o),await ie()&&u("error",{...o,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,r=de(t),n=t;if(r?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=r[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o);});}var we=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(we=t.timeStamp,e(t));},true);},f=(e,t,r,n)=>{let o,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(o??0),(i||o===void 0)&&(o=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,r),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},V=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},C=()=>V()?.activationStart??0,p=(e,t=-1)=>{let r=V(),n="navigate";return we>=0?n="back-forward-cache":r&&(document.prerendering||C()>0?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},D=new WeakMap;function J(e,t){return D.get(e)||D.set(e,new t),D.get(e)}var U=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let r=this.o[0],n=this.o.at(-1);this.i&&r&&n&&t.startTime-n.startTime<1e3&&t.startTime-r.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},S=(e,t,r={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(o=>{Promise.resolve().then(()=>{t(o.getEntries());});});return n.observe({type:e,buffered:!0,...r}),n}}catch{}},X=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,ye=new Set,ue=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,W=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of ye)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",W,true));}},M=()=>{if(g<0){let e=C();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(r=>r.name==="hidden"&&r.startTime>e)[0]?.startTime)??ue(),addEventListener("visibilitychange",W,true),addEventListener("prerenderingchange",W,true),v(()=>{setTimeout(()=>{g=ue();});});}return {get firstHiddenTime(){return g},onHidden(e){ye.add(e);}}},A=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},fe=[1800,3e3],G=(e,t={})=>{A(()=>{let r=M(),n,o=p("FCP"),i=S("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<r.firstHiddenTime&&(o.value=Math.max(s.startTime-C(),0),o.entries.push(s),n(true)));});i&&(n=f(e,o,fe,t.reportAllChanges),v(a=>{o=p("FCP"),n=f(e,o,fe,t.reportAllChanges),j(()=>{o.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],Ce=(e,t={})=>{let r=M();G(X(()=>{let n,o=p("CLS",0),i=J(t,U),a=c=>{for(let l of c)i.h(l);i.i>o.value&&(o.value=i.i,o.entries=i.o,n());},s=S("layout-shift",a);s&&(n=f(e,o,pe,t.reportAllChanges),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,o=p("CLS",0),n=f(e,o,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Se=0,$=1/0,E=0,qe=e=>{for(let t of e)t.interactionId&&($=Math.min($,t.interactionId),E=Math.max(E,t.interactionId),Se=E?(E-$)/7+1:0);},_,he=()=>_?Se:performance.interactionCount??0,De=()=>{"interactionCount"in performance||_||(_=S("event",qe,{type:"event",buffered:true,durationThreshold:0}));},me=0,H=class{u=[];l=new Map;m;p;v(){me=he(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((he()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let r=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>r.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((o,i)=>i.P-o.P),this.u.length>10){let o=this.u.splice(10);for(let i of o)this.l.delete(i.id);}this.p?.(n);}}},xe=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=X(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},ge=[200,500],Le=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let r=M();A(()=>{De();let n,o=p("INP"),i=J(t,H),a=c=>{xe(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==o.value&&(o.value=l.P,o.entries=l.entries,n());});},s=S("event",a,{durationThreshold:t.durationThreshold??40});n=f(e,o,ge,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),o=p("INP"),n=f(e,o,ge,t.reportAllChanges);}));});},z=class{m;h(t){this.m?.(t);}},ve=[2500,4e3],Pe=(e,t={})=>{A(()=>{let r=M(),n,o=p("LCP"),i=J(t,z),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<r.firstHiddenTime&&(o.value=Math.max(l.startTime-C(),0),o.entries=[l],n());},s=S("largest-contentful-paint",a);if(s){n=f(e,o,ve,t.reportAllChanges);let c=X(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(xe(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{o=p("LCP"),n=f(e,o,ve,t.reportAllChanges),j(()=>{o.value=performance.now()-d.timeStamp,n(true);});});}});},Te=[800,1800],N=e=>{document.prerendering?A(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},be=(e,t={})=>{let r=p("TTFB"),n=f(e,r,Te,t.reportAllChanges);N(()=>{let o=V();o&&(r.value=Math.max(o.responseStart-C(),0),r.entries=[o],n(true),v(()=>{r=p("TTFB",0),n=f(e,r,Te,t.reportAllChanges),n(true);}));});};function K(){Ce(x),Le(x),Pe(x),G(x),be(x);}function x(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var F=XMLHttpRequest.prototype,$e=F.open,Ue=F.send;function We(){F.open=function(...t){this.url=t[1],this.method=t[0],$e.apply(this,t);},F.send=function(...t){this.startTime=Date.now();let r=t[0];this.requestSize=ce(r);let n=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:o,duration:i,startTime:a,endTime:s,method:c,response:l,requestSize:d}=this,{url:L}=this,T=o,m=L;try{T=JSON.parse(l).code;}catch{}b(m)&&(m="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:o,duration:i,request_url:m,method:c||"GET",code:T,sub_type:"xhr",request_size:d}),this.removeEventListener("loadend",n,true);};this.addEventListener("loadend",n,true),Ue.apply(this,t);};}function Y(){We();}var _e=window.fetch;function He(){window.fetch=function(t,r){let n=Date.now(),o=t;b(o)&&(o="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:o,method:r?.method||"GET",sub_type:"fetch"};return _e(t,r).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Q(){He();}function Z(){Y(),Q();}var Ie=false,ze={init(e={}){ee(e),Ie||(q(),K(),Z(),Ie=true);}},St=ze;
3
+ return St;})();//# sourceMappingURL=index.global.js.map
4
4
  //# sourceMappingURL=index.global.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY',\"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => {},\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n console.log('isWhite: ', isWhite);\n resolve(isWhite);\n pendingPromise = null; \n },\n });\n}, 1000); \n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2); \n } catch (e) {\n return String(data);\n }\n}\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
1
+ {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","getRequestBodySize","body","total","value","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","requestSize","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY', \"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => { },\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n resolve(isWhite);\n pendingPromise = null;\n },\n });\n}, 1000);\n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2);\n } catch (e) {\n return String(data);\n }\n}\n\nexport const getRequestBodySize = (body) => {\n if (!body) return 0;\n try {\n\n if (typeof body === \"string\") return new TextEncoder().encode(body).length;\n if (body instanceof Blob) return body.size;\n if (body instanceof ArrayBuffer) return body.byteLength;\n if (ArrayBuffer.isView(body)) return body.byteLength;\n if (body instanceof URLSearchParams) return new TextEncoder().encode(body.toString()).length;\n\n if (body instanceof FormData) {\n let total = 0;\n for (const [key, value] of body.entries()) {\n total += new TextEncoder().encode(key).length;\n if (typeof value === \"string\") {\n total += new TextEncoder().encode(value).length;\n } else if (value instanceof Blob) {\n total += value.size;\n }\n }\n return total;\n }\n } catch (error) {\n return 0;\n }\n\n return 0;\n}\n\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl,getRequestBodySize} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const body = args[0];\n this.requestSize = getRequestBodySize(body);\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response,requestSize } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n request_size: requestSize,\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var A={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},T="",m=A;function ee(e){for(let t in A)e[t]&&(A[t]=e[t]);e.version&&(T=e.version);}var w=new Map;function te(){return w}function ne(e,t){w.get(e)?w.get(e).push(t):w.set(e,[t]);}function oe(){w.clear();}function Ie(e,t,o=false){if(m.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(m.userId)||0,source:m.source,type:e,url:window.location.href,data:t});if(o){k(m.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{k(m.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{k(m.reportUrl,n);});}var re=null;function u(e,t,o=3e3){ne(e,t),clearTimeout(re),re=setTimeout(()=>{let n=te();if(n.size){for(let[r,i]of n)Ie(r,i);oe();}},o);}function k(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Ee(e,t);}function Ee(e,t){let o=new XMLHttpRequest;o.open("POST",e,true),o.setRequestHeader("Content-Type","application/json"),o.send(t);}var Me=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:o=(r,i)=>{},threshold:n=.9}={})=>{let r=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([r/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,h])=>{let O=document.elementFromPoint(d,h),Z=O?.tagName||"NULL";c.push({x:d,y:h,tag:Z}),(!O||t.includes(Z))&&s++;});let l=s/e>=n;o(l,c);},Oe=(e,t=300,o=false)=>{let n=null;return function(...r){let i=this;n&&clearTimeout(n),o&&!n&&e.apply(i,r),n=setTimeout(()=>{o||e.apply(i,r),n=null;},t);}},Ae=Oe(e=>{Me({onDetected:(t,o)=>{console.log("isWhite: ",t),e(t),b=null;}});},1e3),b=null,ie=()=>(b||(b=new Promise(e=>{setTimeout(()=>{Ae(e);},3e3);})),b),se=()=>{let e=navigator.userAgent,t="Unknown",o="Unknown";return /edg/i.test(e)?(t="Edge",o=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",o=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",o=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",o=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",o=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",o=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:o}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},x=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},L=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}};var ce=se(),R={user_agent:ce.name+ce.version,platform:ae()},Fe=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ke=10;function Re(e){let t=e.match(Fe);if(!t)return {};let o=t[2]||"<anonymous>",n=t[1]||"",r=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:o,functionName:n,lineno:r,colno:i}}function le(e){let{stack:t}=e;if(!t)return [];let o=[];for(let n of t.split(`
2
- `).slice(1)){let r=Re(n);r.filename&&o.push(r);}return o.slice(0,ke)}function D(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let o={error_type:"resource",...R,msg:L(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:T};u("error",o);}else {let o=le(e.error),n=e.message;if(o?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=o[0];n=`${e.message},${a},line:${c}:${l}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r),await ie()&&u("error",{...r,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,o=le(t),n=t;if(o?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=o[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let r={error_type:"js",msg:L(n),...R,version:T};u("error",r);});}var Te=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(Te=t.timeStamp,e(t));},true);},p=(e,t,o,n)=>{let r,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(r??0),(i||r===void 0)&&(r=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,o),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},z=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},y=()=>z()?.activationStart??0,f=(e,t=-1)=>{let o=z(),n="navigate";return Te>=0?n="back-forward-cache":o&&(document.prerendering||y()>0?n="prerender":document.wasDiscarded?n="restore":o.type&&(n=o.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},$=new WeakMap;function V(e,t){return $.get(e)||$.set(e,new t),$.get(e)}var H=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let o=this.o[0],n=this.o.at(-1);this.i&&o&&n&&t.startTime-n.startTime<1e3&&t.startTime-o.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},C=(e,t,o={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(r=>{Promise.resolve().then(()=>{t(r.getEntries());});});return n.observe({type:e,buffered:!0,...o}),n}}catch{}},J=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,we=new Set,de=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,U=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of we)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",U,true));}},I=()=>{if(g<0){let e=y();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(o=>o.name==="hidden"&&o.startTime>e)[0]?.startTime)??de(),addEventListener("visibilitychange",U,true),addEventListener("prerenderingchange",U,true),v(()=>{setTimeout(()=>{g=de();});});}return {get firstHiddenTime(){return g},onHidden(e){we.add(e);}}},E=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},ue=[1800,3e3],X=(e,t={})=>{E(()=>{let o=I(),n,r=f("FCP"),i=C("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<o.firstHiddenTime&&(r.value=Math.max(s.startTime-y(),0),r.entries.push(s),n(true)));});i&&(n=p(e,r,ue,t.reportAllChanges),v(a=>{r=f("FCP"),n=p(e,r,ue,t.reportAllChanges),j(()=>{r.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],ye=(e,t={})=>{let o=I();X(J(()=>{let n,r=f("CLS",0),i=V(t,H),a=c=>{for(let l of c)i.h(l);i.i>r.value&&(r.value=i.i,r.entries=i.o,n());},s=C("layout-shift",a);s&&(n=p(e,r,pe,t.reportAllChanges),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,r=f("CLS",0),n=p(e,r,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Ce=0,W=1/0,P=0,De=e=>{for(let t of e)t.interactionId&&(W=Math.min(W,t.interactionId),P=Math.max(P,t.interactionId),Ce=P?(P-W)/7+1:0);},_,fe=()=>_?Ce:performance.interactionCount??0,$e=()=>{"interactionCount"in performance||_||(_=C("event",De,{type:"event",buffered:true,durationThreshold:0}));},me=0,q=class{u=[];l=new Map;m;p;v(){me=fe(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((fe()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let o=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>o.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((r,i)=>i.P-r.P),this.u.length>10){let r=this.u.splice(10);for(let i of r)this.l.delete(i.id);}this.p?.(n);}}},Se=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=J(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},he=[200,500],be=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let o=I();E(()=>{$e();let n,r=f("INP"),i=V(t,q),a=c=>{Se(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==r.value&&(r.value=l.P,r.entries=l.entries,n());});},s=C("event",a,{durationThreshold:t.durationThreshold??40});n=p(e,r,he,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),o.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),r=f("INP"),n=p(e,r,he,t.reportAllChanges);}));});},B=class{m;h(t){this.m?.(t);}},ge=[2500,4e3],xe=(e,t={})=>{E(()=>{let o=I(),n,r=f("LCP"),i=V(t,B),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<o.firstHiddenTime&&(r.value=Math.max(l.startTime-y(),0),r.entries=[l],n());},s=C("largest-contentful-paint",a);if(s){n=p(e,r,ge,t.reportAllChanges);let c=J(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(Se(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{r=f("LCP"),n=p(e,r,ge,t.reportAllChanges),j(()=>{r.value=performance.now()-d.timeStamp,n(true);});});}});},ve=[800,1800],N=e=>{document.prerendering?E(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},Le=(e,t={})=>{let o=f("TTFB"),n=p(e,o,ve,t.reportAllChanges);N(()=>{let r=z();r&&(o.value=Math.max(r.responseStart-y(),0),o.entries=[r],n(true),v(()=>{o=f("TTFB",0),n=p(e,o,ve,t.reportAllChanges),n(true);}));});};function G(){ye(S),be(S),xe(S),X(S),Le(S);}function S(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var M=XMLHttpRequest.prototype,We=M.open,He=M.send;function Ue(){M.open=function(...t){this.url=t[1],this.method=t[0],We.apply(this,t);},M.send=function(...t){this.startTime=Date.now();let o=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:n,duration:r,startTime:i,endTime:a,method:s,response:c}=this,{url:l}=this,d=n,h=l;try{d=JSON.parse(c).code;}catch{}x(h)&&(h="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:n,duration:r,request_url:h,method:s||"GET",code:d,sub_type:"xhr"}),this.removeEventListener("loadend",o,true);};this.addEventListener("loadend",o,true),He.apply(this,t);};}function K(){Ue();}var _e=window.fetch;function qe(){window.fetch=function(t,o){let n=Date.now(),r=t;x(r)&&(r="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:r,method:o?.method||"GET",sub_type:"fetch"};return _e(t,o).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Y(){qe();}function Q(){K(),Y();}var Pe=false,Be={init(e={}){ee(e),Pe||(D(),G(),Q(),Pe=true);}},yt=Be;
3
- export{yt as default};//# sourceMappingURL=index.js.map
1
+ var O={source:"mbp",userId:"",reportUrl:"http://localhost:3001/report/actions",trackerAll:false},w="",h=O;function ee(e){for(let t in O)e[t]&&(O[t]=e[t]);e.version&&(w=e.version);}var y=new Map;function te(){return y}function ne(e,t){y.get(e)?y.get(e).push(t):y.set(e,[t]);}function re(){y.clear();}function Ee(e,t,r=false){if(h.reportUrl===null){console.error("\u8BF7\u5148\u914D\u7F6E\u4E0A\u62A5\u5730\u5740");return}let n=JSON.stringify({user_id:Number(h.userId)||0,source:h.source,type:e,url:window.location.href,data:t});if(r){R(h.reportUrl,n);return}window.requestIdleCallback?window.requestIdleCallback(()=>{R(h.reportUrl,n);},{timeout:3e3}):setTimeout(()=>{R(h.reportUrl,n);});}var oe=null;function u(e,t,r=3e3){ne(e,t),clearTimeout(oe),oe=setTimeout(()=>{let n=te();if(n.size){for(let[o,i]of n)Ee(o,i);re();}},r);}function R(e,t){navigator.sendBeacon?navigator.sendBeacon(e,t):Me(e,t);}function Me(e,t){let r=new XMLHttpRequest;r.open("POST",e,true),r.setRequestHeader("Content-Type","application/json"),r.send(t);}var Ae=({samplePoints:e=6,whiteTags:t=["HTML","BODY","IFRAME"],onDetected:r=(o,i)=>{},threshold:n=.9}={})=>{let o=window.innerWidth,i=window.innerHeight,a=[];for(let d=1;d<=e;d++)a.push([o/2,i/(e+1)*d]);console.log("points: ",a);let s=0,c=[];a.forEach(([d,L])=>{let T=document.elementFromPoint(d,L),m=T?.tagName||"NULL";c.push({x:d,y:L,tag:m}),(!T||t.includes(m))&&s++;});let l=s/e>=n;r(l,c);},Fe=(e,t=300,r=false)=>{let n=null;return function(...o){let i=this;n&&clearTimeout(n),r&&!n&&e.apply(i,o),n=setTimeout(()=>{r||e.apply(i,o),n=null;},t);}},Oe=Fe(e=>{Ae({onDetected:(t,r)=>{e(t),P=null;}});},1e3),P=null,ie=()=>(P||(P=new Promise(e=>{setTimeout(()=>{Oe(e);},3e3);})),P),se=()=>{let e=navigator.userAgent,t="Unknown",r="Unknown";return /edg/i.test(e)?(t="Edge",r=e.match(/edg\/([\d\.]+)/i)?.[1]):/opr/i.test(e)?(t="Opera",r=e.match(/opr\/([\d\.]+)/i)?.[1]):/chrome/i.test(e)?(t="Chrome",r=e.match(/chrome\/([\d\.]+)/i)?.[1]):/firefox/i.test(e)?(t="Firefox",r=e.match(/firefox\/([\d\.]+)/i)?.[1]):/safari/i.test(e)&&!/chrome/i.test(e)?(t="Safari",r=e.match(/version\/([\d\.]+)/i)?.[1]):(/msie/i.test(e)||/trident/i.test(e))&&(t="Internet Explorer",r=e.match(/(msie\s|rv:)([\d\.]+)/i)?.[2]),{name:t,version:r}},ae=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;return /windows phone/i.test(e)?"Windows Phone":/win/i.test(e)?"Windows":/android/i.test(e)?"Android":/iPad|iPhone|iPod/.test(e)&&!window.MSStream?"iOS":/Macintosh|MacIntel|MacPPC|Mac68K/.test(e)?"macOS":/Linux/.test(e)?"Linux":"Unknown OS"},b=e=>{try{let t=new URL(e.indexOf("http")===-1?`https:${e}`:e);return /^\/mbp\/\d+\/video\/[^/?#]+\.[^/?#]+$/i.test(t.pathname)}catch{return false}},I=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},ce=e=>{if(!e)return 0;try{if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return e.byteLength;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(e instanceof FormData){let t=0;for(let[r,n]of e.entries())t+=new TextEncoder().encode(r).length,typeof n=="string"?t+=new TextEncoder().encode(n).length:n instanceof Blob&&(t+=n.size);return t}}catch{return 0}return 0};var le=se(),B={user_agent:le.name+le.version,platform:ae()},ke=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Re=10;function Be(e){let t=e.match(ke);if(!t)return {};let r=t[2]||"<anonymous>",n=t[1]||"",o=parseInt(t[3],10)||void 0,i=parseInt(t[4],10)||void 0;return {filename:r,functionName:n,lineno:o,colno:i}}function de(e){let{stack:t}=e;if(!t)return [];let r=[];for(let n of t.split(`
2
+ `).slice(1)){let o=Be(n);o.filename&&r.push(o);}return r.slice(0,Re)}function q(){window.addEventListener("error",async function(e){let t=e.target;if(t&&(t.src||t.href)){let r={error_type:"resource",...B,msg:I(`\u52A0\u8F7D${t.tagName}\u5931\u8D25`),version:w};u("error",r);}else {let r=de(e.error),n=e.message;if(r?.[0]){let{filename:a,functionName:s,lineno:c,colno:l}=r[0];n=`${e.message},${a},line:${c}:${l}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o),await ie()&&u("error",{...o,error_type:"whiteScreen"});}},true),window.addEventListener("unhandledrejection",function(e){let t=e.reason,r=de(t),n=t;if(r?.[0]){let{filename:i,functionName:a,lineno:s,colno:c}=r[0];n=`${e?.reason?.message||e?.reason},${i},line:${s}:${c}`;}let o={error_type:"js",msg:I(n),...B,version:w};u("error",o);});}var we=-1,v=e=>{addEventListener("pageshow",t=>{t.persisted&&(we=t.timeStamp,e(t));},true);},f=(e,t,r,n)=>{let o,i;return a=>{t.value>=0&&(a||n)&&(i=t.value-(o??0),(i||o===void 0)&&(o=t.value,t.delta=i,t.rating=((s,c)=>s>c[1]?"poor":s>c[0]?"needs-improvement":"good")(t.value,r),e(t)));}},j=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()));},V=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},C=()=>V()?.activationStart??0,p=(e,t=-1)=>{let r=V(),n="navigate";return we>=0?n="back-forward-cache":r&&(document.prerendering||C()>0?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},D=new WeakMap;function J(e,t){return D.get(e)||D.set(e,new t),D.get(e)}var U=class{t;i=0;o=[];h(t){if(t.hadRecentInput)return;let r=this.o[0],n=this.o.at(-1);this.i&&r&&n&&t.startTime-n.startTime<1e3&&t.startTime-r.startTime<5e3?(this.i+=t.value,this.o.push(t)):(this.i=t.value,this.o=[t]),this.t?.(t);}},S=(e,t,r={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(o=>{Promise.resolve().then(()=>{t(o.getEntries());});});return n.observe({type:e,buffered:!0,...r}),n}}catch{}},X=e=>{let t=false;return ()=>{t||(e(),t=true);}},g=-1,ye=new Set,ue=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,W=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of ye)t();isFinite(g)||(g=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",W,true));}},M=()=>{if(g<0){let e=C();g=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(r=>r.name==="hidden"&&r.startTime>e)[0]?.startTime)??ue(),addEventListener("visibilitychange",W,true),addEventListener("prerenderingchange",W,true),v(()=>{setTimeout(()=>{g=ue();});});}return {get firstHiddenTime(){return g},onHidden(e){ye.add(e);}}},A=e=>{document.prerendering?addEventListener("prerenderingchange",()=>e(),true):e();},fe=[1800,3e3],G=(e,t={})=>{A(()=>{let r=M(),n,o=p("FCP"),i=S("paint",a=>{for(let s of a)s.name==="first-contentful-paint"&&(i.disconnect(),s.startTime<r.firstHiddenTime&&(o.value=Math.max(s.startTime-C(),0),o.entries.push(s),n(true)));});i&&(n=f(e,o,fe,t.reportAllChanges),v(a=>{o=p("FCP"),n=f(e,o,fe,t.reportAllChanges),j(()=>{o.value=performance.now()-a.timeStamp,n(true);});}));});},pe=[.1,.25],Ce=(e,t={})=>{let r=M();G(X(()=>{let n,o=p("CLS",0),i=J(t,U),a=c=>{for(let l of c)i.h(l);i.i>o.value&&(o.value=i.i,o.entries=i.o,n());},s=S("layout-shift",a);s&&(n=f(e,o,pe,t.reportAllChanges),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.i=0,o=p("CLS",0),n=f(e,o,pe,t.reportAllChanges),j(()=>n());}),setTimeout(n));}));},Se=0,$=1/0,E=0,qe=e=>{for(let t of e)t.interactionId&&($=Math.min($,t.interactionId),E=Math.max(E,t.interactionId),Se=E?(E-$)/7+1:0);},_,he=()=>_?Se:performance.interactionCount??0,De=()=>{"interactionCount"in performance||_||(_=S("event",qe,{type:"event",buffered:true,durationThreshold:0}));},me=0,H=class{u=[];l=new Map;m;p;v(){me=he(),this.u.length=0,this.l.clear();}L(){let t=Math.min(this.u.length-1,Math.floor((he()-me)/50));return this.u[t]}h(t){if(this.m?.(t),!t.interactionId&&t.entryType!=="first-input")return;let r=this.u.at(-1),n=this.l.get(t.interactionId);if(n||this.u.length<10||t.duration>r.P){if(n?t.duration>n.P?(n.entries=[t],n.P=t.duration):t.duration===n.P&&t.startTime===n.entries[0].startTime&&n.entries.push(t):(n={id:t.interactionId,entries:[t],P:t.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort((o,i)=>i.P-o.P),this.u.length>10){let o=this.u.splice(10);for(let i of o)this.l.delete(i.id);}this.p?.(n);}}},xe=e=>{let t=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?e():(e=X(e),addEventListener("visibilitychange",e,{once:true,capture:true}),t(()=>{e(),removeEventListener("visibilitychange",e,{capture:true});}));},ge=[200,500],Le=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let r=M();A(()=>{De();let n,o=p("INP"),i=J(t,H),a=c=>{xe(()=>{for(let d of c)i.h(d);let l=i.L();l&&l.P!==o.value&&(o.value=l.P,o.entries=l.entries,n());});},s=S("event",a,{durationThreshold:t.durationThreshold??40});n=f(e,o,ge,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:true}),r.onHidden(()=>{a(s.takeRecords()),n(true);}),v(()=>{i.v(),o=p("INP"),n=f(e,o,ge,t.reportAllChanges);}));});},z=class{m;h(t){this.m?.(t);}},ve=[2500,4e3],Pe=(e,t={})=>{A(()=>{let r=M(),n,o=p("LCP"),i=J(t,z),a=c=>{t.reportAllChanges||(c=c.slice(-1));for(let l of c)i.h(l),l.startTime<r.firstHiddenTime&&(o.value=Math.max(l.startTime-C(),0),o.entries=[l],n());},s=S("largest-contentful-paint",a);if(s){n=f(e,o,ve,t.reportAllChanges);let c=X(()=>{a(s.takeRecords()),s.disconnect(),n(true);}),l=d=>{d.isTrusted&&(xe(c),removeEventListener(d.type,l,{capture:true}));};for(let d of ["keydown","click","visibilitychange"])addEventListener(d,l,{capture:true});v(d=>{o=p("LCP"),n=f(e,o,ve,t.reportAllChanges),j(()=>{o.value=performance.now()-d.timeStamp,n(true);});});}});},Te=[800,1800],N=e=>{document.prerendering?A(()=>N(e)):document.readyState!=="complete"?addEventListener("load",()=>N(e),true):setTimeout(e);},be=(e,t={})=>{let r=p("TTFB"),n=f(e,r,Te,t.reportAllChanges);N(()=>{let o=V();o&&(r.value=Math.max(o.responseStart-C(),0),r.entries=[o],n(true),v(()=>{r=p("TTFB",0),n=f(e,r,Te,t.reportAllChanges),n(true);}));});};function K(){Ce(x),Le(x),Pe(x),G(x),be(x);}function x(e){console.log(e);let t={name:e.name,value:e.value};u("performance",t);}var F=XMLHttpRequest.prototype,$e=F.open,Ue=F.send;function We(){F.open=function(...t){this.url=t[1],this.method=t[0],$e.apply(this,t);},F.send=function(...t){this.startTime=Date.now();let r=t[0];this.requestSize=ce(r);let n=()=>{this.endTime=Date.now(),this.duration=this.endTime-this.startTime;let{status:o,duration:i,startTime:a,endTime:s,method:c,response:l,requestSize:d}=this,{url:L}=this,T=o,m=L;try{T=JSON.parse(l).code;}catch{}b(m)&&(m="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video"),u("api",{status:o,duration:i,request_url:m,method:c||"GET",code:T,sub_type:"xhr",request_size:d}),this.removeEventListener("loadend",n,true);};this.addEventListener("loadend",n,true),Ue.apply(this,t);};}function Y(){We();}var _e=window.fetch;function He(){window.fetch=function(t,r){let n=Date.now(),o=t;b(o)&&(o="https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video");let i={request_url:o,method:r?.method||"GET",sub_type:"fetch"};return _e(t,r).then(a=>{let s=Date.now();i.duration=s-n,i.status=a.status;let c=a.clone();return c.ok?t.indexOf(".js.map")===-1&&c.json().then(l=>{i.code=l.code,u("api",i);}):(i.code=i.status,t.indexOf(".js.map")===-1&&u("api",i)),a}).catch(a=>{let s=Date.now();return i.duration=s-n,i.status=0,i.code=i.status,u("api",i),a})};}function Q(){He();}function Z(){Y(),Q();}var Ie=false,ze={init(e={}){ee(e),Ie||(q(),K(),Z(),Ie=true);}},St=ze;
3
+ export{St as default};//# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.js","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY',\"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => {},\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n console.log('isWhite: ', isWhite);\n resolve(isWhite);\n pendingPromise = null; \n },\n });\n}, 1000); \n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2); \n } catch (e) {\n return String(data);\n }\n}\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
1
+ {"version":3,"sources":["../src/config/index.js","../src/util/cache.js","../src/report/index.js","../src/util/tool.js","../src/error/index.js","../../node_modules/.pnpm/web-vitals@5.1.0/node_modules/web-vitals/dist/web-vitals.js","../src/performance/index.js","../src/api/xhr.js","../src/api/fetch.js","../src/api/index.js","../src/index.ts"],"names":["config","version","config_default","setConfig","options","key","cache","getCache","addCache","type","data","clearCache","report","isImmediate","reportData","sendBeacon","timer","lazyReportCache","timeout","dataMap","reportUrl","reportWithXHR","xhr","detectWhiteScreen","samplePoints","whiteTags","onDetected","isWhiteScreen","detail","threshold","viewportWidth","viewportHeight","points","i","whiteCount","x","y","el","tag","isWhite","debounce","fn","delay","immediate","args","context","debouncedDetectWhiteScreen","resolve","pendingPromise","detectionWhiteScreen","getFullBrowserInfo","ua","name","getOSInfo","isValidOssVideoUrl","url","u","toReadableString","getRequestBodySize","body","total","value","browserInfor","FULL_MATCH","STACK_TRACE_LIMIT","parseStackLine","line","lineMatch","filename","functionName","lineno","colno","parseStackFrames","error","stack","frames","frame","event","target","errs","msg","reason","e","t","n","s","o","r","c","a","d","h","f","l","m","p","v","g","E","b","L","P","T","_","M","w","C","I","F","k","A","B","S","N","q","H","O","$","performance","sendToAnalytics","metric","originalPrototype","originalOpen","originalSend","overWriteOpenAndSend","onLoadEnd","status","duration","startTime","endTime","method","response","requestSize","code","request_url","originalFetch","overWriteFetch","res","clonedRes","err","fetch","api","isInit","monitor","index_default"],"mappings":"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","file":"index.js","sourcesContent":["const config = {\n // 项目名称\n source:'mbp', //使用平台\n userId: '', //用户信息\n //上报地址\n reportUrl: 'http://localhost:3001/report/actions',\n //是否全埋点\n trackerAll: false,\n};\n\nexport let version = '';\n\nexport default config;\n\nexport function setConfig(options) { \n for (const key in config) { \n if (options[key]) { \n config[key] = options[key];\n }\n }\n if(options['version']){\n version = options['version'];\n }\n}\n","//把上报的数据存储在map键值对中\n//key就是上报的类型\n//value就是上报的数据,是一个数组\nconst cache = new Map();\n\nexport function getCache() { \n return cache;\n}\n\nexport function addCache(type, data) { \n //如果有这个类型的数据,就往数组中添加\n //没有就在map中创建新的类型,并且将data放入到数组中\n cache.get(type)? cache.get(type).push(data) : cache.set(type, [data]);\n}\n\nexport function clearCache() { \n cache.clear();\n}\r\n","import config from '../config/index.js'\nimport getUniqueID from \"../util/getUniqueID.js\";\nimport { getCache,addCache,clearCache } from '../util/cache.js';\n\nconst uniqueID = getUniqueID();\n/**\n * 由于我们有很多内容需要上报,\n * 所以我这里为了简单区分和上报\n * 用type来区分上报的内容是什么\n * @param {string} type 上报类型 “error” | \"action\" | \"api\" | \"performance\"\n * @param {Object} data 上报信息\n * @param {boolean} isImmediate 是否立即上报,默认为false\n */\nexport function report(type, data, isImmediate = false) { \n if (config.reportUrl === null) { \n console.error(\"请先配置上报地址\");\n return;\n }\n\n const reportData = JSON.stringify({\n user_id: Number(config.userId) || 0, //用户id\n source: config.source, //来源\n type, //上报类型\n url: window.location.href, //当前页面\n data, //上报信息\n })\n \n //立即上传\n if (isImmediate) { \n sendBeacon(config.reportUrl, reportData);\n return;\n }\n \n // 浏览器空闲时间进行上报\n if (window.requestIdleCallback) {\n window.requestIdleCallback(() => {\n sendBeacon(config.reportUrl, reportData);\n }, { timeout: 3000 });\n }else { \n setTimeout(() => { \n sendBeacon(config.reportUrl, reportData);\n })\n }\n \n}\n\nlet timer = null;\n//延迟上传,一定时间之后再进行上传\nexport function lazyReportCache(type, data, timeout = 3000) { \n //把数据加入到map缓存中\n addCache(type, data);\n \n clearTimeout(timer);\n timer = setTimeout(() => { \n //获取缓存中的数据\n const dataMap = getCache();\n\n if (dataMap.size) { \n for (const [type, data] of dataMap) { \n report(type, data);\n }\n\n clearCache();\n }\n\n },timeout)\n}\n\n\n//Navigator.sendBeacon()方式上报\nfunction sendBeacon(reportUrl, reportData) {\n if (navigator.sendBeacon) {\n navigator.sendBeacon(reportUrl, reportData);\n }\n else { \n reportWithXHR(reportUrl, reportData);\n }\n \n} \n\n// XMLHttpRequest方式上报\nfunction reportWithXHR(reportUrl, reportData) { \n const xhr = new XMLHttpRequest();\n xhr.open('POST', reportUrl, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.send(reportData);\n}\n","export const detectWhiteScreen = ({\n samplePoints = 6,\n whiteTags = ['HTML', 'BODY', \"IFRAME\"],\n onDetected = (isWhiteScreen, detail) => { },\n threshold = 0.9,\n} = {}) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const points = [];\n\n for (let i = 1; i <= samplePoints; i++) {\n points.push([\n viewportWidth / 2,\n (viewportHeight / (samplePoints + 1)) * i,\n ]);\n }\n\n console.log('points: ', points);\n\n let whiteCount = 0;\n const detail = [];\n\n points.forEach(([x, y]) => {\n const el = document.elementFromPoint(x, y);\n const tag = el?.tagName || 'NULL';\n detail.push({ x, y, tag });\n\n if (!el || whiteTags.includes(tag)) {\n whiteCount++;\n }\n });\n\n const isWhite = whiteCount / samplePoints >= threshold;\n\n onDetected(isWhite, detail);\n};\n\nexport const debounce = (fn, delay = 300, immediate = false) => {\n let timer = null;\n\n return function (...args) {\n const context = this;\n\n if (timer) clearTimeout(timer);\n\n if (immediate && !timer) {\n fn.apply(context, args);\n }\n\n timer = setTimeout(() => {\n if (!immediate) {\n fn.apply(context, args);\n }\n timer = null;\n }, delay);\n };\n};\n\nconst debouncedDetectWhiteScreen = debounce((resolve) => {\n detectWhiteScreen({\n onDetected: (isWhite, detail) => {\n resolve(isWhite);\n pendingPromise = null;\n },\n });\n}, 1000);\n\nlet pendingPromise = null;\nexport const detectionWhiteScreen = () => {\n if (!pendingPromise) {\n pendingPromise = new Promise((resolve) => {\n setTimeout(() => {\n debouncedDetectWhiteScreen(resolve);\n }, 3000);\n })\n }\n return pendingPromise;\n};\n\nexport const getFullBrowserInfo = () => {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = 'Unknown';\n\n if (/edg/i.test(ua)) {\n name = 'Edge';\n version = ua.match(/edg\\/([\\d\\.]+)/i)?.[1];\n } else if (/opr/i.test(ua)) {\n name = 'Opera';\n version = ua.match(/opr\\/([\\d\\.]+)/i)?.[1];\n } else if (/chrome/i.test(ua)) {\n name = 'Chrome';\n version = ua.match(/chrome\\/([\\d\\.]+)/i)?.[1];\n } else if (/firefox/i.test(ua)) {\n name = 'Firefox';\n version = ua.match(/firefox\\/([\\d\\.]+)/i)?.[1];\n } else if (/safari/i.test(ua) && !/chrome/i.test(ua)) {\n name = 'Safari';\n version = ua.match(/version\\/([\\d\\.]+)/i)?.[1];\n } else if (/msie/i.test(ua) || /trident/i.test(ua)) {\n name = 'Internet Explorer';\n version = ua.match(/(msie\\s|rv:)([\\d\\.]+)/i)?.[2];\n }\n\n return { name, version };\n}\nexport const getOSInfo = () => {\n const ua = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/windows phone/i.test(ua)) {\n return \"Windows Phone\";\n }\n if (/win/i.test(ua)) {\n return \"Windows\";\n }\n if (/android/i.test(ua)) {\n return \"Android\";\n }\n if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n return \"iOS\";\n }\n if (/Macintosh|MacIntel|MacPPC|Mac68K/.test(ua)) {\n return \"macOS\";\n }\n if (/Linux/.test(ua)) {\n return \"Linux\";\n }\n\n return \"Unknown OS\";\n}\n// 识别是上传视频的链接\nexport const isValidOssVideoUrl = (url) => {\n try {\n const u = new URL(url.indexOf('http') === -1 ? `https:${url}` : url);\n\n // 域名和协议必须匹配\n // const hostOk = (\n // u.protocol === 'https:' &&\n // u.hostname === 'sd-cms-bmp.oss-accelerate.aliyuncs.com' &&\n // u.port === '443'\n // );\n\n // 路径必须匹配 /mbp/数字/video/文件名.扩展名\n const pathOk = /^\\/mbp\\/\\d+\\/video\\/[^/?#]+\\.[^/?#]+$/i.test(u.pathname);\n\n // return hostOk && pathOk;\n return pathOk;\n } catch {\n return false; // 非法 URL\n }\n}\nexport const toReadableString = (data) => {\n try {\n return JSON.stringify(data, null, 2);\n } catch (e) {\n return String(data);\n }\n}\n\nexport const getRequestBodySize = (body) => {\n if (!body) return 0;\n try {\n\n if (typeof body === \"string\") return new TextEncoder().encode(body).length;\n if (body instanceof Blob) return body.size;\n if (body instanceof ArrayBuffer) return body.byteLength;\n if (ArrayBuffer.isView(body)) return body.byteLength;\n if (body instanceof URLSearchParams) return new TextEncoder().encode(body.toString()).length;\n\n if (body instanceof FormData) {\n let total = 0;\n for (const [key, value] of body.entries()) {\n total += new TextEncoder().encode(key).length;\n if (typeof value === \"string\") {\n total += new TextEncoder().encode(value).length;\n } else if (value instanceof Blob) {\n total += value.size;\n }\n }\n return total;\n }\n } catch (error) {\n return 0;\n }\n\n return 0;\n}\n\n","import { lazyReportCache } from \"../report/index.js\";\nimport {detectionWhiteScreen,getFullBrowserInfo,getOSInfo,toReadableString} from '../util/tool.js';\nimport {version} from '../config/index.js';\n\nconst browserInfor = getFullBrowserInfo();\n\nconst reportData = {\n user_agent:browserInfor.name+browserInfor.version,\n platform:getOSInfo(),\n}\n\n/**\n * 这个正则表达式用于匹配 JavaScript 错误栈中的堆栈跟踪信息中的单个条目,其中包含文件名、行号和列号等信息。\n * 具体来说,它匹配以下格式的文本:\n * at functionName (filename:lineNumber:columnNumber)\n * at filename:lineNumber:columnNumber\n * at http://example.com/filename:lineNumber:columnNumber\n * at https://example.com/filename:lineNumber:columnNumber\n */\nconst FULL_MATCH =\n /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\n//限制追溯的错误堆栈数量\nconst STACK_TRACE_LIMIT = 10;\n\n//通过正则表达式解析一行的错误信息\nfunction parseStackLine(line) { \n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) return {};\n const filename = lineMatch[2] || '<anonymous>';\n const functionName = lineMatch[1] || '';\n const lineno = parseInt(lineMatch[3], 10) || undefined;\n const colno = parseInt(lineMatch[4], 10) || undefined;\n\n return {\n filename,\n functionName,\n lineno,\n colno\n }\n}\n\n//解析错误堆栈\nfunction parseStackFrames(error) { \n const { stack } = error;\n //如果没有stack直接返回[]\n if (!stack) return [];\n const frames = [];\n\n for (const line of stack.split('\\n').slice(1)) { \n const frame = parseStackLine(line); //分析一行的错误信息\n if (frame.filename) { \n //放入到堆栈错误信息数组中\n frames.push(frame);\n }\n }\n return frames.slice(0, STACK_TRACE_LIMIT);\n} \n\n\nexport default function error() {\n //资源错误没有冒泡,所以只能在捕获阶段采集获取错误\n window.addEventListener('error', async function (event) {\n const target = event.target;\n\n //要判断是资源错误,还是js错误,很简单,直接判断事件对象有没有src或者href属性就可以了\n if (target && (target.src || target.href)) {\n //上报资源错误 todo...\n const data = {\n error_type: 'resource',\n ...reportData,\n msg:toReadableString(`加载${target.tagName}失败`),\n version,\n }\n lazyReportCache('error', data)\n }\n else {\n const errs = parseStackFrames(event.error);\n let msg = event.message;\n if(errs?.[0]){\n const { filename,functionName,lineno, colno } = errs[0];\n msg = `${event.message},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n \n lazyReportCache('error', data)\n const isWhite = await detectionWhiteScreen();\n if(isWhite){\n lazyReportCache('error', {...data,error_type:'whiteScreen'})\n }\n }\n }, true)\n \n //promise错误\n window.addEventListener('unhandledrejection', function (event) {\n const reason = event.reason;\n const errs = parseStackFrames(reason);\n let msg = reason;\n\n if(errs?.[0]){\n const {filename,functionName,lineno,colno} = errs[0]; \n msg = `${event?.reason?.message || event?.reason},${filename},line:${lineno}:${colno}`;\n }\n \n const data = {\n error_type: 'js',\n msg:toReadableString(msg),\n ...reportData,\n version,\n }\n\n lazyReportCache('error', data)\n })\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>{const e=s();return e?.activationStart??0},r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of l)e();isFinite(u)||(u=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",p,!0))}},v=()=>{if(u<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??m(),addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0),t((()=>{setTimeout((()=>{u=m()}))}))}return{get firstHiddenTime(){return u},onHidden(e){l.add(e)}}},g=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},y=[1800,3e3],E=(e,s={})=>{g((()=>{const c=v();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,y,s.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},b=[.1,.25],L=(e,s={})=>{const o=v();E(f((()=>{let c,f=r(\"CLS\",0);const u=a(s,d),l=e=>{for(const t of e)u.h(t);u.i>f.value&&(f.value=u.i,f.entries=u.o,c())},m=h(\"layout-shift\",l);m&&(c=n(e,f,b,s.reportAllChanges),o.onHidden((()=>{l(m.takeRecords()),c(!0)})),t((()=>{u.i=0,f=r(\"CLS\",0),c=n(e,f,b,s.reportAllChanges),i((()=>c()))})),setTimeout(c))})))};let P=0,T=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(T=Math.min(T,t.interactionId),_=Math.max(_,t.interactionId),P=_?(_-T)/7+1:0)};let w;const C=()=>w?P:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))};let F=0;class k{u=[];l=new Map;m;p;v(){F=C(),this.u.length=0,this.l.clear()}L(){const e=Math.min(this.u.length-1,Math.floor((C()-F)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),addEventListener(\"visibilitychange\",e,{once:!0,capture:!0}),t((()=>{e(),removeEventListener(\"visibilitychange\",e,{capture:!0})})))},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=v();g((()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A((()=>{for(const t of e)d.h(t);const t=d.L();t&&t.P!==c.value&&(c.value=t.P,c.entries=t.entries,o())}))},u=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),u&&(u.observe({type:\"first-input\",buffered:!0}),s.onHidden((()=>{f(u.takeRecords()),o(!0)})),t((()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)})))}))};class N{m;h(e){this.m?.(e)}}const q=[2500,4e3],x=(e,s={})=>{g((()=>{const c=v();let d,u=r(\"LCP\");const l=a(s,N),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-o(),0),u.entries=[t],d())},p=h(\"largest-contentful-paint\",m);if(p){d=n(e,u,q,s.reportAllChanges);const o=f((()=>{m(p.takeRecords()),p.disconnect(),d(!0)})),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,q,s.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},H=[800,1800],O=e=>{document.prerendering?g((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O((()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)})))}))};export{b as CLSThresholds,y as FCPThresholds,B as INPThresholds,q as LCPThresholds,H as TTFBThresholds,L as onCLS,E as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n","import { onCLS, onFCP, onLCP, onTTFB,onINP } from \"web-vitals\";\nimport { lazyReportCache } from \"../report/index.js\";\n\nexport default function performance() {\n onCLS(sendToAnalytics);\n onINP(sendToAnalytics);\n onLCP(sendToAnalytics);\n onFCP(sendToAnalytics);\n onTTFB(sendToAnalytics);\n}\n\nfunction sendToAnalytics(metric) {\n console.log(metric);\n const data = {\n name: metric.name,\n value: metric.value,\n // rating: metric.rating,\n }\n lazyReportCache('performance', data);\n}\n\n","import { lazyReportCache } from '../report/index.js';\nimport {isValidOssVideoUrl,getRequestBodySize} from '../util/tool.js';\n\nconst originalPrototype = XMLHttpRequest.prototype;\nconst originalOpen = originalPrototype.open;\nconst originalSend = originalPrototype.send;\n\nfunction overWriteOpenAndSend() { \n originalPrototype.open = function newOpen(...args) { \n this.url = args[1];\n this.method = args[0];\n originalOpen.apply(this, args);\n }\n originalPrototype.send = function newSend(...args) { \n this.startTime = Date.now();\n\n const body = args[0];\n this.requestSize = getRequestBodySize(body);\n\n const onLoadEnd = () => { \n this.endTime = Date.now();\n this.duration = this.endTime - this.startTime;\n\n const { status, duration, startTime, endTime, method,response,requestSize } = this;\n let { url } = this;\n let code = status;\n let request_url = url;\n try {\n code = JSON.parse(response).code;\n }catch {\n \n }\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n status,\n duration,\n // startTime,\n // endTime,\n request_url,\n method: method || 'GET',\n code,\n // success: status >= 200 && status < 300,\n sub_type: 'xhr',\n request_size: requestSize,\n }\n\n lazyReportCache('api', reportData);\n\n this.removeEventListener('loadend', onLoadEnd, true);\n }\n\n //当请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)\n this.addEventListener('loadend', onLoadEnd, true);\n originalSend.apply(this, args);\n }\n\n\n}\n\nexport default function xhr() { \n overWriteOpenAndSend();\n}\n","import { lazyReportCache} from '../report/index.js';\nimport {isValidOssVideoUrl} from '../util/tool.js';\n\nconst originalFetch = window.fetch;\n\nfunction overWriteFetch() { \n window.fetch = function newFetch(url, config) { \n const startTime = Date.now();\n let request_url = url;\n if(isValidOssVideoUrl(request_url)){\n request_url = `https://sd-cms-bmp.oss-accelerate.aliyuncs.com:443/mbp/video`\n }\n\n const reportData = {\n // startTime,\n request_url,\n method: config?.method || 'GET',\n sub_type: 'fetch',\n }\n\n return originalFetch(url, config)\n .then(res => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = res.status;\n \n const clonedRes = res.clone();\n if (!clonedRes.ok) {\n reportData.code = reportData.status;\n if(url.indexOf('.js.map') === -1){\n lazyReportCache('api', reportData);\n };\n }else{\n if(url.indexOf('.js.map') === -1){\n clonedRes.json().then(data => {\n reportData.code = data.code;\n lazyReportCache('api', reportData);\n })\n }\n }\n return res;\n })\n .catch(err => { \n const endTime = Date.now();\n reportData.duration = endTime - startTime;\n reportData.status = 0;\n reportData.code = reportData.status;\n\n lazyReportCache('api', reportData);\n\n return err;\n })\n }\n}\n\nexport default function fetch() { \n overWriteFetch();\n}\n","import xhr from './xhr.js';\nimport fetch from './fetch.js';\n\nexport default function api() { \n xhr();\n fetch();\n}\n","import config,{ setConfig } from \"./config/index.js\";\nimport error from \"./error/index.js\";\nimport performance from \"./performance/index.js\";\nimport api from \"./api/index.js\";\n\nlet isInit = false;\nconst monitor = {\n init(options = {}) {\n setConfig(options); //配置全局参数\n // 多次初始化只执行一次挂载监听的逻辑\n if(!isInit){\n error(); //错误监听处理\n performance(); //性能监控\n api(); //api远程请求数据采集\n isInit = true;\n }\n },\n};\n\nexport default monitor;\n"]}
@@ -13,4 +13,5 @@ export function getFullBrowserInfo(): {
13
13
  export function getOSInfo(): "Windows Phone" | "Windows" | "Android" | "iOS" | "macOS" | "Linux" | "Unknown OS";
14
14
  export function isValidOssVideoUrl(url: any): boolean;
15
15
  export function toReadableString(data: any): string;
16
+ export function getRequestBodySize(body: any): number;
16
17
  //# sourceMappingURL=tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/util/tool.js"],"names":[],"mappings":"AAAO;;;;;SAoCN;AAEM,yEAGY,GAAG,WAAI,UAgBzB;AAaM,4CASN;AAEM;;;EA0BN;AACM,gHAuBN;AAEM,sDAmBN;AACM,oDAMN"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/util/tool.js"],"names":[],"mappings":"AAAO;;;;;SAoCN;AAEM,yEAGY,GAAG,WAAI,UAgBzB;AAYM,4CASN;AAEM;;;EA0BN;AACM,gHAuBN;AAEM,sDAmBN;AACM,oDAMN;AAEM,sDA2BN"}
package/dist/util/tool.js CHANGED
@@ -42,7 +42,6 @@ export const debounce = (fn, delay = 300, immediate = false) => {
42
42
  const debouncedDetectWhiteScreen = debounce((resolve) => {
43
43
  detectWhiteScreen({
44
44
  onDetected: (isWhite, detail) => {
45
- console.log('isWhite: ', isWhite);
46
45
  resolve(isWhite);
47
46
  pendingPromise = null;
48
47
  },
@@ -138,4 +137,37 @@ export const toReadableString = (data) => {
138
137
  return String(data);
139
138
  }
140
139
  };
140
+ export const getRequestBodySize = (body) => {
141
+ if (!body)
142
+ return 0;
143
+ try {
144
+ if (typeof body === "string")
145
+ return new TextEncoder().encode(body).length;
146
+ if (body instanceof Blob)
147
+ return body.size;
148
+ if (body instanceof ArrayBuffer)
149
+ return body.byteLength;
150
+ if (ArrayBuffer.isView(body))
151
+ return body.byteLength;
152
+ if (body instanceof URLSearchParams)
153
+ return new TextEncoder().encode(body.toString()).length;
154
+ if (body instanceof FormData) {
155
+ let total = 0;
156
+ for (const [key, value] of body.entries()) {
157
+ total += new TextEncoder().encode(key).length;
158
+ if (typeof value === "string") {
159
+ total += new TextEncoder().encode(value).length;
160
+ }
161
+ else if (value instanceof Blob) {
162
+ total += value.size;
163
+ }
164
+ }
165
+ return total;
166
+ }
167
+ }
168
+ catch (error) {
169
+ return 0;
170
+ }
171
+ return 0;
172
+ };
141
173
  //# sourceMappingURL=tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/util/tool.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/util/tool.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reporting-lib",
3
- "version": "0.1.11",
3
+ "version": "0.2.0",
4
4
  "description": "A comprehensive monitoring and reporting library for web applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",