@king-one/monitor 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @king-one/monitor
2
2
 
3
+ ## 1.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - feat:增加 query 参数序列化
8
+
9
+ ## 1.0.4
10
+
11
+ ### Patch Changes
12
+
13
+ - feat:功能完善
14
+
3
15
  ## 1.0.3
4
16
 
5
17
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- (function(M,O){typeof exports=="object"&&typeof module<"u"?O(exports):typeof define=="function"&&define.amd?define(["exports"],O):(M=typeof globalThis<"u"?globalThis:M||self,O(M.KingMonitor={}))})(this,function(M){"use strict";var Ue=Object.defineProperty;var Ve=(M,O,V)=>O in M?Ue(M,O,{enumerable:!0,configurable:!0,writable:!0,value:V}):M[O]=V;var G=(M,O,V)=>Ve(M,typeof O!="symbol"?O+"":O,V);class O{constructor(){G(this,"events",new Map)}on(e,r){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(r)}off(e,r){const n=this.events.get(e);n&&(n.delete(r),n.size===0&&this.events.delete(e))}emit(e,...r){const n=this.events.get(e);n&&n.forEach(t=>{try{t(...r)}catch(i){console.error(`Error in event handler for ${e}:`,i)}})}clear(){this.events.clear()}getSubscriberCount(e){const r=this.events.get(e);return r?r.size:0}hasSubscribers(e){return this.getSubscriberCount(e)>0}}var V=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function pe(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function Qe(o){return o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function We(o){return o&&Object.prototype.hasOwnProperty.call(o,"default")&&Object.keys(o).length===1?o.default:o}function qe(o){if(o.__esModule)return o;var e=o.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(o).forEach(function(n){var t=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return o[n]}})}),r}var ne={},te={},J={},oe={},ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Je=oe.encode=function(o){if(0<=o&&o<ve.length)return ve[o];throw new TypeError("Must be between 0 and 63: "+o)},Ke=oe.decode=function(o){var e=65,r=90,n=97,t=122,i=48,s=57,f=43,a=47,h=26,d=52;return e<=o&&o<=r?o-e:n<=o&&o<=t?o-n+h:i<=o&&o<=s?o-i+d:o==f?62:o==a?63:-1},me=oe,ie=5,_e=1<<ie,Se=_e-1,ye=_e;function Ie(o){return o<0?(-o<<1)+1:(o<<1)+0}function Re(o){var e=(o&1)===1,r=o>>1;return e?-r:r}var Xe=J.encode=function(e){var r="",n,t=Ie(e);do n=t&Se,t>>>=ie,t>0&&(n|=ye),r+=me.encode(n);while(t>0);return r},Ze=J.decode=function(e,r,n){var t=e.length,i=0,s=0,f,a;do{if(r>=t)throw new Error("Expected more digits in base 64 VLQ value.");if(a=me.decode(e.charCodeAt(r++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(r-1));f=!!(a&ye),a&=Se,i=i+(a<<s),s+=ie}while(f);n.value=Re(i),n.rest=r},F={};(function(o){function e(u,l,p){if(l in u)return u[l];if(arguments.length===3)return p;throw new Error('"'+l+'" is a required argument.')}o.getArg=e;var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function t(u){var l=u.match(r);return l?{scheme:l[1],auth:l[2],host:l[3],port:l[4],path:l[5]}:null}o.urlParse=t;function i(u){var l="";return u.scheme&&(l+=u.scheme+":"),l+="//",u.auth&&(l+=u.auth+"@"),u.host&&(l+=u.host),u.port&&(l+=":"+u.port),u.path&&(l+=u.path),l}o.urlGenerate=i;var s=32;function f(u){var l=[];return function(p){for(var c=0;c<l.length;c++)if(l[c].input===p){var P=l[0];return l[0]=l[c],l[c]=P,l[0].result}var T=u(p);return l.unshift({input:p,result:T}),l.length>s&&l.pop(),T}}var a=f(function(l){var p=l,c=t(l);if(c){if(!c.path)return l;p=c.path}for(var P=o.isAbsolute(p),T=[],ee=0,b=0;;)if(ee=b,b=p.indexOf("/",ee),b===-1){T.push(p.slice(ee));break}else for(T.push(p.slice(ee,b));b<p.length&&p[b]==="/";)b++;for(var re,q=0,b=T.length-1;b>=0;b--)re=T[b],re==="."?T.splice(b,1):re===".."?q++:q>0&&(re===""?(T.splice(b+1,q),q=0):(T.splice(b,2),q--));return p=T.join("/"),p===""&&(p=P?"/":"."),c?(c.path=p,i(c)):p});o.normalize=a;function h(u,l){u===""&&(u="."),l===""&&(l=".");var p=t(l),c=t(u);if(c&&(u=c.path||"/"),p&&!p.scheme)return c&&(p.scheme=c.scheme),i(p);if(p||l.match(n))return l;if(c&&!c.host&&!c.path)return c.host=l,i(c);var P=l.charAt(0)==="/"?l:a(u.replace(/\/+$/,"")+"/"+l);return c?(c.path=P,i(c)):P}o.join=h,o.isAbsolute=function(u){return u.charAt(0)==="/"||r.test(u)};function d(u,l){u===""&&(u="."),u=u.replace(/\/$/,"");for(var p=0;l.indexOf(u+"/")!==0;){var c=u.lastIndexOf("/");if(c<0||(u=u.slice(0,c),u.match(/^([^\/]+:\/)?\/*$/)))return l;++p}return Array(p+1).join("../")+l.substr(u.length+1)}o.relative=d;var m=function(){var u=Object.create(null);return!("__proto__"in u)}();function v(u){return u}function _(u){return C(u)?"$"+u:u}o.toSetString=m?v:_;function y(u){return C(u)?u.slice(1):u}o.fromSetString=m?v:y;function C(u){if(!u)return!1;var l=u.length;if(l<9||u.charCodeAt(l-1)!==95||u.charCodeAt(l-2)!==95||u.charCodeAt(l-3)!==111||u.charCodeAt(l-4)!==116||u.charCodeAt(l-5)!==111||u.charCodeAt(l-6)!==114||u.charCodeAt(l-7)!==112||u.charCodeAt(l-8)!==95||u.charCodeAt(l-9)!==95)return!1;for(var p=l-10;p>=0;p--)if(u.charCodeAt(p)!==36)return!1;return!0}function ge(u,l,p){var c=R(u.source,l.source);return c!==0||(c=u.originalLine-l.originalLine,c!==0)||(c=u.originalColumn-l.originalColumn,c!==0||p)||(c=u.generatedColumn-l.generatedColumn,c!==0)||(c=u.generatedLine-l.generatedLine,c!==0)?c:R(u.name,l.name)}o.compareByOriginalPositions=ge;function L(u,l,p){var c;return c=u.originalLine-l.originalLine,c!==0||(c=u.originalColumn-l.originalColumn,c!==0||p)||(c=u.generatedColumn-l.generatedColumn,c!==0)||(c=u.generatedLine-l.generatedLine,c!==0)?c:R(u.name,l.name)}o.compareByOriginalPositionsNoSource=L;function D(u,l,p){var c=u.generatedLine-l.generatedLine;return c!==0||(c=u.generatedColumn-l.generatedColumn,c!==0||p)||(c=R(u.source,l.source),c!==0)||(c=u.originalLine-l.originalLine,c!==0)||(c=u.originalColumn-l.originalColumn,c!==0)?c:R(u.name,l.name)}o.compareByGeneratedPositionsDeflated=D;function H(u,l,p){var c=u.generatedColumn-l.generatedColumn;return c!==0||p||(c=R(u.source,l.source),c!==0)||(c=u.originalLine-l.originalLine,c!==0)||(c=u.originalColumn-l.originalColumn,c!==0)?c:R(u.name,l.name)}o.compareByGeneratedPositionsDeflatedNoLine=H;function R(u,l){return u===l?0:u===null?1:l===null?-1:u>l?1:-1}function B(u,l){var p=u.generatedLine-l.generatedLine;return p!==0||(p=u.generatedColumn-l.generatedColumn,p!==0)||(p=R(u.source,l.source),p!==0)||(p=u.originalLine-l.originalLine,p!==0)||(p=u.originalColumn-l.originalColumn,p!==0)?p:R(u.name,l.name)}o.compareByGeneratedPositionsInflated=B;function U(u){return JSON.parse(u.replace(/^\)]}'[^\n]*\n/,""))}o.parseSourceMapInput=U;function Be(u,l,p){if(l=l||"",u&&(u[u.length-1]!=="/"&&l[0]!=="/"&&(u+="/"),l=u+l),p){var c=t(p);if(!c)throw new Error("sourceMapURL could not be parsed");if(c.path){var P=c.path.lastIndexOf("/");P>=0&&(c.path=c.path.substring(0,P+1))}l=h(i(c),l)}return a(l)}o.computeSourceURL=Be})(F);const Ye=pe(F);var se={},ue=F,le=Object.prototype.hasOwnProperty,z=typeof Map<"u";function $(){this._array=[],this._set=z?new Map:Object.create(null)}$.fromArray=function(e,r){for(var n=new $,t=0,i=e.length;t<i;t++)n.add(e[t],r);return n},$.prototype.size=function(){return z?this._set.size:Object.getOwnPropertyNames(this._set).length},$.prototype.add=function(e,r){var n=z?e:ue.toSetString(e),t=z?this.has(e):le.call(this._set,n),i=this._array.length;(!t||r)&&this._array.push(e),t||(z?this._set.set(e,i):this._set[n]=i)},$.prototype.has=function(e){if(z)return this._set.has(e);var r=ue.toSetString(e);return le.call(this._set,r)},$.prototype.indexOf=function(e){if(z){var r=this._set.get(e);if(r>=0)return r}else{var n=ue.toSetString(e);if(le.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},$.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},$.prototype.toArray=function(){return this._array.slice()};var He=se.ArraySet=$,Ce={},we=F;function Ne(o,e){var r=o.generatedLine,n=e.generatedLine,t=o.generatedColumn,i=e.generatedColumn;return n>r||n==r&&i>=t||we.compareByGeneratedPositionsInflated(o,e)<=0}function K(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}K.prototype.unsortedForEach=function(e,r){this._array.forEach(e,r)},K.prototype.add=function(e){Ne(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},K.prototype.toArray=function(){return this._sorted||(this._array.sort(we.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};var er=Ce.MappingList=K,Q=J,w=F,X=se.ArraySet,Ge=Ce.MappingList;function N(o){o||(o={}),this._file=w.getArg(o,"file",null),this._sourceRoot=w.getArg(o,"sourceRoot",null),this._skipValidation=w.getArg(o,"skipValidation",!1),this._ignoreInvalidMapping=w.getArg(o,"ignoreInvalidMapping",!1),this._sources=new X,this._names=new X,this._mappings=new Ge,this._sourcesContents=null}N.prototype._version=3,N.fromSourceMap=function(e,r){var n=e.sourceRoot,t=new N(Object.assign(r||{},{file:e.file,sourceRoot:n}));return e.eachMapping(function(i){var s={generated:{line:i.generatedLine,column:i.generatedColumn}};i.source!=null&&(s.source=i.source,n!=null&&(s.source=w.relative(n,s.source)),s.original={line:i.originalLine,column:i.originalColumn},i.name!=null&&(s.name=i.name)),t.addMapping(s)}),e.sources.forEach(function(i){var s=i;n!==null&&(s=w.relative(n,i)),t._sources.has(s)||t._sources.add(s);var f=e.sourceContentFor(i);f!=null&&t.setSourceContent(i,f)}),t},N.prototype.addMapping=function(e){var r=w.getArg(e,"generated"),n=w.getArg(e,"original",null),t=w.getArg(e,"source",null),i=w.getArg(e,"name",null);!this._skipValidation&&this._validateMapping(r,n,t,i)===!1||(t!=null&&(t=String(t),this._sources.has(t)||this._sources.add(t)),i!=null&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i}))},N.prototype.setSourceContent=function(e,r){var n=e;this._sourceRoot!=null&&(n=w.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[w.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[w.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},N.prototype.applySourceMap=function(e,r,n){var t=r;if(r==null){if(e.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);t=e.file}var i=this._sourceRoot;i!=null&&(t=w.relative(i,t));var s=new X,f=new X;this._mappings.unsortedForEach(function(a){if(a.source===t&&a.originalLine!=null){var h=e.originalPositionFor({line:a.originalLine,column:a.originalColumn});h.source!=null&&(a.source=h.source,n!=null&&(a.source=w.join(n,a.source)),i!=null&&(a.source=w.relative(i,a.source)),a.originalLine=h.line,a.originalColumn=h.column,h.name!=null&&(a.name=h.name))}var d=a.source;d!=null&&!s.has(d)&&s.add(d);var m=a.name;m!=null&&!f.has(m)&&f.add(m)},this),this._sources=s,this._names=f,e.sources.forEach(function(a){var h=e.sourceContentFor(a);h!=null&&(n!=null&&(a=w.join(n,a)),i!=null&&(a=w.relative(i,a)),this.setSourceContent(a,h))},this)},N.prototype._validateMapping=function(e,r,n,t){if(r&&typeof r.line!="number"&&typeof r.column!="number"){var i="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}if(!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t)){if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n)return;var i="Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}},N.prototype._serializeMappings=function(){for(var e=0,r=1,n=0,t=0,i=0,s=0,f="",a,h,d,m,v=this._mappings.toArray(),_=0,y=v.length;_<y;_++){if(h=v[_],a="",h.generatedLine!==r)for(e=0;h.generatedLine!==r;)a+=";",r++;else if(_>0){if(!w.compareByGeneratedPositionsInflated(h,v[_-1]))continue;a+=","}a+=Q.encode(h.generatedColumn-e),e=h.generatedColumn,h.source!=null&&(m=this._sources.indexOf(h.source),a+=Q.encode(m-s),s=m,a+=Q.encode(h.originalLine-1-t),t=h.originalLine-1,a+=Q.encode(h.originalColumn-n),n=h.originalColumn,h.name!=null&&(d=this._names.indexOf(h.name),a+=Q.encode(d-i),i=d)),f+=a}return f},N.prototype._generateSourcesContent=function(e,r){return e.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=w.relative(r,n));var t=w.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null},this)},N.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(e.file=this._file),this._sourceRoot!=null&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},N.prototype.toString=function(){return JSON.stringify(this.toJSON())};var rr=te.SourceMapGenerator=N,Z={},ae={};(function(o){o.GREATEST_LOWER_BOUND=1,o.LEAST_UPPER_BOUND=2;function e(r,n,t,i,s,f){var a=Math.floor((n-r)/2)+r,h=s(t,i[a],!0);return h===0?a:h>0?n-a>1?e(a,n,t,i,s,f):f==o.LEAST_UPPER_BOUND?n<i.length?n:-1:a:a-r>1?e(r,a,t,i,s,f):f==o.LEAST_UPPER_BOUND?a:r<0?-1:r}o.search=function(n,t,i,s){if(t.length===0)return-1;var f=e(-1,t.length,n,t,i,s||o.GREATEST_LOWER_BOUND);if(f<0)return-1;for(;f-1>=0&&i(t[f],t[f-1],!0)===0;)--f;return f}})(ae);const nr=pe(ae);var Ee={};function je(o){function e(t,i,s){var f=t[i];t[i]=t[s],t[s]=f}function r(t,i){return Math.round(t+Math.random()*(i-t))}function n(t,i,s,f){if(s<f){var a=r(s,f),h=s-1;e(t,a,f);for(var d=t[f],m=s;m<f;m++)i(t[m],d,!1)<=0&&(h+=1,e(t,h,m));e(t,h+1,m);var v=h+1;n(t,i,s,v-1),n(t,i,v+1,f)}}return n}function Te(o){let e=je.toString();return new Function(`return ${e}`)()(o)}let Me=new WeakMap;var tr=Ee.quickSort=function(o,e,r=0){let n=Me.get(e);n===void 0&&(n=Te(e),Me.set(e,n)),n(o,e,r,o.length-1)},g=F,ce=ae,k=se.ArraySet,$e=J,W=Ee.quickSort;function S(o,e){var r=o;return typeof o=="string"&&(r=g.parseSourceMapInput(o)),r.sections!=null?new j(r,e):new E(r,e)}S.fromSourceMap=function(o,e){return E.fromSourceMap(o,e)},S.prototype._version=3,S.prototype.__generatedMappings=null,Object.defineProperty(S.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),S.prototype.__originalMappings=null,Object.defineProperty(S.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),S.prototype._charIsMappingSeparator=function(e,r){var n=e.charAt(r);return n===";"||n===","},S.prototype._parseMappings=function(e,r){throw new Error("Subclasses must implement _parseMappings")},S.GENERATED_ORDER=1,S.ORIGINAL_ORDER=2,S.GREATEST_LOWER_BOUND=1,S.LEAST_UPPER_BOUND=2,S.prototype.eachMapping=function(e,r,n){var t=r||null,i=n||S.GENERATED_ORDER,s;switch(i){case S.GENERATED_ORDER:s=this._generatedMappings;break;case S.ORIGINAL_ORDER:s=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var f=this.sourceRoot,a=e.bind(t),h=this._names,d=this._sources,m=this._sourceMapURL,v=0,_=s.length;v<_;v++){var y=s[v],C=y.source===null?null:d.at(y.source);C!==null&&(C=g.computeSourceURL(f,C,m)),a({source:C,generatedLine:y.generatedLine,generatedColumn:y.generatedColumn,originalLine:y.originalLine,originalColumn:y.originalColumn,name:y.name===null?null:h.at(y.name)})}},S.prototype.allGeneratedPositionsFor=function(e){var r=g.getArg(e,"line"),n={source:g.getArg(e,"source"),originalLine:r,originalColumn:g.getArg(e,"column",0)};if(n.source=this._findSourceIndex(n.source),n.source<0)return[];var t=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",g.compareByOriginalPositions,ce.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(e.column===void 0)for(var f=s.originalLine;s&&s.originalLine===f;)t.push({line:g.getArg(s,"generatedLine",null),column:g.getArg(s,"generatedColumn",null),lastColumn:g.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var a=s.originalColumn;s&&s.originalLine===r&&s.originalColumn==a;)t.push({line:g.getArg(s,"generatedLine",null),column:g.getArg(s,"generatedColumn",null),lastColumn:g.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return t};var or=Z.SourceMapConsumer=S;function E(o,e){var r=o;typeof o=="string"&&(r=g.parseSourceMapInput(o));var n=g.getArg(r,"version"),t=g.getArg(r,"sources"),i=g.getArg(r,"names",[]),s=g.getArg(r,"sourceRoot",null),f=g.getArg(r,"sourcesContent",null),a=g.getArg(r,"mappings"),h=g.getArg(r,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);s&&(s=g.normalize(s)),t=t.map(String).map(g.normalize).map(function(d){return s&&g.isAbsolute(s)&&g.isAbsolute(d)?g.relative(s,d):d}),this._names=k.fromArray(i.map(String),!0),this._sources=k.fromArray(t,!0),this._absoluteSources=this._sources.toArray().map(function(d){return g.computeSourceURL(s,d,e)}),this.sourceRoot=s,this.sourcesContent=f,this._mappings=a,this._sourceMapURL=e,this.file=h}E.prototype=Object.create(S.prototype),E.prototype.consumer=S,E.prototype._findSourceIndex=function(o){var e=o;if(this.sourceRoot!=null&&(e=g.relative(this.sourceRoot,e)),this._sources.has(e))return this._sources.indexOf(e);var r;for(r=0;r<this._absoluteSources.length;++r)if(this._absoluteSources[r]==o)return r;return-1},E.fromSourceMap=function(e,r){var n=Object.create(E.prototype),t=n._names=k.fromArray(e._names.toArray(),!0),i=n._sources=k.fromArray(e._sources.toArray(),!0);n.sourceRoot=e._sourceRoot,n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=e._file,n._sourceMapURL=r,n._absoluteSources=n._sources.toArray().map(function(_){return g.computeSourceURL(n.sourceRoot,_,r)});for(var s=e._mappings.toArray().slice(),f=n.__generatedMappings=[],a=n.__originalMappings=[],h=0,d=s.length;h<d;h++){var m=s[h],v=new Le;v.generatedLine=m.generatedLine,v.generatedColumn=m.generatedColumn,m.source&&(v.source=i.indexOf(m.source),v.originalLine=m.originalLine,v.originalColumn=m.originalColumn,m.name&&(v.name=t.indexOf(m.name)),a.push(v)),f.push(v)}return W(n.__originalMappings,g.compareByOriginalPositions),n},E.prototype._version=3,Object.defineProperty(E.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function Le(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}const fe=g.compareByGeneratedPositionsDeflatedNoLine;function be(o,e){let r=o.length,n=o.length-e;if(!(n<=1))if(n==2){let t=o[e],i=o[e+1];fe(t,i)>0&&(o[e]=i,o[e+1]=t)}else if(n<20)for(let t=e;t<r;t++)for(let i=t;i>e;i--){let s=o[i-1],f=o[i];if(fe(s,f)<=0)break;o[i-1]=f,o[i]=s}else W(o,fe,e)}E.prototype._parseMappings=function(e,r){var n=1,t=0,i=0,s=0,f=0,a=0,h=e.length,d=0,m={},v={},_=[],y=[],C,ge,L,D,H;let R=0;for(;d<h;)if(e.charAt(d)===";")n++,d++,t=0,be(y,R),R=y.length;else if(e.charAt(d)===",")d++;else{for(C=new Le,C.generatedLine=n,D=d;D<h&&!this._charIsMappingSeparator(e,D);D++);for(ge=e.slice(d,D),L=[];d<D;)$e.decode(e,d,v),H=v.value,d=v.rest,L.push(H);if(L.length===2)throw new Error("Found a source, but no line and column");if(L.length===3)throw new Error("Found a source and line, but no column");if(C.generatedColumn=t+L[0],t=C.generatedColumn,L.length>1&&(C.source=f+L[1],f+=L[1],C.originalLine=i+L[2],i=C.originalLine,C.originalLine+=1,C.originalColumn=s+L[3],s=C.originalColumn,L.length>4&&(C.name=a+L[4],a+=L[4])),y.push(C),typeof C.originalLine=="number"){let U=C.source;for(;_.length<=U;)_.push(null);_[U]===null&&(_[U]=[]),_[U].push(C)}}be(y,R),this.__generatedMappings=y;for(var B=0;B<_.length;B++)_[B]!=null&&W(_[B],g.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(..._)},E.prototype._findMapping=function(e,r,n,t,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return ce.search(e,r,i,s)},E.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var r=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(r.generatedLine===n.generatedLine){r.lastGeneratedColumn=n.generatedColumn-1;continue}}r.lastGeneratedColumn=1/0}},E.prototype.originalPositionFor=function(e){var r={generatedLine:g.getArg(e,"line"),generatedColumn:g.getArg(e,"column")},n=this._findMapping(r,this._generatedMappings,"generatedLine","generatedColumn",g.compareByGeneratedPositionsDeflated,g.getArg(e,"bias",S.GREATEST_LOWER_BOUND));if(n>=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=g.getArg(t,"source",null);i!==null&&(i=this._sources.at(i),i=g.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var s=g.getArg(t,"name",null);return s!==null&&(s=this._names.at(s)),{source:i,line:g.getArg(t,"originalLine",null),column:g.getArg(t,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},E.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return e==null}):!1},E.prototype.sourceContentFor=function(e,r){if(!this.sourcesContent)return null;var n=this._findSourceIndex(e);if(n>=0)return this.sourcesContent[n];var t=e;this.sourceRoot!=null&&(t=g.relative(this.sourceRoot,t));var i;if(this.sourceRoot!=null&&(i=g.urlParse(this.sourceRoot))){var s=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(s))return this.sourcesContent[this._sources.indexOf(s)];if((!i.path||i.path=="/")&&this._sources.has("/"+t))return this.sourcesContent[this._sources.indexOf("/"+t)]}if(r)return null;throw new Error('"'+t+'" is not in the SourceMap.')},E.prototype.generatedPositionFor=function(e){var r=g.getArg(e,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};var n={source:r,originalLine:g.getArg(e,"line"),originalColumn:g.getArg(e,"column")},t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",g.compareByOriginalPositions,g.getArg(e,"bias",S.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source)return{line:g.getArg(i,"generatedLine",null),column:g.getArg(i,"generatedColumn",null),lastColumn:g.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};var ir=Z.BasicSourceMapConsumer=E;function j(o,e){var r=o;typeof o=="string"&&(r=g.parseSourceMapInput(o));var n=g.getArg(r,"version"),t=g.getArg(r,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new k,this._names=new k;var i={line:-1,column:0};this._sections=t.map(function(s){if(s.url)throw new Error("Support for url field in sections not implemented.");var f=g.getArg(s,"offset"),a=g.getArg(f,"line"),h=g.getArg(f,"column");if(a<i.line||a===i.line&&h<i.column)throw new Error("Section offsets must be ordered and non-overlapping.");return i=f,{generatedOffset:{generatedLine:a+1,generatedColumn:h+1},consumer:new S(g.getArg(s,"map"),e)}})}j.prototype=Object.create(S.prototype),j.prototype.constructor=S,j.prototype._version=3,Object.defineProperty(j.prototype,"sources",{get:function(){for(var o=[],e=0;e<this._sections.length;e++)for(var r=0;r<this._sections[e].consumer.sources.length;r++)o.push(this._sections[e].consumer.sources[r]);return o}}),j.prototype.originalPositionFor=function(e){var r={generatedLine:g.getArg(e,"line"),generatedColumn:g.getArg(e,"column")},n=ce.search(r,this._sections,function(i,s){var f=i.generatedLine-s.generatedOffset.generatedLine;return f||i.generatedColumn-s.generatedOffset.generatedColumn}),t=this._sections[n];return t?t.consumer.originalPositionFor({line:r.generatedLine-(t.generatedOffset.generatedLine-1),column:r.generatedColumn-(t.generatedOffset.generatedLine===r.generatedLine?t.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},j.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},j.prototype.sourceContentFor=function(e,r){for(var n=0;n<this._sections.length;n++){var t=this._sections[n],i=t.consumer.sourceContentFor(e,!0);if(i||i==="")return i}if(r)return null;throw new Error('"'+e+'" is not in the SourceMap.')},j.prototype.generatedPositionFor=function(e){for(var r=0;r<this._sections.length;r++){var n=this._sections[r];if(n.consumer._findSourceIndex(g.getArg(e,"source"))!==-1){var t=n.consumer.generatedPositionFor(e);if(t){var i={line:t.line+(n.generatedOffset.generatedLine-1),column:t.column+(n.generatedOffset.generatedLine===t.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},j.prototype._parseMappings=function(e,r){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var t=this._sections[n],i=t.consumer._generatedMappings,s=0;s<i.length;s++){var f=i[s],a=t.consumer._sources.at(f.source);a!==null&&(a=g.computeSourceURL(t.consumer.sourceRoot,a,this._sourceMapURL)),this._sources.add(a),a=this._sources.indexOf(a);var h=null;f.name&&(h=t.consumer._names.at(f.name),this._names.add(h),h=this._names.indexOf(h));var d={source:a,generatedLine:f.generatedLine+(t.generatedOffset.generatedLine-1),generatedColumn:f.generatedColumn+(t.generatedOffset.generatedLine===f.generatedLine?t.generatedOffset.generatedColumn-1:0),originalLine:f.originalLine,originalColumn:f.originalColumn,name:h};this.__generatedMappings.push(d),typeof d.originalLine=="number"&&this.__originalMappings.push(d)}W(this.__generatedMappings,g.compareByGeneratedPositionsDeflated),W(this.__originalMappings,g.compareByOriginalPositions)};var sr=Z.IndexedSourceMapConsumer=j,Oe={},Pe=te.SourceMapGenerator,Y=F,De=/(\r?\n)/,Fe=10,x="$$$isSourceNode$$$";function A(o,e,r,n,t){this.children=[],this.sourceContents={},this.line=o??null,this.column=e??null,this.source=r??null,this.name=t??null,this[x]=!0,n!=null&&this.add(n)}A.fromStringWithSourceMap=function(e,r,n){var t=new A,i=e.split(De),s=0,f=function(){var v=y(),_=y()||"";return v+_;function y(){return s<i.length?i[s++]:void 0}},a=1,h=0,d=null;return r.eachMapping(function(v){if(d!==null)if(a<v.generatedLine)m(d,f()),a++,h=0;else{var _=i[s]||"",y=_.substr(0,v.generatedColumn-h);i[s]=_.substr(v.generatedColumn-h),h=v.generatedColumn,m(d,y),d=v;return}for(;a<v.generatedLine;)t.add(f()),a++;if(h<v.generatedColumn){var _=i[s]||"";t.add(_.substr(0,v.generatedColumn)),i[s]=_.substr(v.generatedColumn),h=v.generatedColumn}d=v},this),s<i.length&&(d&&m(d,f()),t.add(i.splice(s).join(""))),r.sources.forEach(function(v){var _=r.sourceContentFor(v);_!=null&&(n!=null&&(v=Y.join(n,v)),t.setSourceContent(v,_))}),t;function m(v,_){if(v===null||v.source===void 0)t.add(_);else{var y=n?Y.join(n,v.source):v.source;t.add(new A(v.originalLine,v.originalColumn,y,_,v.name))}}},A.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(r){this.add(r)},this);else if(e[x]||typeof e=="string")e&&this.children.push(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},A.prototype.prepend=function(e){if(Array.isArray(e))for(var r=e.length-1;r>=0;r--)this.prepend(e[r]);else if(e[x]||typeof e=="string")this.children.unshift(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},A.prototype.walk=function(e){for(var r,n=0,t=this.children.length;n<t;n++)r=this.children[n],r[x]?r.walk(e):r!==""&&e(r,{source:this.source,line:this.line,column:this.column,name:this.name})},A.prototype.join=function(e){var r,n,t=this.children.length;if(t>0){for(r=[],n=0;n<t-1;n++)r.push(this.children[n]),r.push(e);r.push(this.children[n]),this.children=r}return this},A.prototype.replaceRight=function(e,r){var n=this.children[this.children.length-1];return n[x]?n.replaceRight(e,r):typeof n=="string"?this.children[this.children.length-1]=n.replace(e,r):this.children.push("".replace(e,r)),this},A.prototype.setSourceContent=function(e,r){this.sourceContents[Y.toSetString(e)]=r},A.prototype.walkSourceContents=function(e){for(var r=0,n=this.children.length;r<n;r++)this.children[r][x]&&this.children[r].walkSourceContents(e);for(var t=Object.keys(this.sourceContents),r=0,n=t.length;r<n;r++)e(Y.fromSetString(t[r]),this.sourceContents[t[r]])},A.prototype.toString=function(){var e="";return this.walk(function(r){e+=r}),e},A.prototype.toStringWithSourceMap=function(e){var r={code:"",line:1,column:0},n=new Pe(e),t=!1,i=null,s=null,f=null,a=null;return this.walk(function(h,d){r.code+=h,d.source!==null&&d.line!==null&&d.column!==null?((i!==d.source||s!==d.line||f!==d.column||a!==d.name)&&n.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:r.line,column:r.column},name:d.name}),i=d.source,s=d.line,f=d.column,a=d.name,t=!0):t&&(n.addMapping({generated:{line:r.line,column:r.column}}),i=null,t=!1);for(var m=0,v=h.length;m<v;m++)h.charCodeAt(m)===Fe?(r.line++,r.column=0,m+1===v?(i=null,t=!1):t&&n.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:r.line,column:r.column},name:d.name})):r.column++}),this.walkSourceContents(function(h,d){n.setSourceContent(h,d)}),{code:r.code,map:n}};var ur=Oe.SourceNode=A,lr=ne.SourceMapGenerator=te.SourceMapGenerator,ze=ne.SourceMapConsumer=Z.SourceMapConsumer,ar=ne.SourceNode=Oe.SourceNode;class Ae{constructor(e){G(this,"options",null);e&&(this.options=e)}parseStackTrace(e){const n=e.split(`
2
- `).find(h=>h.includes(".js:")||h.includes(".ts:"));if(!n)return null;const t=n.match(/(?:at(?:\s+\S.*(?:[\n\r\u2028\u2029]\s*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF])|\s{2,})\()?([^\s(]+):(\d+):(\d+)/);if(!t)return null;const[i,s,f,a]=t;return{fileName:s,lineNumber:Number.parseInt(f,10),columnNumber:Number.parseInt(a,10)}}async fetchSourceMap(e){try{const r=`${e}.map`,n=await fetch(r);return n.ok?await n.json():null}catch(r){return console.error("获取 source map 失败:",r),null}}async getErrorSource(e){if(!(e!=null&&e.stack))return null;try{const r=this.parseStackTrace(e.stack);if(!r)return null;const n=await this.fetchSourceMap(r.fileName);if(!n)return r;const t=new ze(n),i=t.originalPositionFor({line:r.lineNumber,column:r.columnNumber});if(!i.source)return r;const s=t.sourceContentFor(i.source),f=(s==null?void 0:s.split(`
3
- `))||[],a=(i.line||1)-1,h=Math.max(0,a-5),d=Math.min(f.length-1,a+5),m=f.slice(h,d+1).join(`
4
- `);return{fileName:i.source,lineNumber:i.line||0,columnNumber:i.column||0,sourceContent:m}}catch(r){return console.error("分析错误源码失败:",r),null}}}const I=class I{constructor(e){G(this,"options");G(this,"event");G(this,"source");G(this,"ERROR_REPORTED","error-reported");this.options=this.validateOptions(e),this.event=new O,this.source=new Ae,this.init(),e.integrations&&this.initIntegrations()}onErrorReported(e){this.event.on(this.ERROR_REPORTED,e)}initIntegrations(){var e;(e=this.options.integrations)==null||e.forEach(r=>{try{r.install(this)}catch(n){console.error(`Failed to initialize integration ${r.name}:`,n)}})}static getInstance(){if(!I.instance)throw new Error("ErrorMonitor未初始化,请先调用initialize方法");return I.instance}validateOptions(e){if(!e.url)throw new Error("上报地址url不能为空");if(!e.appId)throw new Error("应用标识appId不能为空");return{env:"production",sampleRate:1,...e}}init(){this.onErrorReported(e=>{this.reportError(e)})}getClientInfo(){return{url:window.location.href,userAgent:navigator.userAgent,screenSize:`${window.screen.width}x${window.screen.height}`,timestamp:Date.now()}}report(e){if(Math.random()>(this.options.sampleRate||1))return;let r={...e,appId:this.options.appId,env:this.options.env};if(this.options.beforeSend){const n=this.options.beforeSend(r);if(!n)return;r=n}navigator.sendBeacon?navigator.sendBeacon(this.options.url,JSON.stringify(r)):fetch(this.options.url,{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"},keepalive:!0}).catch(()=>{})}normalizeError(e){return this.isErrorInfo(e)?{...e,extraInfo:this.options.extraInfo}:e instanceof Error?{type:"js",message:e.message,stack:e.stack,extraInfo:this.options.extraInfo,...this.getClientInfo()}:{type:"js",message:e,extraInfo:this.options.extraInfo,...this.getClientInfo()}}isErrorInfo(e){return typeof e=="object"&&e!==null&&"type"in e&&"message"in e}reportError(e){if(!I.instance)throw new Error("ErrorMonitor未初始化,请先调用initialize方法");const r=this.normalizeError(e);console.log("errorInfo",r),this.report(r)}static initialize(e){if(I.instance)throw new Error("ErrorMonitor已经初始化,请勿重复初始化");return I.instance=new I(e),I.instance}static destroy(){I.instance&&(I.instance=null)}static captureError(e){I.getInstance().reportError(e)}emitError(e){this.event.emit(this.ERROR_REPORTED,e)}async getErrorSource(e){return this.source.getErrorSource(e)}};G(I,"instance",null);let he=I;class ke{constructor(e){G(this,"name","VueError");G(this,"app");this.app=e}install(e){this.app.config.errorHandler=async r=>{const n=await e.getErrorSource(r);console.log(n),e.emitError(r)}}}function de(){return{url:window.location.href,userAgent:navigator.userAgent,screenSize:`${window.screen.width}x${window.screen.height}`,timestamp:Date.now()}}class xe{constructor(){G(this,"name","BrowserError");G(this,"monitor",null)}install(e){this.monitor=e,window.addEventListener("error",r=>{this.handleJsError(r)},!0),window.addEventListener("unhandledrejection",r=>{this.handlePromiseError(r)}),window.addEventListener("error",r=>{r.target&&r.target.tagName&&this.handleResourceError(r)},!0)}handleJsError(e){var n;const r={type:"js",message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno,stack:(n=e.error)==null?void 0:n.stack,...de()};this.monitor&&this.monitor.emitError(r)}handlePromiseError(e){var n,t;const r={type:"promise",message:((n=e.reason)==null?void 0:n.message)||"Promise Error",stack:(t=e.reason)==null?void 0:t.stack,...de()};this.monitor&&this.monitor.emitError(r)}handleResourceError(e){const r=e.target,n={type:"resource",message:`资源加载失败: ${r.tagName} ${r.src||r.href}`,...de()};this.monitor&&this.monitor.emitError(n)}}M.BrowserError=xe,M.ErrorMonitor=he,M.SourceError=Ae,M.VueError=ke,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})});
1
+ (function(A,N){typeof exports=="object"&&typeof module<"u"?N(exports):typeof define=="function"&&define.amd?define(["exports"],N):(A=typeof globalThis<"u"?globalThis:A||self,N(A.KingMonitor={}))})(this,function(A){"use strict";var Qe=Object.defineProperty;var We=(A,N,Q)=>N in A?Qe(A,N,{enumerable:!0,configurable:!0,writable:!0,value:Q}):A[N]=Q;var D=(A,N,Q)=>We(A,typeof N!="symbol"?N+"":N,Q);class N{constructor(){D(this,"events",new Map)}on(e,r){this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(r)}off(e,r){const n=this.events.get(e);n&&(n.delete(r),n.size===0&&this.events.delete(e))}emit(e,...r){const n=this.events.get(e);n&&n.forEach(t=>{try{t(...r)}catch(i){console.error(`Error in event handler for ${e}:`,i)}})}clear(){this.events.clear()}getSubscriberCount(e){const r=this.events.get(e);return r?r.size:0}hasSubscribers(e){return this.getSubscriberCount(e)>0}}var Q=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function me(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function qe(o){return o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function Je(o){return o&&Object.prototype.hasOwnProperty.call(o,"default")&&Object.keys(o).length===1?o.default:o}function Ke(o){if(o.__esModule)return o;var e=o.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(o).forEach(function(n){var t=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return o[n]}})}),r}var oe={},ie={},X={},se={},ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Xe=se.encode=function(o){if(0<=o&&o<ve.length)return ve[o];throw new TypeError("Must be between 0 and 63: "+o)},Ze=se.decode=function(o){var e=65,r=90,n=97,t=122,i=48,s=57,f=43,c=47,h=26,d=52;return e<=o&&o<=r?o-e:n<=o&&o<=t?o-n+h:i<=o&&o<=s?o-i+d:o==f?62:o==c?63:-1},_e=se,ue=5,Se=1<<ue,ye=Se-1,Ce=Se;function Re(o){return o<0?(-o<<1)+1:(o<<1)+0}function Ne(o){var e=(o&1)===1,r=o>>1;return e?-r:r}var Ye=X.encode=function(e){var r="",n,t=Re(e);do n=t&ye,t>>>=ue,t>0&&(n|=Ce),r+=_e.encode(n);while(t>0);return r},He=X.decode=function(e,r,n){var t=e.length,i=0,s=0,f,c;do{if(r>=t)throw new Error("Expected more digits in base 64 VLQ value.");if(c=_e.decode(e.charCodeAt(r++)),c===-1)throw new Error("Invalid base64 digit: "+e.charAt(r-1));f=!!(c&Ce),c&=ye,i=i+(c<<s),s+=ue}while(f);n.value=Ne(i),n.rest=r},x={};(function(o){function e(u,l,g){if(l in u)return u[l];if(arguments.length===3)return g;throw new Error('"'+l+'" is a required argument.')}o.getArg=e;var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function t(u){var l=u.match(r);return l?{scheme:l[1],auth:l[2],host:l[3],port:l[4],path:l[5]}:null}o.urlParse=t;function i(u){var l="";return u.scheme&&(l+=u.scheme+":"),l+="//",u.auth&&(l+=u.auth+"@"),u.host&&(l+=u.host),u.port&&(l+=":"+u.port),u.path&&(l+=u.path),l}o.urlGenerate=i;var s=32;function f(u){var l=[];return function(g){for(var a=0;a<l.length;a++)if(l[a].input===g){var F=l[0];return l[0]=l[a],l[a]=F,l[0].result}var P=u(g);return l.unshift({input:g,result:P}),l.length>s&&l.pop(),P}}var c=f(function(l){var g=l,a=t(l);if(a){if(!a.path)return l;g=a.path}for(var F=o.isAbsolute(g),P=[],ne=0,R=0;;)if(ne=R,R=g.indexOf("/",ne),R===-1){P.push(g.slice(ne));break}else for(P.push(g.slice(ne,R));R<g.length&&g[R]==="/";)R++;for(var te,K=0,R=P.length-1;R>=0;R--)te=P[R],te==="."?P.splice(R,1):te===".."?K++:K>0&&(te===""?(P.splice(R+1,K),K=0):(P.splice(R,2),K--));return g=P.join("/"),g===""&&(g=F?"/":"."),a?(a.path=g,i(a)):g});o.normalize=c;function h(u,l){u===""&&(u="."),l===""&&(l=".");var g=t(l),a=t(u);if(a&&(u=a.path||"/"),g&&!g.scheme)return a&&(g.scheme=a.scheme),i(g);if(g||l.match(n))return l;if(a&&!a.host&&!a.path)return a.host=l,i(a);var F=l.charAt(0)==="/"?l:c(u.replace(/\/+$/,"")+"/"+l);return a?(a.path=F,i(a)):F}o.join=h,o.isAbsolute=function(u){return u.charAt(0)==="/"||r.test(u)};function d(u,l){u===""&&(u="."),u=u.replace(/\/$/,"");for(var g=0;l.indexOf(u+"/")!==0;){var a=u.lastIndexOf("/");if(a<0||(u=u.slice(0,a),u.match(/^([^\/]+:\/)?\/*$/)))return l;++g}return Array(g+1).join("../")+l.substr(u.length+1)}o.relative=d;var v=function(){var u=Object.create(null);return!("__proto__"in u)}();function m(u){return u}function _(u){return S(u)?"$"+u:u}o.toSetString=v?m:_;function C(u){return S(u)?u.slice(1):u}o.fromSetString=v?m:C;function S(u){if(!u)return!1;var l=u.length;if(l<9||u.charCodeAt(l-1)!==95||u.charCodeAt(l-2)!==95||u.charCodeAt(l-3)!==111||u.charCodeAt(l-4)!==116||u.charCodeAt(l-5)!==111||u.charCodeAt(l-6)!==114||u.charCodeAt(l-7)!==112||u.charCodeAt(l-8)!==95||u.charCodeAt(l-9)!==95)return!1;for(var g=l-10;g>=0;g--)if(u.charCodeAt(g)!==36)return!1;return!0}function J(u,l,g){var a=L(u.source,l.source);return a!==0||(a=u.originalLine-l.originalLine,a!==0)||(a=u.originalColumn-l.originalColumn,a!==0||g)||(a=u.generatedColumn-l.generatedColumn,a!==0)||(a=u.generatedLine-l.generatedLine,a!==0)?a:L(u.name,l.name)}o.compareByOriginalPositions=J;function E(u,l,g){var a;return a=u.originalLine-l.originalLine,a!==0||(a=u.originalColumn-l.originalColumn,a!==0||g)||(a=u.generatedColumn-l.generatedColumn,a!==0)||(a=u.generatedLine-l.generatedLine,a!==0)?a:L(u.name,l.name)}o.compareByOriginalPositionsNoSource=E;function I(u,l,g){var a=u.generatedLine-l.generatedLine;return a!==0||(a=u.generatedColumn-l.generatedColumn,a!==0||g)||(a=L(u.source,l.source),a!==0)||(a=u.originalLine-l.originalLine,a!==0)||(a=u.originalColumn-l.originalColumn,a!==0)?a:L(u.name,l.name)}o.compareByGeneratedPositionsDeflated=I;function z(u,l,g){var a=u.generatedColumn-l.generatedColumn;return a!==0||g||(a=L(u.source,l.source),a!==0)||(a=u.originalLine-l.originalLine,a!==0)||(a=u.originalColumn-l.originalColumn,a!==0)?a:L(u.name,l.name)}o.compareByGeneratedPositionsDeflatedNoLine=z;function L(u,l){return u===l?0:u===null?1:l===null?-1:u>l?1:-1}function O(u,l){var g=u.generatedLine-l.generatedLine;return g!==0||(g=u.generatedColumn-l.generatedColumn,g!==0)||(g=L(u.source,l.source),g!==0)||(g=u.originalLine-l.originalLine,g!==0)||(g=u.originalColumn-l.originalColumn,g!==0)?g:L(u.name,l.name)}o.compareByGeneratedPositionsInflated=O;function y(u){return JSON.parse(u.replace(/^\)]}'[^\n]*\n/,""))}o.parseSourceMapInput=y;function re(u,l,g){if(l=l||"",u&&(u[u.length-1]!=="/"&&l[0]!=="/"&&(u+="/"),l=u+l),g){var a=t(g);if(!a)throw new Error("sourceMapURL could not be parsed");if(a.path){var F=a.path.lastIndexOf("/");F>=0&&(a.path=a.path.substring(0,F+1))}l=h(i(a),l)}return c(l)}o.computeSourceURL=re})(x);const er=me(x);var le={},ae=x,ce=Object.prototype.hasOwnProperty,U=typeof Map<"u";function k(){this._array=[],this._set=U?new Map:Object.create(null)}k.fromArray=function(e,r){for(var n=new k,t=0,i=e.length;t<i;t++)n.add(e[t],r);return n},k.prototype.size=function(){return U?this._set.size:Object.getOwnPropertyNames(this._set).length},k.prototype.add=function(e,r){var n=U?e:ae.toSetString(e),t=U?this.has(e):ce.call(this._set,n),i=this._array.length;(!t||r)&&this._array.push(e),t||(U?this._set.set(e,i):this._set[n]=i)},k.prototype.has=function(e){if(U)return this._set.has(e);var r=ae.toSetString(e);return ce.call(this._set,r)},k.prototype.indexOf=function(e){if(U){var r=this._set.get(e);if(r>=0)return r}else{var n=ae.toSetString(e);if(ce.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},k.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},k.prototype.toArray=function(){return this._array.slice()};var rr=le.ArraySet=k,we={},Ee=x;function $e(o,e){var r=o.generatedLine,n=e.generatedLine,t=o.generatedColumn,i=e.generatedColumn;return n>r||n==r&&i>=t||Ee.compareByGeneratedPositionsInflated(o,e)<=0}function Z(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Z.prototype.unsortedForEach=function(e,r){this._array.forEach(e,r)},Z.prototype.add=function(e){$e(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},Z.prototype.toArray=function(){return this._sorted||(this._array.sort(Ee.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};var nr=we.MappingList=Z,W=X,M=x,Y=le.ArraySet,Ge=we.MappingList;function j(o){o||(o={}),this._file=M.getArg(o,"file",null),this._sourceRoot=M.getArg(o,"sourceRoot",null),this._skipValidation=M.getArg(o,"skipValidation",!1),this._ignoreInvalidMapping=M.getArg(o,"ignoreInvalidMapping",!1),this._sources=new Y,this._names=new Y,this._mappings=new Ge,this._sourcesContents=null}j.prototype._version=3,j.fromSourceMap=function(e,r){var n=e.sourceRoot,t=new j(Object.assign(r||{},{file:e.file,sourceRoot:n}));return e.eachMapping(function(i){var s={generated:{line:i.generatedLine,column:i.generatedColumn}};i.source!=null&&(s.source=i.source,n!=null&&(s.source=M.relative(n,s.source)),s.original={line:i.originalLine,column:i.originalColumn},i.name!=null&&(s.name=i.name)),t.addMapping(s)}),e.sources.forEach(function(i){var s=i;n!==null&&(s=M.relative(n,i)),t._sources.has(s)||t._sources.add(s);var f=e.sourceContentFor(i);f!=null&&t.setSourceContent(i,f)}),t},j.prototype.addMapping=function(e){var r=M.getArg(e,"generated"),n=M.getArg(e,"original",null),t=M.getArg(e,"source",null),i=M.getArg(e,"name",null);!this._skipValidation&&this._validateMapping(r,n,t,i)===!1||(t!=null&&(t=String(t),this._sources.has(t)||this._sources.add(t)),i!=null&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i}))},j.prototype.setSourceContent=function(e,r){var n=e;this._sourceRoot!=null&&(n=M.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[M.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[M.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},j.prototype.applySourceMap=function(e,r,n){var t=r;if(r==null){if(e.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);t=e.file}var i=this._sourceRoot;i!=null&&(t=M.relative(i,t));var s=new Y,f=new Y;this._mappings.unsortedForEach(function(c){if(c.source===t&&c.originalLine!=null){var h=e.originalPositionFor({line:c.originalLine,column:c.originalColumn});h.source!=null&&(c.source=h.source,n!=null&&(c.source=M.join(n,c.source)),i!=null&&(c.source=M.relative(i,c.source)),c.originalLine=h.line,c.originalColumn=h.column,h.name!=null&&(c.name=h.name))}var d=c.source;d!=null&&!s.has(d)&&s.add(d);var v=c.name;v!=null&&!f.has(v)&&f.add(v)},this),this._sources=s,this._names=f,e.sources.forEach(function(c){var h=e.sourceContentFor(c);h!=null&&(n!=null&&(c=M.join(n,c)),i!=null&&(c=M.relative(i,c)),this.setSourceContent(c,h))},this)},j.prototype._validateMapping=function(e,r,n,t){if(r&&typeof r.line!="number"&&typeof r.column!="number"){var i="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}if(!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t)){if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n)return;var i="Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t});if(this._ignoreInvalidMapping)return typeof console<"u"&&console.warn&&console.warn(i),!1;throw new Error(i)}},j.prototype._serializeMappings=function(){for(var e=0,r=1,n=0,t=0,i=0,s=0,f="",c,h,d,v,m=this._mappings.toArray(),_=0,C=m.length;_<C;_++){if(h=m[_],c="",h.generatedLine!==r)for(e=0;h.generatedLine!==r;)c+=";",r++;else if(_>0){if(!M.compareByGeneratedPositionsInflated(h,m[_-1]))continue;c+=","}c+=W.encode(h.generatedColumn-e),e=h.generatedColumn,h.source!=null&&(v=this._sources.indexOf(h.source),c+=W.encode(v-s),s=v,c+=W.encode(h.originalLine-1-t),t=h.originalLine-1,c+=W.encode(h.originalColumn-n),n=h.originalColumn,h.name!=null&&(d=this._names.indexOf(h.name),c+=W.encode(d-i),i=d)),f+=c}return f},j.prototype._generateSourcesContent=function(e,r){return e.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=M.relative(r,n));var t=M.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null},this)},j.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(e.file=this._file),this._sourceRoot!=null&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},j.prototype.toString=function(){return JSON.stringify(this.toJSON())};var tr=ie.SourceMapGenerator=j,H={},fe={};(function(o){o.GREATEST_LOWER_BOUND=1,o.LEAST_UPPER_BOUND=2;function e(r,n,t,i,s,f){var c=Math.floor((n-r)/2)+r,h=s(t,i[c],!0);return h===0?c:h>0?n-c>1?e(c,n,t,i,s,f):f==o.LEAST_UPPER_BOUND?n<i.length?n:-1:c:c-r>1?e(r,c,t,i,s,f):f==o.LEAST_UPPER_BOUND?c:r<0?-1:r}o.search=function(n,t,i,s){if(t.length===0)return-1;var f=e(-1,t.length,n,t,i,s||o.GREATEST_LOWER_BOUND);if(f<0)return-1;for(;f-1>=0&&i(t[f],t[f-1],!0)===0;)--f;return f}})(fe);const or=me(fe);var Me={};function je(o){function e(t,i,s){var f=t[i];t[i]=t[s],t[s]=f}function r(t,i){return Math.round(t+Math.random()*(i-t))}function n(t,i,s,f){if(s<f){var c=r(s,f),h=s-1;e(t,c,f);for(var d=t[f],v=s;v<f;v++)i(t[v],d,!1)<=0&&(h+=1,e(t,h,v));e(t,h+1,v);var m=h+1;n(t,i,s,m-1),n(t,i,m+1,f)}}return n}function De(o){let e=je.toString();return new Function(`return ${e}`)()(o)}let Le=new WeakMap;var ir=Me.quickSort=function(o,e,r=0){let n=Le.get(e);n===void 0&&(n=De(e),Le.set(e,n)),n(o,e,r,o.length-1)},p=x,he=fe,B=le.ArraySet,Te=X,q=Me.quickSort;function w(o,e){var r=o;return typeof o=="string"&&(r=p.parseSourceMapInput(o)),r.sections!=null?new T(r,e):new b(r,e)}w.fromSourceMap=function(o,e){return b.fromSourceMap(o,e)},w.prototype._version=3,w.prototype.__generatedMappings=null,Object.defineProperty(w.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),w.prototype.__originalMappings=null,Object.defineProperty(w.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),w.prototype._charIsMappingSeparator=function(e,r){var n=e.charAt(r);return n===";"||n===","},w.prototype._parseMappings=function(e,r){throw new Error("Subclasses must implement _parseMappings")},w.GENERATED_ORDER=1,w.ORIGINAL_ORDER=2,w.GREATEST_LOWER_BOUND=1,w.LEAST_UPPER_BOUND=2,w.prototype.eachMapping=function(e,r,n){var t=r||null,i=n||w.GENERATED_ORDER,s;switch(i){case w.GENERATED_ORDER:s=this._generatedMappings;break;case w.ORIGINAL_ORDER:s=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var f=this.sourceRoot,c=e.bind(t),h=this._names,d=this._sources,v=this._sourceMapURL,m=0,_=s.length;m<_;m++){var C=s[m],S=C.source===null?null:d.at(C.source);S!==null&&(S=p.computeSourceURL(f,S,v)),c({source:S,generatedLine:C.generatedLine,generatedColumn:C.generatedColumn,originalLine:C.originalLine,originalColumn:C.originalColumn,name:C.name===null?null:h.at(C.name)})}},w.prototype.allGeneratedPositionsFor=function(e){var r=p.getArg(e,"line"),n={source:p.getArg(e,"source"),originalLine:r,originalColumn:p.getArg(e,"column",0)};if(n.source=this._findSourceIndex(n.source),n.source<0)return[];var t=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",p.compareByOriginalPositions,he.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(e.column===void 0)for(var f=s.originalLine;s&&s.originalLine===f;)t.push({line:p.getArg(s,"generatedLine",null),column:p.getArg(s,"generatedColumn",null),lastColumn:p.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var c=s.originalColumn;s&&s.originalLine===r&&s.originalColumn==c;)t.push({line:p.getArg(s,"generatedLine",null),column:p.getArg(s,"generatedColumn",null),lastColumn:p.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return t};var sr=H.SourceMapConsumer=w;function b(o,e){var r=o;typeof o=="string"&&(r=p.parseSourceMapInput(o));var n=p.getArg(r,"version"),t=p.getArg(r,"sources"),i=p.getArg(r,"names",[]),s=p.getArg(r,"sourceRoot",null),f=p.getArg(r,"sourcesContent",null),c=p.getArg(r,"mappings"),h=p.getArg(r,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);s&&(s=p.normalize(s)),t=t.map(String).map(p.normalize).map(function(d){return s&&p.isAbsolute(s)&&p.isAbsolute(d)?p.relative(s,d):d}),this._names=B.fromArray(i.map(String),!0),this._sources=B.fromArray(t,!0),this._absoluteSources=this._sources.toArray().map(function(d){return p.computeSourceURL(s,d,e)}),this.sourceRoot=s,this.sourcesContent=f,this._mappings=c,this._sourceMapURL=e,this.file=h}b.prototype=Object.create(w.prototype),b.prototype.consumer=w,b.prototype._findSourceIndex=function(o){var e=o;if(this.sourceRoot!=null&&(e=p.relative(this.sourceRoot,e)),this._sources.has(e))return this._sources.indexOf(e);var r;for(r=0;r<this._absoluteSources.length;++r)if(this._absoluteSources[r]==o)return r;return-1},b.fromSourceMap=function(e,r){var n=Object.create(b.prototype),t=n._names=B.fromArray(e._names.toArray(),!0),i=n._sources=B.fromArray(e._sources.toArray(),!0);n.sourceRoot=e._sourceRoot,n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=e._file,n._sourceMapURL=r,n._absoluteSources=n._sources.toArray().map(function(_){return p.computeSourceURL(n.sourceRoot,_,r)});for(var s=e._mappings.toArray().slice(),f=n.__generatedMappings=[],c=n.__originalMappings=[],h=0,d=s.length;h<d;h++){var v=s[h],m=new be;m.generatedLine=v.generatedLine,m.generatedColumn=v.generatedColumn,v.source&&(m.source=i.indexOf(v.source),m.originalLine=v.originalLine,m.originalColumn=v.originalColumn,v.name&&(m.name=t.indexOf(v.name)),c.push(m)),f.push(m)}return q(n.__originalMappings,p.compareByOriginalPositions),n},b.prototype._version=3,Object.defineProperty(b.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function be(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}const de=p.compareByGeneratedPositionsDeflatedNoLine;function Oe(o,e){let r=o.length,n=o.length-e;if(!(n<=1))if(n==2){let t=o[e],i=o[e+1];de(t,i)>0&&(o[e]=i,o[e+1]=t)}else if(n<20)for(let t=e;t<r;t++)for(let i=t;i>e;i--){let s=o[i-1],f=o[i];if(de(s,f)<=0)break;o[i-1]=f,o[i]=s}else q(o,de,e)}b.prototype._parseMappings=function(e,r){var n=1,t=0,i=0,s=0,f=0,c=0,h=e.length,d=0,v={},m={},_=[],C=[],S,J,E,I,z;let L=0;for(;d<h;)if(e.charAt(d)===";")n++,d++,t=0,Oe(C,L),L=C.length;else if(e.charAt(d)===",")d++;else{for(S=new be,S.generatedLine=n,I=d;I<h&&!this._charIsMappingSeparator(e,I);I++);for(J=e.slice(d,I),E=[];d<I;)Te.decode(e,d,m),z=m.value,d=m.rest,E.push(z);if(E.length===2)throw new Error("Found a source, but no line and column");if(E.length===3)throw new Error("Found a source and line, but no column");if(S.generatedColumn=t+E[0],t=S.generatedColumn,E.length>1&&(S.source=f+E[1],f+=E[1],S.originalLine=i+E[2],i=S.originalLine,S.originalLine+=1,S.originalColumn=s+E[3],s=S.originalColumn,E.length>4&&(S.name=c+E[4],c+=E[4])),C.push(S),typeof S.originalLine=="number"){let y=S.source;for(;_.length<=y;)_.push(null);_[y]===null&&(_[y]=[]),_[y].push(S)}}Oe(C,L),this.__generatedMappings=C;for(var O=0;O<_.length;O++)_[O]!=null&&q(_[O],p.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(..._)},b.prototype._findMapping=function(e,r,n,t,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return he.search(e,r,i,s)},b.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var r=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(r.generatedLine===n.generatedLine){r.lastGeneratedColumn=n.generatedColumn-1;continue}}r.lastGeneratedColumn=1/0}},b.prototype.originalPositionFor=function(e){var r={generatedLine:p.getArg(e,"line"),generatedColumn:p.getArg(e,"column")},n=this._findMapping(r,this._generatedMappings,"generatedLine","generatedColumn",p.compareByGeneratedPositionsDeflated,p.getArg(e,"bias",w.GREATEST_LOWER_BOUND));if(n>=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=p.getArg(t,"source",null);i!==null&&(i=this._sources.at(i),i=p.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var s=p.getArg(t,"name",null);return s!==null&&(s=this._names.at(s)),{source:i,line:p.getArg(t,"originalLine",null),column:p.getArg(t,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},b.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return e==null}):!1},b.prototype.sourceContentFor=function(e,r){if(!this.sourcesContent)return null;var n=this._findSourceIndex(e);if(n>=0)return this.sourcesContent[n];var t=e;this.sourceRoot!=null&&(t=p.relative(this.sourceRoot,t));var i;if(this.sourceRoot!=null&&(i=p.urlParse(this.sourceRoot))){var s=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(s))return this.sourcesContent[this._sources.indexOf(s)];if((!i.path||i.path=="/")&&this._sources.has("/"+t))return this.sourcesContent[this._sources.indexOf("/"+t)]}if(r)return null;throw new Error('"'+t+'" is not in the SourceMap.')},b.prototype.generatedPositionFor=function(e){var r=p.getArg(e,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};var n={source:r,originalLine:p.getArg(e,"line"),originalColumn:p.getArg(e,"column")},t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",p.compareByOriginalPositions,p.getArg(e,"bias",w.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source)return{line:p.getArg(i,"generatedLine",null),column:p.getArg(i,"generatedColumn",null),lastColumn:p.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};var ur=H.BasicSourceMapConsumer=b;function T(o,e){var r=o;typeof o=="string"&&(r=p.parseSourceMapInput(o));var n=p.getArg(r,"version"),t=p.getArg(r,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new B,this._names=new B;var i={line:-1,column:0};this._sections=t.map(function(s){if(s.url)throw new Error("Support for url field in sections not implemented.");var f=p.getArg(s,"offset"),c=p.getArg(f,"line"),h=p.getArg(f,"column");if(c<i.line||c===i.line&&h<i.column)throw new Error("Section offsets must be ordered and non-overlapping.");return i=f,{generatedOffset:{generatedLine:c+1,generatedColumn:h+1},consumer:new w(p.getArg(s,"map"),e)}})}T.prototype=Object.create(w.prototype),T.prototype.constructor=w,T.prototype._version=3,Object.defineProperty(T.prototype,"sources",{get:function(){for(var o=[],e=0;e<this._sections.length;e++)for(var r=0;r<this._sections[e].consumer.sources.length;r++)o.push(this._sections[e].consumer.sources[r]);return o}}),T.prototype.originalPositionFor=function(e){var r={generatedLine:p.getArg(e,"line"),generatedColumn:p.getArg(e,"column")},n=he.search(r,this._sections,function(i,s){var f=i.generatedLine-s.generatedOffset.generatedLine;return f||i.generatedColumn-s.generatedOffset.generatedColumn}),t=this._sections[n];return t?t.consumer.originalPositionFor({line:r.generatedLine-(t.generatedOffset.generatedLine-1),column:r.generatedColumn-(t.generatedOffset.generatedLine===r.generatedLine?t.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},T.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},T.prototype.sourceContentFor=function(e,r){for(var n=0;n<this._sections.length;n++){var t=this._sections[n],i=t.consumer.sourceContentFor(e,!0);if(i||i==="")return i}if(r)return null;throw new Error('"'+e+'" is not in the SourceMap.')},T.prototype.generatedPositionFor=function(e){for(var r=0;r<this._sections.length;r++){var n=this._sections[r];if(n.consumer._findSourceIndex(p.getArg(e,"source"))!==-1){var t=n.consumer.generatedPositionFor(e);if(t){var i={line:t.line+(n.generatedOffset.generatedLine-1),column:t.column+(n.generatedOffset.generatedLine===t.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},T.prototype._parseMappings=function(e,r){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var t=this._sections[n],i=t.consumer._generatedMappings,s=0;s<i.length;s++){var f=i[s],c=t.consumer._sources.at(f.source);c!==null&&(c=p.computeSourceURL(t.consumer.sourceRoot,c,this._sourceMapURL)),this._sources.add(c),c=this._sources.indexOf(c);var h=null;f.name&&(h=t.consumer._names.at(f.name),this._names.add(h),h=this._names.indexOf(h));var d={source:c,generatedLine:f.generatedLine+(t.generatedOffset.generatedLine-1),generatedColumn:f.generatedColumn+(t.generatedOffset.generatedLine===f.generatedLine?t.generatedOffset.generatedColumn-1:0),originalLine:f.originalLine,originalColumn:f.originalColumn,name:h};this.__generatedMappings.push(d),typeof d.originalLine=="number"&&this.__originalMappings.push(d)}q(this.__generatedMappings,p.compareByGeneratedPositionsDeflated),q(this.__originalMappings,p.compareByOriginalPositions)};var lr=H.IndexedSourceMapConsumer=T,Ae={},Pe=ie.SourceMapGenerator,ee=x,ke=/(\r?\n)/,Fe=10,V="$$$isSourceNode$$$";function $(o,e,r,n,t){this.children=[],this.sourceContents={},this.line=o??null,this.column=e??null,this.source=r??null,this.name=t??null,this[V]=!0,n!=null&&this.add(n)}$.fromStringWithSourceMap=function(e,r,n){var t=new $,i=e.split(ke),s=0,f=function(){var m=C(),_=C()||"";return m+_;function C(){return s<i.length?i[s++]:void 0}},c=1,h=0,d=null;return r.eachMapping(function(m){if(d!==null)if(c<m.generatedLine)v(d,f()),c++,h=0;else{var _=i[s]||"",C=_.substr(0,m.generatedColumn-h);i[s]=_.substr(m.generatedColumn-h),h=m.generatedColumn,v(d,C),d=m;return}for(;c<m.generatedLine;)t.add(f()),c++;if(h<m.generatedColumn){var _=i[s]||"";t.add(_.substr(0,m.generatedColumn)),i[s]=_.substr(m.generatedColumn),h=m.generatedColumn}d=m},this),s<i.length&&(d&&v(d,f()),t.add(i.splice(s).join(""))),r.sources.forEach(function(m){var _=r.sourceContentFor(m);_!=null&&(n!=null&&(m=ee.join(n,m)),t.setSourceContent(m,_))}),t;function v(m,_){if(m===null||m.source===void 0)t.add(_);else{var C=n?ee.join(n,m.source):m.source;t.add(new $(m.originalLine,m.originalColumn,C,_,m.name))}}},$.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(r){this.add(r)},this);else if(e[V]||typeof e=="string")e&&this.children.push(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},$.prototype.prepend=function(e){if(Array.isArray(e))for(var r=e.length-1;r>=0;r--)this.prepend(e[r]);else if(e[V]||typeof e=="string")this.children.unshift(e);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);return this},$.prototype.walk=function(e){for(var r,n=0,t=this.children.length;n<t;n++)r=this.children[n],r[V]?r.walk(e):r!==""&&e(r,{source:this.source,line:this.line,column:this.column,name:this.name})},$.prototype.join=function(e){var r,n,t=this.children.length;if(t>0){for(r=[],n=0;n<t-1;n++)r.push(this.children[n]),r.push(e);r.push(this.children[n]),this.children=r}return this},$.prototype.replaceRight=function(e,r){var n=this.children[this.children.length-1];return n[V]?n.replaceRight(e,r):typeof n=="string"?this.children[this.children.length-1]=n.replace(e,r):this.children.push("".replace(e,r)),this},$.prototype.setSourceContent=function(e,r){this.sourceContents[ee.toSetString(e)]=r},$.prototype.walkSourceContents=function(e){for(var r=0,n=this.children.length;r<n;r++)this.children[r][V]&&this.children[r].walkSourceContents(e);for(var t=Object.keys(this.sourceContents),r=0,n=t.length;r<n;r++)e(ee.fromSetString(t[r]),this.sourceContents[t[r]])},$.prototype.toString=function(){var e="";return this.walk(function(r){e+=r}),e},$.prototype.toStringWithSourceMap=function(e){var r={code:"",line:1,column:0},n=new Pe(e),t=!1,i=null,s=null,f=null,c=null;return this.walk(function(h,d){r.code+=h,d.source!==null&&d.line!==null&&d.column!==null?((i!==d.source||s!==d.line||f!==d.column||c!==d.name)&&n.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:r.line,column:r.column},name:d.name}),i=d.source,s=d.line,f=d.column,c=d.name,t=!0):t&&(n.addMapping({generated:{line:r.line,column:r.column}}),i=null,t=!1);for(var v=0,m=h.length;v<m;v++)h.charCodeAt(v)===Fe?(r.line++,r.column=0,v+1===m?(i=null,t=!1):t&&n.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:r.line,column:r.column},name:d.name})):r.column++}),this.walkSourceContents(function(h,d){n.setSourceContent(h,d)}),{code:r.code,map:n}};var ar=Ae.SourceNode=$,cr=oe.SourceMapGenerator=ie.SourceMapGenerator,ze=oe.SourceMapConsumer=H.SourceMapConsumer,fr=oe.SourceNode=Ae.SourceNode;class Ie{constructor(e){D(this,"options",null);e&&(this.options=e)}parseStackTrace(e){const n=e.split(`
2
+ `).find(h=>h.includes(".js:")||h.includes(".ts:"));if(!n)return null;const t=n.match(/(?:at(?:\s+\S.*(?:[\n\r\u2028\u2029]\s*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF])|\s{2,})\()?([^\s(]+):(\d+):(\d+)/);if(!t)return null;const[i,s,f,c]=t;return{fileName:s,lineNumber:Number.parseInt(f,10),columnNumber:Number.parseInt(c,10)}}async fetchSourceMap(e){try{const r=`${e}.map`,n=await fetch(r);return n.ok?await n.json():null}catch(r){return console.error("获取 source map 失败:",r),null}}async getErrorSource(e){if(!(e!=null&&e.stack))return null;try{const r=this.parseStackTrace(e.stack);if(!r)return null;const n=await this.fetchSourceMap(r.fileName);if(!n)return r;const t=new ze(n),i=t.originalPositionFor({line:r.lineNumber,column:r.columnNumber});if(!i.source)return r;const s=t.sourceContentFor(i.source),f=(s==null?void 0:s.split(`
3
+ `))||[],c=(i.line||1)-1,h=Math.max(0,c-5),d=Math.min(f.length-1,c+5),v=f.slice(h,d+1).join(`
4
+ `);return{fileName:i.source,lineNumber:i.line||0,columnNumber:i.column||0,sourceContent:v}}catch(r){return console.error("分析错误源码失败:",r),null}}}function ge(){return{url:window.location.href,userAgent:navigator.userAgent,screenSize:`${window.screen.width}x${window.screen.height}`,timestamp:Date.now()}}function xe(o,e={}){const{encode:r=!0,encodeValuesOnly:n=!1,arrayFormat:t="indices",skipNulls:i=!1,delimiter:s="&",strictNullHandling:f=!1,sort:c,filter:h,allowDots:d=!1,serializeDate:v=O=>O.toISOString(),format:m="RFC3986",addQueryPrefix:_=!1,charset:C="utf-8"}=e,S=[],J=C==="iso-8859-1"?Ue:encodeURIComponent,E=O=>r?J(O):O,I=(O,y,re=null)=>{const u=re?`${re}[${O}]`:O;if(h){const l=h(u,y);if(l===void 0)return;y=l}if(y===null){f?S.push(E(u)+(n?"":"=")):i||S.push(`${E(u)}=`);return}if((typeof y=="boolean"||typeof y=="number")&&(y=String(y)),y instanceof Date&&(y=v(y)),Array.isArray(y)){if(y.length===0&&i)return;switch(t){case"indices":y.forEach((g,a)=>{I(String(a),g,u)});break;case"brackets":y.forEach(g=>{I("",g,u)});break;case"repeat":y.forEach(g=>{I(u,g)});break;case"comma":const l=y.join(",");l.length>0&&S.push(`${E(u)}=${E(l)}`);break}}else if(typeof y=="object")Object.keys(y).forEach(l=>{const g=d?".":"[",a=d?"":"]";I(l,y[l],`${u}${g}${l}${a}`)});else{const l=r&&!n?E(u):u,g=E(String(y));S.push(`${l}=${g}`)}};let z=Object.keys(o);c&&(z=z.sort(c)),z.forEach(O=>{const y=o[O];I(O,y)});let L=S.join(s);return _&&L.length>0&&(L=`?${L}`),L}function Ue(o){return encodeURIComponent(o).replace(/%[0-9A-F]{2}/g,e=>{const r=Number.parseInt(e.substring(1),16);return r>=128&&r<=255?String.fromCharCode(r):e})}const G=class G{constructor(e){D(this,"options");D(this,"event");D(this,"source");D(this,"ERROR_REPORTED","error-reported");this.options=this.validateOptions(e),this.event=new N,this.source=new Ie,this.init(),e.integrations&&this.initIntegrations()}onErrorReported(e){this.event.on(this.ERROR_REPORTED,e)}initIntegrations(){var e;(e=this.options.integrations)==null||e.forEach(r=>{try{r.install(this)}catch(n){console.error(`Failed to initialize integration ${r.name}:`,n)}})}static getInstance(){if(!G.instance)throw new Error("ErrorMonitor未初始化,请先调用initialize方法");return G.instance}validateOptions(e){if(!e.url)throw new Error("上报地址url不能为空");if(!e.appId)throw new Error("应用标识appId不能为空");return{env:"development",sampleRate:1,...e}}init(){this.onErrorReported(e=>{this.reportError(e)})}getClientInfo(){return{url:window.location.href,userAgent:navigator.userAgent,screenSize:`${window.screen.width}x${window.screen.height}`,timestamp:Date.now()}}report(e){if(Math.random()>(this.options.sampleRate||1))return;let r={...e,appId:this.options.appId,env:this.options.env},n=this.options.url;if(this.options.paramsSerializer){const t=this.options.paramsSerializer();n=`${n}?${xe(t)}`}if(this.options.beforeSend){const t=this.options.beforeSend(r);if(!t)return;r=t}navigator.sendBeacon?navigator.sendBeacon(n,JSON.stringify(r)):fetch(n,{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"},keepalive:!0}).catch(()=>{})}normalizeError(e){return this.isErrorInfo(e)?{...e,extraInfo:this.options.extraInfo,...this.getClientInfo()}:e instanceof Error?{type:e.name,message:e.message,stack:e.stack,extraInfo:this.options.extraInfo,...this.getClientInfo()}:{type:"Error",message:e,extraInfo:this.options.extraInfo,...this.getClientInfo()}}isErrorInfo(e){return typeof e=="object"&&e!==null&&"type"in e&&"message"in e}reportError(e){if(!G.instance)throw new Error("ErrorMonitor未初始化,请先调用initialize方法");const r=this.normalizeError(e);console.log("errorInfo",r),this.report(r)}static initialize(e){if(G.instance)throw new Error("ErrorMonitor已经初始化,请勿重复初始化");return G.instance=new G(e),G.instance}static destroy(){G.instance&&(G.instance=null)}static captureError(e){G.getInstance().reportError(e)}emitError(e){this.event.emit(this.ERROR_REPORTED,e)}async getErrorSource(e){return this.source.getErrorSource(e)}get env(){return this.options.env}};D(G,"instance",null);let pe=G;class Be{constructor(e){D(this,"name","VueError");D(this,"app");this.app=e}install(e){e.env==="production"&&(this.app.config.errorHandler=async r=>{const n=await e.getErrorSource(r);console.log(n),e.emitError({type:r.name,message:r.message,stack:r.stack,source:n})})}}class Ve{constructor(){D(this,"name","BrowserError");D(this,"monitor",null)}install(e){this.monitor=e,window.addEventListener("error",r=>{this.handleJsError(r)},!0),window.addEventListener("unhandledrejection",r=>{this.handlePromiseError(r)}),window.addEventListener("error",r=>{r.target&&r.target.tagName&&this.handleResourceError(r)},!0)}handleJsError(e){var n,t;const r={type:(n=e.error)==null?void 0:n.name,message:e.message,source:{fileName:e.filename,lineNumber:e.lineno,columnNumber:e.colno},stack:(t=e.error)==null?void 0:t.stack,...ge()};this.monitor&&this.monitor.emitError(r)}handlePromiseError(e){var n,t;const r={type:"NetworkError",message:((n=e.reason)==null?void 0:n.message)||"Promise Error",stack:(t=e.reason)==null?void 0:t.stack,...ge()};this.monitor&&this.monitor.emitError(r)}handleResourceError(e){const r=e.target,n={type:"ResourceError",message:`资源加载失败: ${r.tagName} ${r.src||r.href}`,...ge()};this.monitor&&this.monitor.emitError(n)}}A.BrowserError=Ve,A.ErrorMonitor=pe,A.SourceError=Ie,A.VueError=Be,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
@@ -3,6 +3,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { EventEmitter } from "./EventEmitter.mjs";
5
5
  import { SourceError } from "./SourceError.mjs";
6
+ import { stringify } from "./utils.mjs";
6
7
  const _ErrorMonitor = class _ErrorMonitor {
7
8
  /**
8
9
  * 取消订阅错误上报事件
@@ -87,7 +88,7 @@ const _ErrorMonitor = class _ErrorMonitor {
87
88
  throw new Error("应用标识appId不能为空");
88
89
  }
89
90
  return {
90
- env: "production",
91
+ env: "development",
91
92
  sampleRate: 1,
92
93
  ...options
93
94
  };
@@ -126,6 +127,11 @@ const _ErrorMonitor = class _ErrorMonitor {
126
127
  appId: this.options.appId,
127
128
  env: this.options.env
128
129
  };
130
+ let url = this.options.url;
131
+ if (this.options.paramsSerializer) {
132
+ const params = this.options.paramsSerializer();
133
+ url = `${url}?${stringify(params)}`;
134
+ }
129
135
  if (this.options.beforeSend) {
130
136
  const result = this.options.beforeSend(reportData);
131
137
  if (!result) {
@@ -134,9 +140,9 @@ const _ErrorMonitor = class _ErrorMonitor {
134
140
  reportData = result;
135
141
  }
136
142
  if (navigator.sendBeacon) {
137
- navigator.sendBeacon(this.options.url, JSON.stringify(reportData));
143
+ navigator.sendBeacon(url, JSON.stringify(reportData));
138
144
  } else {
139
- fetch(this.options.url, {
145
+ fetch(url, {
140
146
  method: "POST",
141
147
  body: JSON.stringify(reportData),
142
148
  headers: {
@@ -156,12 +162,13 @@ const _ErrorMonitor = class _ErrorMonitor {
156
162
  if (this.isErrorInfo(error)) {
157
163
  return {
158
164
  ...error,
159
- extraInfo: this.options.extraInfo
165
+ extraInfo: this.options.extraInfo,
166
+ ...this.getClientInfo()
160
167
  };
161
168
  }
162
169
  if (error instanceof Error) {
163
170
  return {
164
- type: "js",
171
+ type: error.name,
165
172
  message: error.message,
166
173
  stack: error.stack,
167
174
  extraInfo: this.options.extraInfo,
@@ -169,7 +176,7 @@ const _ErrorMonitor = class _ErrorMonitor {
169
176
  };
170
177
  }
171
178
  return {
172
- type: "js",
179
+ type: "Error",
173
180
  message: error,
174
181
  extraInfo: this.options.extraInfo,
175
182
  ...this.getClientInfo()
@@ -221,6 +228,9 @@ const _ErrorMonitor = class _ErrorMonitor {
221
228
  async getErrorSource(error) {
222
229
  return this.source.getErrorSource(error);
223
230
  }
231
+ get env() {
232
+ return this.options.env;
233
+ }
224
234
  };
225
235
  __publicField(_ErrorMonitor, "instance", null);
226
236
  let ErrorMonitor = _ErrorMonitor;
@@ -26,14 +26,16 @@ class BrowserError {
26
26
  * @param event - 错误事件对象
27
27
  */
28
28
  handleJsError(event) {
29
- var _a;
29
+ var _a, _b;
30
30
  const errorInfo = {
31
- type: "js",
31
+ type: (_a = event.error) == null ? void 0 : _a.name,
32
32
  message: event.message,
33
- filename: event.filename,
34
- lineno: event.lineno,
35
- colno: event.colno,
36
- stack: (_a = event.error) == null ? void 0 : _a.stack,
33
+ source: {
34
+ fileName: event.filename,
35
+ lineNumber: event.lineno,
36
+ columnNumber: event.colno
37
+ },
38
+ stack: (_b = event.error) == null ? void 0 : _b.stack,
37
39
  ...getClientInfo()
38
40
  };
39
41
  if (this.monitor)
@@ -46,7 +48,7 @@ class BrowserError {
46
48
  handlePromiseError(event) {
47
49
  var _a, _b;
48
50
  const errorInfo = {
49
- type: "promise",
51
+ type: "NetworkError",
50
52
  message: ((_a = event.reason) == null ? void 0 : _a.message) || "Promise Error",
51
53
  stack: (_b = event.reason) == null ? void 0 : _b.stack,
52
54
  ...getClientInfo()
@@ -61,7 +63,7 @@ class BrowserError {
61
63
  handleResourceError(event) {
62
64
  const target = event.target;
63
65
  const errorInfo = {
64
- type: "resource",
66
+ type: "ResourceError",
65
67
  message: `资源加载失败: ${target.tagName} ${target.src || target.href}`,
66
68
  ...getClientInfo()
67
69
  };
@@ -8,11 +8,18 @@ class VueError {
8
8
  this.app = app;
9
9
  }
10
10
  install(monitor) {
11
- this.app.config.errorHandler = async (error) => {
12
- const source = await monitor.getErrorSource(error);
13
- console.log(source);
14
- monitor.emitError(error);
15
- };
11
+ if (monitor.env === "production") {
12
+ this.app.config.errorHandler = async (error) => {
13
+ const source = await monitor.getErrorSource(error);
14
+ console.log(source);
15
+ monitor.emitError({
16
+ type: error.name,
17
+ message: error.message,
18
+ stack: error.stack,
19
+ source
20
+ });
21
+ };
22
+ }
16
23
  }
17
24
  }
18
25
  export {
@@ -6,6 +6,112 @@ function getClientInfo() {
6
6
  timestamp: Date.now()
7
7
  };
8
8
  }
9
+ function stringify(obj, options = {}) {
10
+ const {
11
+ encode = true,
12
+ encodeValuesOnly = false,
13
+ arrayFormat = "indices",
14
+ skipNulls = false,
15
+ delimiter = "&",
16
+ strictNullHandling = false,
17
+ sort,
18
+ filter,
19
+ allowDots = false,
20
+ serializeDate = (date) => date.toISOString(),
21
+ format = "RFC3986",
22
+ addQueryPrefix = false,
23
+ charset = "utf-8"
24
+ } = options;
25
+ const parts = [];
26
+ const encoder = charset === "iso-8859-1" ? encodeURIComponentISO88591 : encodeURIComponent;
27
+ const encodeValue = (value) => encode ? encoder(value) : value;
28
+ const processKeyValue = (key, value, prefix = null) => {
29
+ const fullKey = prefix ? `${prefix}[${key}]` : key;
30
+ if (filter) {
31
+ const filtered = filter(fullKey, value);
32
+ if (filtered === void 0)
33
+ return;
34
+ value = filtered;
35
+ }
36
+ if (value === null) {
37
+ if (strictNullHandling) {
38
+ parts.push(encodeValue(fullKey) + (encodeValuesOnly ? "" : "="));
39
+ } else if (!skipNulls) {
40
+ parts.push(`${encodeValue(fullKey)}=`);
41
+ }
42
+ return;
43
+ }
44
+ if (typeof value === "boolean" || typeof value === "number") {
45
+ value = String(value);
46
+ }
47
+ if (value instanceof Date) {
48
+ value = serializeDate(value);
49
+ }
50
+ if (Array.isArray(value)) {
51
+ if (value.length === 0 && skipNulls)
52
+ return;
53
+ switch (arrayFormat) {
54
+ case "indices":
55
+ value.forEach((item, i) => {
56
+ processKeyValue(String(i), item, fullKey);
57
+ });
58
+ break;
59
+ case "brackets":
60
+ value.forEach((item) => {
61
+ processKeyValue("", item, fullKey);
62
+ });
63
+ break;
64
+ case "repeat":
65
+ value.forEach((item) => {
66
+ processKeyValue(fullKey, item);
67
+ });
68
+ break;
69
+ case "comma":
70
+ const commaSeparated = value.join(",");
71
+ if (commaSeparated.length > 0) {
72
+ parts.push(
73
+ `${encodeValue(fullKey)}=${encodeValue(commaSeparated)}`
74
+ );
75
+ }
76
+ break;
77
+ }
78
+ } else if (typeof value === "object") {
79
+ Object.keys(value).forEach((subKey) => {
80
+ const separator = allowDots ? "." : "[";
81
+ const suffix = allowDots ? "" : "]";
82
+ processKeyValue(
83
+ subKey,
84
+ value[subKey],
85
+ `${fullKey}${separator}${subKey}${suffix}`
86
+ );
87
+ });
88
+ } else {
89
+ const encodedKey = encode && !encodeValuesOnly ? encodeValue(fullKey) : fullKey;
90
+ const encodedValue = encodeValue(String(value));
91
+ parts.push(`${encodedKey}=${encodedValue}`);
92
+ }
93
+ };
94
+ let keys = Object.keys(obj);
95
+ if (sort) {
96
+ keys = keys.sort(sort);
97
+ }
98
+ keys.forEach((key) => {
99
+ const value = obj[key];
100
+ processKeyValue(key, value);
101
+ });
102
+ let result = parts.join(delimiter);
103
+ if (addQueryPrefix && result.length > 0) {
104
+ result = `?${result}`;
105
+ }
106
+ return result;
107
+ }
108
+ function encodeURIComponentISO88591(str) {
109
+ return encodeURIComponent(str).replace(/%[0-9A-F]{2}/g, (match) => {
110
+ const code = Number.parseInt(match.substring(1), 16);
111
+ return code >= 128 && code <= 255 ? String.fromCharCode(code) : match;
112
+ });
113
+ }
9
114
  export {
10
- getClientInfo
115
+ getClientInfo,
116
+ stringify
11
117
  };
@@ -5,6 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
6
  const EventEmitter = require("./EventEmitter.js");
7
7
  const SourceError = require("./SourceError.js");
8
+ const utils = require("./utils.js");
8
9
  const _ErrorMonitor = class _ErrorMonitor {
9
10
  /**
10
11
  * 取消订阅错误上报事件
@@ -89,7 +90,7 @@ const _ErrorMonitor = class _ErrorMonitor {
89
90
  throw new Error("应用标识appId不能为空");
90
91
  }
91
92
  return {
92
- env: "production",
93
+ env: "development",
93
94
  sampleRate: 1,
94
95
  ...options
95
96
  };
@@ -128,6 +129,11 @@ const _ErrorMonitor = class _ErrorMonitor {
128
129
  appId: this.options.appId,
129
130
  env: this.options.env
130
131
  };
132
+ let url = this.options.url;
133
+ if (this.options.paramsSerializer) {
134
+ const params = this.options.paramsSerializer();
135
+ url = `${url}?${utils.stringify(params)}`;
136
+ }
131
137
  if (this.options.beforeSend) {
132
138
  const result = this.options.beforeSend(reportData);
133
139
  if (!result) {
@@ -136,9 +142,9 @@ const _ErrorMonitor = class _ErrorMonitor {
136
142
  reportData = result;
137
143
  }
138
144
  if (navigator.sendBeacon) {
139
- navigator.sendBeacon(this.options.url, JSON.stringify(reportData));
145
+ navigator.sendBeacon(url, JSON.stringify(reportData));
140
146
  } else {
141
- fetch(this.options.url, {
147
+ fetch(url, {
142
148
  method: "POST",
143
149
  body: JSON.stringify(reportData),
144
150
  headers: {
@@ -158,12 +164,13 @@ const _ErrorMonitor = class _ErrorMonitor {
158
164
  if (this.isErrorInfo(error)) {
159
165
  return {
160
166
  ...error,
161
- extraInfo: this.options.extraInfo
167
+ extraInfo: this.options.extraInfo,
168
+ ...this.getClientInfo()
162
169
  };
163
170
  }
164
171
  if (error instanceof Error) {
165
172
  return {
166
- type: "js",
173
+ type: error.name,
167
174
  message: error.message,
168
175
  stack: error.stack,
169
176
  extraInfo: this.options.extraInfo,
@@ -171,7 +178,7 @@ const _ErrorMonitor = class _ErrorMonitor {
171
178
  };
172
179
  }
173
180
  return {
174
- type: "js",
181
+ type: "Error",
175
182
  message: error,
176
183
  extraInfo: this.options.extraInfo,
177
184
  ...this.getClientInfo()
@@ -223,6 +230,9 @@ const _ErrorMonitor = class _ErrorMonitor {
223
230
  async getErrorSource(error) {
224
231
  return this.source.getErrorSource(error);
225
232
  }
233
+ get env() {
234
+ return this.options.env;
235
+ }
226
236
  };
227
237
  __publicField(_ErrorMonitor, "instance", null);
228
238
  let ErrorMonitor = _ErrorMonitor;
@@ -28,14 +28,16 @@ class BrowserError {
28
28
  * @param event - 错误事件对象
29
29
  */
30
30
  handleJsError(event) {
31
- var _a;
31
+ var _a, _b;
32
32
  const errorInfo = {
33
- type: "js",
33
+ type: (_a = event.error) == null ? void 0 : _a.name,
34
34
  message: event.message,
35
- filename: event.filename,
36
- lineno: event.lineno,
37
- colno: event.colno,
38
- stack: (_a = event.error) == null ? void 0 : _a.stack,
35
+ source: {
36
+ fileName: event.filename,
37
+ lineNumber: event.lineno,
38
+ columnNumber: event.colno
39
+ },
40
+ stack: (_b = event.error) == null ? void 0 : _b.stack,
39
41
  ...utils.getClientInfo()
40
42
  };
41
43
  if (this.monitor)
@@ -48,7 +50,7 @@ class BrowserError {
48
50
  handlePromiseError(event) {
49
51
  var _a, _b;
50
52
  const errorInfo = {
51
- type: "promise",
53
+ type: "NetworkError",
52
54
  message: ((_a = event.reason) == null ? void 0 : _a.message) || "Promise Error",
53
55
  stack: (_b = event.reason) == null ? void 0 : _b.stack,
54
56
  ...utils.getClientInfo()
@@ -63,7 +65,7 @@ class BrowserError {
63
65
  handleResourceError(event) {
64
66
  const target = event.target;
65
67
  const errorInfo = {
66
- type: "resource",
68
+ type: "ResourceError",
67
69
  message: `资源加载失败: ${target.tagName} ${target.src || target.href}`,
68
70
  ...utils.getClientInfo()
69
71
  };
@@ -10,11 +10,18 @@ class VueError {
10
10
  this.app = app;
11
11
  }
12
12
  install(monitor) {
13
- this.app.config.errorHandler = async (error) => {
14
- const source = await monitor.getErrorSource(error);
15
- console.log(source);
16
- monitor.emitError(error);
17
- };
13
+ if (monitor.env === "production") {
14
+ this.app.config.errorHandler = async (error) => {
15
+ const source = await monitor.getErrorSource(error);
16
+ console.log(source);
17
+ monitor.emitError({
18
+ type: error.name,
19
+ message: error.message,
20
+ stack: error.stack,
21
+ source
22
+ });
23
+ };
24
+ }
18
25
  }
19
26
  }
20
27
  exports.VueError = VueError;
@@ -8,4 +8,110 @@ function getClientInfo() {
8
8
  timestamp: Date.now()
9
9
  };
10
10
  }
11
+ function stringify(obj, options = {}) {
12
+ const {
13
+ encode = true,
14
+ encodeValuesOnly = false,
15
+ arrayFormat = "indices",
16
+ skipNulls = false,
17
+ delimiter = "&",
18
+ strictNullHandling = false,
19
+ sort,
20
+ filter,
21
+ allowDots = false,
22
+ serializeDate = (date) => date.toISOString(),
23
+ format = "RFC3986",
24
+ addQueryPrefix = false,
25
+ charset = "utf-8"
26
+ } = options;
27
+ const parts = [];
28
+ const encoder = charset === "iso-8859-1" ? encodeURIComponentISO88591 : encodeURIComponent;
29
+ const encodeValue = (value) => encode ? encoder(value) : value;
30
+ const processKeyValue = (key, value, prefix = null) => {
31
+ const fullKey = prefix ? `${prefix}[${key}]` : key;
32
+ if (filter) {
33
+ const filtered = filter(fullKey, value);
34
+ if (filtered === void 0)
35
+ return;
36
+ value = filtered;
37
+ }
38
+ if (value === null) {
39
+ if (strictNullHandling) {
40
+ parts.push(encodeValue(fullKey) + (encodeValuesOnly ? "" : "="));
41
+ } else if (!skipNulls) {
42
+ parts.push(`${encodeValue(fullKey)}=`);
43
+ }
44
+ return;
45
+ }
46
+ if (typeof value === "boolean" || typeof value === "number") {
47
+ value = String(value);
48
+ }
49
+ if (value instanceof Date) {
50
+ value = serializeDate(value);
51
+ }
52
+ if (Array.isArray(value)) {
53
+ if (value.length === 0 && skipNulls)
54
+ return;
55
+ switch (arrayFormat) {
56
+ case "indices":
57
+ value.forEach((item, i) => {
58
+ processKeyValue(String(i), item, fullKey);
59
+ });
60
+ break;
61
+ case "brackets":
62
+ value.forEach((item) => {
63
+ processKeyValue("", item, fullKey);
64
+ });
65
+ break;
66
+ case "repeat":
67
+ value.forEach((item) => {
68
+ processKeyValue(fullKey, item);
69
+ });
70
+ break;
71
+ case "comma":
72
+ const commaSeparated = value.join(",");
73
+ if (commaSeparated.length > 0) {
74
+ parts.push(
75
+ `${encodeValue(fullKey)}=${encodeValue(commaSeparated)}`
76
+ );
77
+ }
78
+ break;
79
+ }
80
+ } else if (typeof value === "object") {
81
+ Object.keys(value).forEach((subKey) => {
82
+ const separator = allowDots ? "." : "[";
83
+ const suffix = allowDots ? "" : "]";
84
+ processKeyValue(
85
+ subKey,
86
+ value[subKey],
87
+ `${fullKey}${separator}${subKey}${suffix}`
88
+ );
89
+ });
90
+ } else {
91
+ const encodedKey = encode && !encodeValuesOnly ? encodeValue(fullKey) : fullKey;
92
+ const encodedValue = encodeValue(String(value));
93
+ parts.push(`${encodedKey}=${encodedValue}`);
94
+ }
95
+ };
96
+ let keys = Object.keys(obj);
97
+ if (sort) {
98
+ keys = keys.sort(sort);
99
+ }
100
+ keys.forEach((key) => {
101
+ const value = obj[key];
102
+ processKeyValue(key, value);
103
+ });
104
+ let result = parts.join(delimiter);
105
+ if (addQueryPrefix && result.length > 0) {
106
+ result = `?${result}`;
107
+ }
108
+ return result;
109
+ }
110
+ function encodeURIComponentISO88591(str) {
111
+ return encodeURIComponent(str).replace(/%[0-9A-F]{2}/g, (match) => {
112
+ const code = Number.parseInt(match.substring(1), 16);
113
+ return code >= 128 && code <= 255 ? String.fromCharCode(code) : match;
114
+ });
115
+ }
11
116
  exports.getClientInfo = getClientInfo;
117
+ exports.stringify = stringify;
@@ -96,4 +96,5 @@ export declare class ErrorMonitor {
96
96
  static captureError(error: ErrorInfo | Error | string): void;
97
97
  emitError(error: ErrorInfo | Error | string): void;
98
98
  getErrorSource(error: Error | null | undefined): Promise<ErrorSourceInfo | null>;
99
+ get env(): "production" | "development";
99
100
  }
@@ -1,4 +1,52 @@
1
1
  import { ErrorMonitor } from './core';
2
+ declare const FrontendErrorTypes: {
3
+ readonly Error: "基础错误类型";
4
+ readonly EvalError: "Eval函数执行错误";
5
+ readonly RangeError: "数值超出有效范围错误";
6
+ readonly ReferenceError: "无效引用错误";
7
+ readonly SyntaxError: "语法解析错误";
8
+ readonly TypeError: "变量或参数类型无效错误";
9
+ readonly URIError: "URI处理函数使用错误";
10
+ readonly AggregateError: "多个错误组合错误";
11
+ readonly NetworkError: "网络请求失败";
12
+ readonly TimeoutError: "请求超时错误";
13
+ readonly AbortError: "请求被中止错误";
14
+ readonly CORSError: "跨域资源共享错误";
15
+ readonly HTTPError: "HTTP协议错误";
16
+ readonly ReactError: "React框架相关错误";
17
+ readonly VueError: "Vue框架相关错误";
18
+ readonly AngularError: "Angular框架相关错误";
19
+ readonly StateError: "状态管理错误";
20
+ readonly PropsError: "组件属性错误";
21
+ readonly LifecycleError: "生命周期错误";
22
+ readonly DOMException: "DOM操作异常";
23
+ readonly DOMError: "DOM操作错误(已废弃)";
24
+ readonly ResourceError: "资源加载失败";
25
+ readonly ImageLoadError: "图片加载失败";
26
+ readonly ScriptLoadError: "脚本加载失败";
27
+ readonly StyleLoadError: "样式加载失败";
28
+ readonly FontLoadError: "字体加载失败";
29
+ readonly ValidationError: "数据验证失败";
30
+ readonly FormError: "表单处理错误";
31
+ readonly InputError: "输入数据错误";
32
+ readonly RoutingError: "路由处理错误";
33
+ readonly NavigationError: "导航错误";
34
+ readonly RouteNotFoundError: "路由未找到错误";
35
+ readonly AuthError: "认证错误";
36
+ readonly PermissionError: "权限不足错误";
37
+ readonly UnauthorizedError: "未授权访问错误";
38
+ readonly BusinessError: "业务逻辑错误";
39
+ readonly APIError: "API接口错误";
40
+ readonly ServiceError: "服务调用错误";
41
+ readonly StorageError: "本地存储错误";
42
+ readonly IndexedDBError: "IndexedDB操作错误";
43
+ readonly WebSocketError: "WebSocket连接错误";
44
+ readonly WorkerError: "Web Worker错误";
45
+ readonly PaymentError: "支付处理错误";
46
+ readonly MediaError: "媒体资源错误";
47
+ readonly UnknownError: "未知错误";
48
+ };
49
+ export type ErrorType = keyof typeof FrontendErrorTypes;
2
50
  export interface Integration {
3
51
  name: string;
4
52
  install: (monitor: ErrorMonitor) => void;
@@ -15,11 +63,9 @@ export interface BreadcrumbItem {
15
63
  timestamp: number;
16
64
  }
17
65
  export interface ErrorInfo extends Partial<ClientInfo> {
18
- type: 'js' | 'promise' | 'resource';
66
+ type: ErrorType;
19
67
  message: string;
20
- filename?: string;
21
- lineno?: number;
22
- colno?: number;
68
+ source?: ErrorSourceInfo;
23
69
  stack?: string;
24
70
  extraInfo?: Record<string, any>;
25
71
  }
@@ -31,6 +77,7 @@ export interface MonitorOptions {
31
77
  extraInfo?: Record<string, any>;
32
78
  beforeSend?: (data: any) => any | false | null;
33
79
  integrations?: Integration[];
80
+ paramsSerializer?: () => Record<string, any>;
34
81
  }
35
82
  export interface ErrorSourceInfo {
36
83
  fileName: string;
@@ -38,3 +85,4 @@ export interface ErrorSourceInfo {
38
85
  columnNumber: number;
39
86
  sourceContent?: string;
40
87
  }
88
+ export {};
@@ -4,3 +4,20 @@ export declare function getClientInfo(): {
4
4
  screenSize: string;
5
5
  timestamp: number;
6
6
  };
7
+ interface StringifyOptions {
8
+ encode?: boolean;
9
+ encodeValuesOnly?: boolean;
10
+ arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma';
11
+ skipNulls?: boolean;
12
+ delimiter?: string;
13
+ strictNullHandling?: boolean;
14
+ sort?: (a: string, b: string) => number;
15
+ filter?: (prefix: string, value: any) => any;
16
+ allowDots?: boolean;
17
+ serializeDate?: (date: Date) => string;
18
+ format?: 'RFC1738' | 'RFC3986';
19
+ addQueryPrefix?: boolean;
20
+ charset?: 'utf-8' | 'iso-8859-1';
21
+ }
22
+ export declare function stringify(obj: Record<string, any>, options?: StringifyOptions): string;
23
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@king-one/monitor",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "ISC",