@miradorlabs/parallax-web 1.0.3 → 1.0.6
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/PARALLAX_SERVICE_USAGE.md +306 -0
- package/README.md +300 -134
- package/dist/index.d.ts +212 -1
- package/dist/index.esm.js +721 -86
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +722 -85
- package/dist/index.umd.js.map +1 -1
- package/index.ts +3 -0
- package/package.json +2 -2
- package/src/parallax/ParallaxService.ts +414 -0
- package/src/parallax/index.ts +241 -0
package/dist/index.umd.js
CHANGED
|
@@ -6,67 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
8
8
|
|
|
9
|
-
var grpcWeb = {};
|
|
10
|
-
|
|
11
|
-
/*
|
|
12
|
-
|
|
13
|
-
Copyright The Closure Library Authors.
|
|
14
|
-
SPDX-License-Identifier: Apache-2.0
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
var hasRequiredGrpcWeb;
|
|
18
|
-
|
|
19
|
-
function requireGrpcWeb () {
|
|
20
|
-
if (hasRequiredGrpcWeb) return grpcWeb;
|
|
21
|
-
hasRequiredGrpcWeb = 1;
|
|
22
|
-
var n,p=p||{},q=grpcWeb||self;function r(a,b){a=a.split(".");b=b||q;for(var c=0;c<a.length;c++)if(b=b[a[c]],b==null)return null;return b}function t(a){var b=typeof a;return b=="object"&&a!=null||b=="function"}function ca(a,b,c){return a.call.apply(a.bind,arguments)}
|
|
23
|
-
function da(a,b,c){if(!a)throw Error();if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function w(a,b,c){w=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?ca:da;return w.apply(null,arguments)}
|
|
24
|
-
function x(a,b){function c(){}c.prototype=b.prototype;a.N=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.aa=function(d,e,g){for(var f=Array(arguments.length-2),h=2;h<arguments.length;h++)f[h-2]=arguments[h];return b.prototype[e].apply(d,f)};}class ea{constructor(a){this.g=a||{};}get(a){return this.g[a]}}class fa{constructor(a,b,c){var d=new ea;this.j=a;this.h=b;this.g=c;this.i=d;}getRequestMessage(){return this.j}getMethodDescriptor(){return this.h}getMetadata(){return this.g}getCallOptions(){return this.i}}class ha{constructor(a,b,c={},d=null){this.i=a;this.g=c;this.h=b;this.j=d;}getResponseMessage(){return this.i}getMetadata(){return this.g}getMethodDescriptor(){return this.h}getStatus(){return this.j}}function ia(a,b,c={}){return new fa(b,a,c)}function ja(a,b,c={},d=null){return new ha(b,a,c,d)}const ka=class{constructor(a,b,c,d,e,g){this.name=a;this.g=e;this.h=g;}getName(){return this.name}};ka.prototype.getName=ka.prototype.getName;class la{constructor(a){this.g=a;}on(a,b){return a=="data"||a=="error"?this:this.g.on(a,b)}removeListener(a,b){return this.g.removeListener(a,b)}cancel(){this.g.cancel();}}function ma(a){switch(a){case 0:return "No Error";case 1:return "Access denied to content document";case 2:return "File not found";case 3:return "Firefox silently errored";case 4:return "Application custom error";case 5:return "An exception occurred";case 6:return "Http response at 400 or 500 level";case 7:return "Request was aborted";case 8:return "Request timed out";case 9:return "The resource is not available offline";default:return "Unrecognized error code"}}function y(a,b){if(Error.captureStackTrace)Error.captureStackTrace(this,y);else {const c=Error().stack;c&&(this.stack=c);}a&&(this.message=String(a));b!==void 0&&(this.cause=b);}x(y,Error);y.prototype.name="CustomError";function na(a,b){a=a.split("%s");let c="";const d=a.length-1;for(let e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");y.call(this,c+a[d]);}x(na,y);na.prototype.name="AssertionError";function oa(a,b){throw new na("Failure"+(": "+a),Array.prototype.slice.call(arguments,1));}function pa(a,b){function c(l){l==qa?f.o=l:l==B?f.o=l:ra(f,h,k,"invalid frame byte");f.h=sa;f.g=0;f.l=0;}function d(l){f.l++;f.g=(f.g<<8)+l;f.l==4&&(f.h=ta,f.m=0,typeof Uint8Array!=="undefined"?f.i=new Uint8Array(f.g):f.i=Array(f.g),f.g==0&&g());}function e(l){f.i[f.m++]=l;f.m==f.g&&g();}function g(){var l={};l[f.o]=f.i;f.j.push(l);f.h=ua;}var f=a,h,k=0;for(b instanceof Uint8Array||b instanceof Array?h=b:h=new Uint8Array(b);k<h.length;){switch(f.h){case va:ra(f,h,k,"stream already broken");break;case ua:c(h[k]);
|
|
25
|
-
break;case sa:d(h[k]);break;case ta:e(h[k]);break;default:throw Error("unexpected parser state: "+f.h);}f.v++;k++;}a=f.j;f.j=[];return a.length>0?a:null}class wa{constructor(){this.u=null;this.j=[];this.v=0;this.h=ua;this.l=this.g=this.o=0;this.i=null;this.m=0;}}var ua=0,sa=1,ta=2,va=3,qa=0,B=128;function ra(a,b,c,d){a.h=va;a.u="The stream is broken @"+a.v+"/"+c+". Error: "+d+". With input:\n"+b;throw Error(a.u);}function xa(a){switch(a){case 200:return 0;case 400:return 3;case 401:return 16;case 403:return 7;case 404:return 5;case 409:return 10;case 412:return 9;case 429:return 8;case 499:return 1;case 500:return 2;case 501:return 12;case 503:return 14;case 504:return 4;default:return 2}}
|
|
26
|
-
function ya(a){switch(a){case 0:return "OK";case 1:return "CANCELLED";case 2:return "UNKNOWN";case 3:return "INVALID_ARGUMENT";case 4:return "DEADLINE_EXCEEDED";case 5:return "NOT_FOUND";case 6:return "ALREADY_EXISTS";case 7:return "PERMISSION_DENIED";case 16:return "UNAUTHENTICATED";case 8:return "RESOURCE_EXHAUSTED";case 9:return "FAILED_PRECONDITION";case 10:return "ABORTED";case 11:return "OUT_OF_RANGE";case 12:return "UNIMPLEMENTED";case 13:return "INTERNAL";case 14:return "UNAVAILABLE";case 15:return "DATA_LOSS";
|
|
27
|
-
default:return ""}}class C extends Error{constructor(a,b,c={}){super(b);this.code=a;this.metadata=c;}toString(){let a=`RpcError(${ya(this.code)||String(this.code)})`;this.message&&(a+=": "+this.message);return a}}C.prototype.name="RpcError";const za=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(typeof a==="string")return typeof b!=="string"||b.length!=1?-1:a.indexOf(b,0);for(let c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return -1};function Aa(){var a=q.navigator;return a&&(a=a.userAgent)?a:""}function D(a){return Aa().indexOf(a)!=-1}function Ba(a){Ba[" "](a);return a}Ba[" "]=function(){};var Ca=D("Trident")||D("MSIE"),Da=D("Gecko")&&!(Aa().toLowerCase().indexOf("webkit")!=-1&&!D("Edge"))&&!(D("Trident")||D("MSIE"))&&!D("Edge");var Fa=class{constructor(a){if(Ea!==Ea)throw Error("SafeUrl is not meant to be built directly");this.g=a;}toString(){return this.g.toString()}},Ea={};new Fa("about:invalid#zClosurez");new Fa("about:blank");const Ga={};class Ha{constructor(){if(Ga!==Ga)throw Error("SafeStyle is not meant to be built directly");}toString(){return "".toString()}}new Ha;function Ia(a,b){for(const c in a)b.call(void 0,a[c],c,a);}function Ja(a,b){const c={};for(const d in a)c[d]=b.call(void 0,a[d],d,a);return c}const Ka="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function La(a,b){let c,d;for(let e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(let g=0;g<Ka.length;g++)c=Ka[g],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c]);}}const Ma={};class Na{constructor(){if(Ma!==Ma)throw Error("SafeStyleSheet is not meant to be built directly");}toString(){return "".toString()}}new Na;const Oa={};class Pa{constructor(){var a=q.trustedTypes&&q.trustedTypes.emptyHTML||"";if(Oa!==Oa)throw Error("SafeHtml is not meant to be built directly");this.g=a;}toString(){return this.g.toString()}}new Pa;function Qa(a){var b=1;a=a.split(":");const c=[];for(;b>0&&a.length;)c.push(a.shift()),b--;a.length&&c.push(a.join(":"));return c}function E(){this.v=this.v;this.o=this.o;}var Ra=0;E.prototype.v=false;E.prototype.dispose=function(){if(!this.v&&(this.v=true,this.C(),0!=Ra));};E.prototype.C=function(){if(this.o)for(;this.o.length;)this.o.shift()();};var Ta=Object.freeze||function(a){return a};function F(a,b){this.type=a;this.g=this.target=b;this.defaultPrevented=false;}F.prototype.h=function(){this.defaultPrevented=true;};var Ua=function(){if(!q.addEventListener||!Object.defineProperty)return false;var a=false,b=Object.defineProperty({},"passive",{get:function(){a=true;}});try{const c=()=>{};q.addEventListener("test",c,b);q.removeEventListener("test",c,b);}catch(c){}return a}();function G(a,b){F.call(this,a?a.type:"");this.relatedTarget=this.g=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=false;this.state=null;this.pointerId=0;this.pointerType="";this.i=null;a&&this.init(a,b);}x(G,F);var Va=Ta({2:"touch",3:"pen",4:"mouse"});
|
|
28
|
-
G.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.g=b;if(b=a.relatedTarget){if(Da){a:{try{Ba(b.nodeName);var e=!0;break a}catch(g){}e=false;}e||(b=null);}}else c=="mouseover"?b=a.fromElement:c=="mouseout"&&(b=a.toElement);this.relatedTarget=b;d?(this.clientX=d.clientX!==void 0?d.clientX:d.pageX,this.clientY=d.clientY!==void 0?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||
|
|
29
|
-
0):(this.clientX=a.clientX!==void 0?a.clientX:a.pageX,this.clientY=a.clientY!==void 0?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=typeof a.pointerType==="string"?a.pointerType:Va[a.pointerType]||"";this.state=a.state;this.i=a;a.defaultPrevented&&G.N.h.call(this);};
|
|
30
|
-
G.prototype.h=function(){G.N.h.call(this);var a=this.i;a.preventDefault?a.preventDefault():a.returnValue=false;};var H="closure_listenable_"+(Math.random()*1E6|0);var Wa=0;function Xa(a,b,c,d,e){this.listener=a;this.proxy=null;this.src=b;this.type=c;this.capture=!!d;this.M=e;this.key=++Wa;this.D=this.L=false;}function I(a){a.D=true;a.listener=null;a.proxy=null;a.src=null;a.M=null;}function J(a){this.src=a;this.g={};this.h=0;}J.prototype.add=function(a,b,c,d,e){var g=a.toString();a=this.g[g];a||(a=this.g[g]=[],this.h++);var f=Ya(a,b,d,e);f>-1?(b=a[f],c||(b.L=false)):(b=new Xa(b,this.src,g,!!d,e),b.L=c,a.push(b));return b};function Za(a,b){var c=b.type;if(c in a.g){var d=a.g[c],e=za(d,b),g;(g=e>=0)&&Array.prototype.splice.call(d,e,1);g&&(I(b),a.g[c].length==0&&(delete a.g[c],a.h--));}}
|
|
31
|
-
function Ya(a,b,c,d){for(var e=0;e<a.length;++e){var g=a[e];if(!g.D&&g.listener==b&&g.capture==!!c&&g.M==d)return e}return -1}var $a="closure_lm_"+(Math.random()*1E6|0),ab={};function cb(a,b,c,d,e){if(Array.isArray(b))for(var g=0;g<b.length;g++)cb(a,b[g],c,d,e);else c=eb(c),a&&a[H]?a.j.add(String(b),c,false,t(d)?!!d.capture:false,e):fb(a,b,c,false,d,e);}
|
|
32
|
-
function fb(a,b,c,d,e,g){if(!b)throw Error("Invalid event type");var f=t(e)?!!e.capture:!!e,h=gb(a);h||(a[$a]=h=new J(a));c=h.add(b,c,d,f,g);if(!c.proxy){d=hb();c.proxy=d;d.src=a;d.listener=c;if(a.addEventListener)Ua||(e=f),e===void 0&&(e=false),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(mb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");}}
|
|
33
|
-
function hb(){function a(c){return b.call(a.src,a.listener,c)}const b=nb;return a} function ob(a,b,c,d,e){if(Array.isArray(b))for(var g=0;g<b.length;g++)ob(a,b[g],c,d,e);else (d=t(d)?!!d.capture:!!d,c=eb(c),a&&a[H])?(a=a.j,b=String(b).toString(),b in a.g&&(g=a.g[b],c=Ya(g,c,d,e),c>-1&&(I(g[c]),Array.prototype.splice.call(g,c,1),g.length==0&&(delete a.g[b],a.h--)))):a&&(a=gb(a))&&(b=a.g[b.toString()],a=-1,b&&(a=Ya(b,c,d,e)),(c=a>-1?b[a]:null)&&pb(c));}
|
|
34
|
-
function pb(a){if(typeof a!=="number"&&a&&!a.D){var b=a.src;if(b&&b[H])Za(b.j,a);else {var c=a.type,d=a.proxy;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(mb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);(c=gb(b))?(Za(c,a),c.h==0&&(c.src=null,b[$a]=null)):I(a);}}}function mb(a){return a in ab?ab[a]:ab[a]="on"+a}function nb(a,b){if(a.D)a=true;else {b=new G(b,this);var c=a.listener,d=a.M||a.src;a.L&&pb(a);a=c.call(d,b);}return a}
|
|
35
|
-
function gb(a){a=a[$a];return a instanceof J?a:null}var qb="__closure_events_fn_"+(Math.random()*1E9>>>0);function eb(a){if(typeof a==="function")return a;a[qb]||(a[qb]=function(b){return a.handleEvent(b)});return a[qb]}function K(){E.call(this);this.j=new J(this);this.W=this;this.S=null;}x(K,E);K.prototype[H]=true;K.prototype.removeEventListener=function(a,b,c,d){ob(this,a,b,c,d);};
|
|
36
|
-
function L(a,b){var c,d=a.S;if(d)for(c=[];d;d=d.S)c.push(d);a=a.W;d=b.type||b;if(typeof b==="string")b=new F(b,a);else if(b instanceof F)b.target=b.target||a;else {var e=b;b=new F(d,a);La(b,e);}e=true;if(c)for(var g=c.length-1;g>=0;g--){var f=b.g=c[g];e=M(f,d,true,b)&&e;}f=b.g=a;e=M(f,d,true,b)&&e;e=M(f,d,false,b)&&e;if(c)for(g=0;g<c.length;g++)f=b.g=c[g],e=M(f,d,false,b)&&e;}
|
|
37
|
-
K.prototype.C=function(){K.N.C.call(this);if(this.j){var a=this.j,c;for(c in a.g){for(var d=a.g[c],e=0;e<d.length;e++)I(d[e]);delete a.g[c];a.h--;}}this.S=null;};function M(a,b,c,d){b=a.j.g[String(b)];if(!b)return true;b=b.concat();for(var e=true,g=0;g<b.length;++g){var f=b[g];if(f&&!f.D&&f.capture==c){var h=f.listener,k=f.M||f.src;f.L&&Za(a.j,f);e=h.call(k,d)!==false&&e;}}return e&&!d.defaultPrevented}var rb=q;function sb(a,b,c){if(typeof a==="function")c&&(a=w(a,c));else if(a&&typeof a.handleEvent=="function")a=w(a.handleEvent,a);else throw Error("Invalid listener argument");return Number(b)>2147483647?-1:rb.setTimeout(a,b||0)}var N=class{constructor(a,b){this.name=a;this.value=b;}toString(){return this.name}},O=new N("OFF",Infinity),tb=new N("SEVERE",1E3),ub=new N("CONFIG",700),vb=new N("FINE",500),yb=class{constructor(a,b,c){this.reset(a||O,b,c,void 0,void 0);}reset(){}};function zb(a){if(a.g)return a.g;if(a.h)return zb(a.h);oa("Root logger has no level set.");return O}function Ab(a,b){for(;a;)a.j.forEach(c=>{c(b);}),a=a.h;}
|
|
38
|
-
var Bb=class{constructor(a,b=null){this.g=null;this.j=[];this.h=b||null;this.i=[];this.l={getName:()=>a};}};function P(a,b){var c=a.entries[b];if(c)return c;c=P(a,b.slice(0,Math.max(b.lastIndexOf("."),0)));const d=new Bb(b,c);a.entries[b]=d;c.i.push(d);return d}var Cb=class{constructor(){this.entries={};const a=new Bb("");a.g=ub;this.entries[""]=a;}},Db;function Eb(){Db||=new Cb;return Db}
|
|
39
|
-
function Fb(a,b,c){var d;if(d=a)if(d=a&&b){d=b.value;var e=a?zb(P(Eb(),a.getName())):O;d=d>=e.value;}d&&(b=b||O,d=P(Eb(),a.getName()),typeof c==="function"&&(c=c()),a=a.getName(),a=new yb(b,c,a),Ab(d,a));}function Gb(a,b){a&&Fb(a,tb,b);}function Q(a,b){a&&Fb(a,vb,b);}function Hb(){}Hb.prototype.g=null;function Ib(a){var b;(b=a.g)||(b={},Jb(a)&&(b[0]=true,b[1]=true),b=a.g=b);return b}var Kb;function Lb(){}x(Lb,Hb);function Mb(a){return (a=Jb(a))?new ActiveXObject(a):new XMLHttpRequest}function Jb(a){if(!a.h&&typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){const b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(let c=0;c<b.length;c++){const d=b[c];try{return new ActiveXObject(d),a.h=d}catch(e){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return a.h}Kb=new Lb;var Nb=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function R(a){K.call(this);this.headers=new Map;this.K=a||null;this.i=false;this.J=this.g=null;this.T=this.G="";this.m=0;this.A="";this.l=this.R=this.F=this.P=false;this.u=0;this.H=null;this.B=Ob;this.I=this.O=false;}x(R,K);var Ob="";R.prototype.h=P(Eb(),"goog.net.XhrIo").l;var Pb=/^https?$/i,Qb=["POST","PUT"];
|
|
40
|
-
function Rb(a,b,c){if(a.g)throw Error("[goog.net.XhrIo] Object is active with another request="+a.G+"; newUri="+b);a.G=b;a.A="";a.m=0;a.T="POST";a.P=false;a.i=true;a.g=a.K?Mb(a.K):Mb(Kb);a.J=a.K?Ib(a.K):Ib(Kb);a.g.onreadystatechange=w(a.U,a);try{Q(a.h,S(a,"Opening Xhr")),a.R=!0,a.g.open("POST",String(b),!0),a.R=!1;}catch(g){Q(a.h,S(a,"Error opening Xhr: "+g.message));Sb(a,g);return}b=c||"";c=new Map(a.headers);const d=Array.from(c.keys()).find(g=>"content-type"==g.toLowerCase()),e=q.FormData&&b instanceof
|
|
41
|
-
q.FormData;!(za(Qb,"POST")>=0)||d||e||c.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const [g,f]of c)a.g.setRequestHeader(g,f);a.B&&(a.g.responseType=a.B);"withCredentials"in a.g&&a.g.withCredentials!==a.O&&(a.g.withCredentials=a.O);try{Tb(a),a.u>0&&(a.I=Ub(a.g),Q(a.h,S(a,"Will abort after "+a.u+"ms if incomplete, xhr2 "+a.I)),a.I?(a.g.timeout=a.u,a.g.ontimeout=w(a.V,a)):a.H=sb(a.V,a.u,a)),Q(a.h,S(a,"Sending request")),a.F=!0,a.g.send(b),a.F=!1;}catch(g){Q(a.h,S(a,"Send error: "+
|
|
42
|
-
g.message)),Sb(a,g);}}function Ub(a){return Ca&&typeof a.timeout==="number"&&a.ontimeout!==void 0}n=R.prototype;n.V=function(){typeof p!="undefined"&&this.g&&(this.A="Timed out after "+this.u+"ms, aborting",this.m=8,Q(this.h,S(this,this.A)),L(this,"timeout"),this.abort(8));};function Sb(a,b){a.i=false;a.g&&(a.l=true,a.g.abort(),a.l=false);a.A=b;a.m=5;Vb(a);T(a);}function Vb(a){a.P||(a.P=true,L(a,"complete"),L(a,"error"));}
|
|
43
|
-
n.abort=function(a){this.g&&this.i&&(Q(this.h,S(this,"Aborting")),this.i=false,this.l=true,this.g.abort(),this.l=false,this.m=a||7,L(this,"complete"),L(this,"abort"),T(this));};n.C=function(){this.g&&(this.i&&(this.i=false,this.l=true,this.g.abort(),this.l=false),T(this,true));R.N.C.call(this);};n.U=function(){this.v||(this.R||this.F||this.l?Wb(this):this.X());};n.X=function(){Wb(this);};
|
|
44
|
-
function Wb(a){if(a.i&&typeof p!="undefined")if(a.J[1]&&U(a)==4&&a.getStatus()==2)Q(a.h,S(a,"Local request error detected and ignored"));else if(a.F&&U(a)==4)sb(a.U,0,a);else if(L(a,"readystatechange"),U(a)==4){Q(a.h,S(a,"Request complete"));a.i=false;try{const f=a.getStatus();a:switch(f){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var b=!0;break a;default:b=!1;}var c;if(!(c=b)){var d;if(d=f===0){var e=String(a.G).match(Nb)[1]||null;!e&&q.self&&q.self.location&&(e=q.self.location.protocol.slice(0,
|
|
45
|
-
-1));d=!Pb.test(e?e.toLowerCase():"");}c=d;}if(c)L(a,"complete"),L(a,"success");else {a.m=6;try{var g=U(a)>2?a.g.statusText:"";}catch(h){Q(a.h,"Can not get status: "+h.message),g="";}a.A=g+" ["+a.getStatus()+"]";Vb(a);}}finally{T(a);}}}function T(a,b){if(a.g){Tb(a);const c=a.g,d=a.J[0]?()=>{}:null;a.g=null;a.J=null;b||L(a,"ready");try{c.onreadystatechange=d;}catch(e){Gb(a.h,"Problem encountered resetting onreadystatechange: "+e.message);}}}
|
|
46
|
-
function Tb(a){a.g&&a.I&&(a.g.ontimeout=null);a.H&&(rb.clearTimeout(a.H),a.H=null);}n.isActive=function(){return !!this.g};function U(a){return a.g?a.g.readyState:0}n.getStatus=function(){try{return U(this)>2?this.g.status:-1}catch(a){return -1}};
|
|
47
|
-
function Xb(a){try{if(!a.g)return null;if("response"in a.g)return a.g.response;switch(a.B){case Ob:case "text":return a.g.responseText;case "arraybuffer":if("mozResponseArrayBuffer"in a.g)return a.g.mozResponseArrayBuffer}Gb(a.h,"Response type "+a.B+" is not supported on this browser");return null}catch(b){return Q(a.h,"Can not get response: "+b.message),null}}
|
|
48
|
-
function Yb(a){const b={};a=(a.g&&U(a)>=2?a.g.getAllResponseHeaders()||"":"").split("\r\n");for(let d=0;d<a.length;d++){if(/^[\s\xa0]*$/.test(a[d]))continue;var c=Qa(a[d]);const e=c[0];c=c[1];if(typeof c!=="string")continue;c=c.trim();const g=b[e]||[];b[e]=g;g.push(c);}return Ja(b,function(d){return d.join(", ")})}function S(a,b){return b+" ["+a.T+" "+a.G+" "+a.getStatus()+"]"}var Zb={},V=null;function $b(a){var b=a.length,c=b*3/4;c%3?c=Math.floor(c):"=.".indexOf(a[b-1])!=-1&&(c="=.".indexOf(a[b-2])!=-1?c-2:c-1);var d=new Uint8Array(c),e=0;ac(a,function(g){d[e++]=g;});return e!==c?d.subarray(0,e):d}
|
|
49
|
-
function ac(a,b){function c(k){for(;d<a.length;){var l=a.charAt(d++),m=V[l];if(m!=null)return m;if(!/^[\s\xa0]*$/.test(l))throw Error("Unknown base64 encoding at char: "+l);}return k}bc();for(var d=0;;){var e=c(-1),g=c(0),f=c(64),h=c(64);if(h===64&&e===-1)break;b(e<<2|g>>4);f!=64&&(b(g<<4&240|f>>2),h!=64&&b(f<<6&192|h));}}
|
|
50
|
-
function bc(){if(!V){V={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;c<5;c++){var d=a.concat(b[c].split(""));Zb[c]=d;for(var e=0;e<d.length;e++){var g=d[e];V[g]===void 0&&(V[g]=e);}}}}const cc=["content-type","grpc-status","grpc-message"];function W(a,b){if(b.code!=0){var c=new C(b.code,decodeURIComponent(b.message||""),b.metadata);for(let d=0;d<a.j.length;d++)a.j[d](c);}b={code:b.code,details:decodeURIComponent(b.message||""),metadata:b.metadata};for(c=0;c<a.m.length;c++)a.m[c](b);}function dc(a,b){for(let c=0;c<a.l.length;c++)a.l[c](b);}function ec(a){for(let b=0;b<a.i.length;b++)a.i[b]();}function X(a,b){b=a.indexOf(b);b>-1&&a.splice(b,1);}
|
|
51
|
-
class Y{constructor(a){this.g=a.$;this.v=null;this.h=[];this.m=[];this.l=[];this.j=[];this.i=[];this.u=false;this.o=0;this.A=new wa;const b=this;cb(this.g,"readystatechange",function(){var c=b.g;if(c=c.g?c.g.getResponseHeader("Content-Type"):null){c=c.toLowerCase();if(c.lastIndexOf("application/grpc-web-text",0)==0){c=b.g;try{var d=c.g?c.g.responseText:"";}catch(h){Q(c.h,"Can not get responseText: "+h.message),d="";}c=d||"";d=c.length-c.length%4;c=c.substr(b.o,d-b.o);if(c.length==0)return;b.o=d;c=$b(c);}else if(c.lastIndexOf("application/grpc",
|
|
52
|
-
0)==0)c=new Uint8Array(Xb(b.g));else {W(b,new C(2,"Unknown Content-type received."));return}d=null;try{d=pa(b.A,c);}catch(h){W(b,new C(2,"Error in parsing response body"));}if(d)for(c=0;c<d.length;c++){if(qa in d[c]){var e=d[c][qa];if(e){var g=false;let h;try{h=b.v(e),g=!0;}catch(k){W(b,new C(13,`Error when deserializing response data; error: ${k}`+`, response: ${h}`));}if(g){e=b;g=h;for(var f=0;f<e.h.length;f++)e.h[f](g);}}}if(B in d[c]&&d[c][B].length>0){e="";for(g=0;g<d[c][B].length;g++)e+=String.fromCharCode(d[c][B][g]);
|
|
53
|
-
e=e.trim().split("\r\n");g={};for(f=0;f<e.length;f++){const h=e[f].indexOf(":");g[e[f].substring(0,h).trim()]=e[f].substring(h+1).trim();}e=g;g=0;f="";"grpc-status"in e&&(g=Number(e["grpc-status"]),delete e["grpc-status"]);"grpc-message"in e&&(f=e["grpc-message"],delete e["grpc-message"]);W(b,new C(g,f,e));}}}});cb(this.g,"complete",function(){var c=b.g.m,d=2,e="";const g={};d=Yb(b.g);const f={};for(var h in d)d.hasOwnProperty(h)&&(f[h.toLowerCase()]=d[h]);Object.keys(f).forEach(k=>{cc.includes(k)||
|
|
54
|
-
(g[k]=f[k]);});dc(b,g);h=-1;if(c!=0){switch(c){case 7:d=10;break;case 8:d=4;break;case 6:h=b.g.getStatus();d=xa(h);break;default:d=14;}d==10&&b.u||(e=ma(c),h!=-1&&(e+=", http status code: "+h),W(b,new C(d,e)));}else c=false,"grpc-status"in f&&(d=Number(f["grpc-status"]),"grpc-message"in f&&(e=f["grpc-message"]),d!=0&&(W(b,new C(d,e||"",f)),c=true)),c||ec(b);});}on(a,b){a=="data"?this.h.push(b):a=="status"?this.m.push(b):a=="metadata"?this.l.push(b):a=="end"?this.i.push(b):a=="error"&&this.j.push(b);return this}removeListener(a,
|
|
55
|
-
b){a=="data"?X(this.h,b):a=="status"?X(this.m,b):a=="metadata"?X(this.l,b):a=="end"?X(this.i,b):a=="error"&&X(this.j,b);return this}cancel(){this.u=true;this.g.abort();}}Y.prototype.cancel=Y.prototype.cancel;Y.prototype.removeListener=Y.prototype.removeListener;Y.prototype.on=Y.prototype.on;function fc(a){let b="";Ia(a,function(c,d){b+=d;b+=":";b+=c;b+="\r\n";});return b}function hc(a,b){return b.reduce((c,d)=>e=>d.intercept(e,c),a)}
|
|
56
|
-
function ic(a,b,c){let d=false,e=null,g=false;a.on("data",function(f){d=true;e=f;});a.on("error",function(f){f.code==0||g||(g=true,b(f,null));});a.on("status",function(f){f.code==0||g?c&&b(null,null,f):(g=true,b({code:f.code,message:f.details,metadata:f.metadata},null));});if(c)a.on("metadata",function(f){b(null,null,null,f);});a.on("end",function(){g||(d?c?b(null,e,null,null,true):b(null,e):b({code:2,message:"Incomplete response"}));c&&b(null,null);});}
|
|
57
|
-
function jc(a,b,c){var d=b.getMethodDescriptor(),e=c+d.getName();c=a.i?a.i:new R;c.O=a.j;const g=new Y({$:c});g.v=d.h;var f=b.getMetadata();for(var h in f)c.headers.set(h,f[h]);a.g=="text"?(c.headers.set("Content-Type","application/grpc-web-text"),c.headers.set("Accept","application/grpc-web-text")):c.headers.set("Content-Type","application/grpc-web+proto");c.headers.set("X-User-Agent","grpc-web-javascript/0.1");c.headers.set("X-Grpc-Web","1");c.headers.has("deadline")&&(h=Number(c.headers.get("deadline")),
|
|
58
|
-
h=Math.ceil(h-(new Date).getTime()),c.headers.delete("deadline"),h===Infinity&&(h=0),h>0&&(c.headers.set("grpc-timeout",h+"m"),c.u=Math.max(0,Math.max(1E3,Math.ceil(h*1.1)))));if(a.l){h=c.headers;f={};for(k of h.keys())f[k]=h.get(k);var k=f;c.headers.clear();b:{for(l in k){var l=false;break b}l=true;}if(!l)if(k=fc(k),typeof e==="string"){if(l=encodeURIComponent("$httpHeaders"),k=k!=null?"="+encodeURIComponent(String(k)):"",l+=k)k=e.indexOf("#"),k<0&&(k=e.length),h=e.indexOf("?"),h<0||h>k?(h=k,f=""):f=e.substring(h+
|
|
59
|
-
1,k),e=[e.slice(0,h),f,e.slice(k)],k=e[1],e[1]=l?k?k+"&"+l:l:k,e=e[0]+(e[1]?"?"+e[1]:"")+e[2];}else e.g("$httpHeaders",k);}b=(0, d.g)(b.getRequestMessage());d=b.length;l=[0,0,0,0];k=new Uint8Array(5+d);for(h=3;h>=0;h--)l[h]=d%256,d>>>=8;k.set(new Uint8Array(l),1);k.set(b,5);b=k;if(a.g=="text"){a=b;var m;m===void 0&&(m=0);bc();m=Zb[m];b=Array(Math.floor(a.length/3));d=m[64]||"";for(l=k=0;k<a.length-2;k+=3){var z=a[k],A=a[k+1];f=a[k+2];h=m[z>>2];z=m[(z&3)<<4|A>>4];A=m[(A&15)<<2|f>>6];f=m[f&63];b[l++]=
|
|
60
|
-
h+z+A+f;}h=0;f=d;switch(a.length-k){case 2:h=a[k+1],f=m[(h&15)<<2]||d;case 1:a=a[k],b[l]=m[a>>2]+m[(a&3)<<4|h>>4]+f+d;}b=b.join("");}else a.g=="binary"&&(c.B="arraybuffer");Rb(c,e,b);return g}
|
|
61
|
-
function kc(a,b,c,d,e,g={}){const f=b.substr(0,b.length-e.name.length),h=g&&g.signal;return hc(k=>new Promise((l,m)=>{if(h&&h.aborted){const v=new C(1,"Aborted");v.cause=h.reason;m(v);}else {var z=jc(a,k,f),A,ib,jb;ic(z,(v,lc,kb,lb,mc)=>{v?m(v):mc?jb=lc:kb?ib=kb:lb?A=lb:l(ja(k.getMethodDescriptor(),jb,A,ib));},true);h&&h.addEventListener("abort",()=>{z.cancel();const v=new C(1,"Aborted");v.cause=h.reason;m(v);});}}),a.m).call(a,ia(e,c,d)).then(k=>k.getResponseMessage())}
|
|
62
|
-
class Z{constructor(a={},b){this.g=a.format||r("format",a)||"text";this.l=a.ca||r("suppressCorsPreflight",a)||false;this.j=a.withCredentials||r("withCredentials",a)||false;this.h=a.ba||r("streamInterceptors",a)||[];this.m=a.da||r("unaryInterceptors",a)||[];this.i=b||null;}Y(a,b,c,d,e){const g=a.substr(0,a.length-d.name.length);a=hc(f=>jc(this,f,g),this.h).call(this,ia(d,b,c));ic(a,e,false);return new la(a)}unaryCall(a,b,c,d,e={}){return kc(this,a,b,c,d,e)}Z(a,b,c,d){const e=a.substr(0,a.length-d.name.length);
|
|
63
|
-
return hc(g=>jc(this,g,e),this.h).call(this,ia(d,b,c))}}Z.prototype.serverStreaming=Z.prototype.Z;Z.prototype.unaryCall=Z.prototype.unaryCall;Z.prototype.rpcCall=Z.prototype.Y;grpcWeb.CallOptions=ea;grpcWeb.MethodDescriptor=ka;grpcWeb.GrpcWebClientBase=Z;grpcWeb.RpcError=C;grpcWeb.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15};grpcWeb.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"};
|
|
64
|
-
rb=typeof globalThis!=="undefined"&&globalThis||self;
|
|
65
|
-
return grpcWeb;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
var grpcWebExports = requireGrpcWeb();
|
|
69
|
-
|
|
70
9
|
var parallax_gateway_pb = {};
|
|
71
10
|
|
|
72
11
|
var googleProtobuf = {};
|
|
@@ -1118,7 +1057,8 @@
|
|
|
1118
1057
|
var f, obj = {
|
|
1119
1058
|
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
|
1120
1059
|
attributesMap: (f = msg.getAttributesMap()) ? f.toObject(includeInstance, undefined) : [],
|
|
1121
|
-
tagsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
|
|
1060
|
+
tagsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
|
|
1061
|
+
startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
|
1122
1062
|
};
|
|
1123
1063
|
|
|
1124
1064
|
if (includeInstance) {
|
|
@@ -1169,6 +1109,11 @@
|
|
|
1169
1109
|
var value = /** @type {string} */ (reader.readString());
|
|
1170
1110
|
msg.addTags(value);
|
|
1171
1111
|
break;
|
|
1112
|
+
case 4:
|
|
1113
|
+
var value = new google_protobuf_timestamp_pb.Timestamp;
|
|
1114
|
+
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
|
|
1115
|
+
msg.setStartTime(value);
|
|
1116
|
+
break;
|
|
1172
1117
|
default:
|
|
1173
1118
|
reader.skipField();
|
|
1174
1119
|
break;
|
|
@@ -1216,6 +1161,14 @@
|
|
|
1216
1161
|
f
|
|
1217
1162
|
);
|
|
1218
1163
|
}
|
|
1164
|
+
f = message.getStartTime();
|
|
1165
|
+
if (f != null) {
|
|
1166
|
+
writer.writeMessage(
|
|
1167
|
+
4,
|
|
1168
|
+
f,
|
|
1169
|
+
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
|
|
1170
|
+
);
|
|
1171
|
+
}
|
|
1219
1172
|
};
|
|
1220
1173
|
|
|
1221
1174
|
|
|
@@ -1297,6 +1250,43 @@
|
|
|
1297
1250
|
};
|
|
1298
1251
|
|
|
1299
1252
|
|
|
1253
|
+
/**
|
|
1254
|
+
* optional google.protobuf.Timestamp start_time = 4;
|
|
1255
|
+
* @return {?proto.google.protobuf.Timestamp}
|
|
1256
|
+
*/
|
|
1257
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.getStartTime = function() {
|
|
1258
|
+
return /** @type{?proto.google.protobuf.Timestamp} */ (
|
|
1259
|
+
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));
|
|
1260
|
+
};
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
/**
|
|
1264
|
+
* @param {?proto.google.protobuf.Timestamp|undefined} value
|
|
1265
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceRequest} returns this
|
|
1266
|
+
*/
|
|
1267
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.setStartTime = function(value) {
|
|
1268
|
+
return jspb.Message.setWrapperField(this, 4, value);
|
|
1269
|
+
};
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
/**
|
|
1273
|
+
* Clears the message field making it undefined.
|
|
1274
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceRequest} returns this
|
|
1275
|
+
*/
|
|
1276
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.clearStartTime = function() {
|
|
1277
|
+
return this.setStartTime(undefined);
|
|
1278
|
+
};
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
/**
|
|
1282
|
+
* Returns whether this field is set.
|
|
1283
|
+
* @return {boolean}
|
|
1284
|
+
*/
|
|
1285
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.hasStartTime = function() {
|
|
1286
|
+
return jspb.Message.getField(this, 4) != null;
|
|
1287
|
+
};
|
|
1288
|
+
|
|
1289
|
+
|
|
1300
1290
|
|
|
1301
1291
|
|
|
1302
1292
|
|
|
@@ -1330,7 +1320,8 @@
|
|
|
1330
1320
|
proto.gateway.parallax.v1.CreateTraceResponse.toObject = function(includeInstance, msg) {
|
|
1331
1321
|
var f, obj = {
|
|
1332
1322
|
status: (f = msg.getStatus()) && proto_common_v1_status_pb.ResponseStatus.toObject(includeInstance, f),
|
|
1333
|
-
traceId: jspb.Message.getFieldWithDefault(msg, 2, "")
|
|
1323
|
+
traceId: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
|
1324
|
+
rootSpanId: jspb.Message.getFieldWithDefault(msg, 3, "")
|
|
1334
1325
|
};
|
|
1335
1326
|
|
|
1336
1327
|
if (includeInstance) {
|
|
@@ -1376,6 +1367,10 @@
|
|
|
1376
1367
|
var value = /** @type {string} */ (reader.readString());
|
|
1377
1368
|
msg.setTraceId(value);
|
|
1378
1369
|
break;
|
|
1370
|
+
case 3:
|
|
1371
|
+
var value = /** @type {string} */ (reader.readString());
|
|
1372
|
+
msg.setRootSpanId(value);
|
|
1373
|
+
break;
|
|
1379
1374
|
default:
|
|
1380
1375
|
reader.skipField();
|
|
1381
1376
|
break;
|
|
@@ -1420,6 +1415,13 @@
|
|
|
1420
1415
|
f
|
|
1421
1416
|
);
|
|
1422
1417
|
}
|
|
1418
|
+
f = message.getRootSpanId();
|
|
1419
|
+
if (f.length > 0) {
|
|
1420
|
+
writer.writeString(
|
|
1421
|
+
3,
|
|
1422
|
+
f
|
|
1423
|
+
);
|
|
1424
|
+
}
|
|
1423
1425
|
};
|
|
1424
1426
|
|
|
1425
1427
|
|
|
@@ -1478,6 +1480,24 @@
|
|
|
1478
1480
|
};
|
|
1479
1481
|
|
|
1480
1482
|
|
|
1483
|
+
/**
|
|
1484
|
+
* optional string root_span_id = 3;
|
|
1485
|
+
* @return {string}
|
|
1486
|
+
*/
|
|
1487
|
+
proto.gateway.parallax.v1.CreateTraceResponse.prototype.getRootSpanId = function() {
|
|
1488
|
+
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
|
|
1489
|
+
};
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
/**
|
|
1493
|
+
* @param {string} value
|
|
1494
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceResponse} returns this
|
|
1495
|
+
*/
|
|
1496
|
+
proto.gateway.parallax.v1.CreateTraceResponse.prototype.setRootSpanId = function(value) {
|
|
1497
|
+
return jspb.Message.setProto3StringField(this, 3, value);
|
|
1498
|
+
};
|
|
1499
|
+
|
|
1500
|
+
|
|
1481
1501
|
|
|
1482
1502
|
|
|
1483
1503
|
|
|
@@ -1512,7 +1532,7 @@
|
|
|
1512
1532
|
var f, obj = {
|
|
1513
1533
|
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
|
1514
1534
|
traceId: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
|
1515
|
-
parentSpanId:
|
|
1535
|
+
parentSpanId: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
|
1516
1536
|
attributesMap: (f = msg.getAttributesMap()) ? f.toObject(includeInstance, undefined) : [],
|
|
1517
1537
|
startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
|
1518
1538
|
};
|
|
@@ -1617,8 +1637,8 @@
|
|
|
1617
1637
|
f
|
|
1618
1638
|
);
|
|
1619
1639
|
}
|
|
1620
|
-
f =
|
|
1621
|
-
if (f
|
|
1640
|
+
f = message.getParentSpanId();
|
|
1641
|
+
if (f.length > 0) {
|
|
1622
1642
|
writer.writeString(
|
|
1623
1643
|
3,
|
|
1624
1644
|
f
|
|
@@ -1689,25 +1709,7 @@
|
|
|
1689
1709
|
* @return {!proto.gateway.parallax.v1.StartSpanRequest} returns this
|
|
1690
1710
|
*/
|
|
1691
1711
|
proto.gateway.parallax.v1.StartSpanRequest.prototype.setParentSpanId = function(value) {
|
|
1692
|
-
return jspb.Message.
|
|
1693
|
-
};
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
/**
|
|
1697
|
-
* Clears the field making it undefined.
|
|
1698
|
-
* @return {!proto.gateway.parallax.v1.StartSpanRequest} returns this
|
|
1699
|
-
*/
|
|
1700
|
-
proto.gateway.parallax.v1.StartSpanRequest.prototype.clearParentSpanId = function() {
|
|
1701
|
-
return jspb.Message.setField(this, 3, undefined);
|
|
1702
|
-
};
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
/**
|
|
1706
|
-
* Returns whether this field is set.
|
|
1707
|
-
* @return {boolean}
|
|
1708
|
-
*/
|
|
1709
|
-
proto.gateway.parallax.v1.StartSpanRequest.prototype.hasParentSpanId = function() {
|
|
1710
|
-
return jspb.Message.getField(this, 3) != null;
|
|
1712
|
+
return jspb.Message.setProto3StringField(this, 3, value);
|
|
1711
1713
|
};
|
|
1712
1714
|
|
|
1713
1715
|
|
|
@@ -4087,6 +4089,67 @@
|
|
|
4087
4089
|
|
|
4088
4090
|
var parallax_gateway_pbExports = requireParallax_gateway_pb();
|
|
4089
4091
|
|
|
4092
|
+
var grpcWeb = {};
|
|
4093
|
+
|
|
4094
|
+
/*
|
|
4095
|
+
|
|
4096
|
+
Copyright The Closure Library Authors.
|
|
4097
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4098
|
+
*/
|
|
4099
|
+
|
|
4100
|
+
var hasRequiredGrpcWeb;
|
|
4101
|
+
|
|
4102
|
+
function requireGrpcWeb () {
|
|
4103
|
+
if (hasRequiredGrpcWeb) return grpcWeb;
|
|
4104
|
+
hasRequiredGrpcWeb = 1;
|
|
4105
|
+
var n,p=p||{},q=grpcWeb||self;function r(a,b){a=a.split(".");b=b||q;for(var c=0;c<a.length;c++)if(b=b[a[c]],b==null)return null;return b}function t(a){var b=typeof a;return b=="object"&&a!=null||b=="function"}function ca(a,b,c){return a.call.apply(a.bind,arguments)}
|
|
4106
|
+
function da(a,b,c){if(!a)throw Error();if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function w(a,b,c){w=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?ca:da;return w.apply(null,arguments)}
|
|
4107
|
+
function x(a,b){function c(){}c.prototype=b.prototype;a.N=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.aa=function(d,e,g){for(var f=Array(arguments.length-2),h=2;h<arguments.length;h++)f[h-2]=arguments[h];return b.prototype[e].apply(d,f)};}class ea{constructor(a){this.g=a||{};}get(a){return this.g[a]}}class fa{constructor(a,b,c){var d=new ea;this.j=a;this.h=b;this.g=c;this.i=d;}getRequestMessage(){return this.j}getMethodDescriptor(){return this.h}getMetadata(){return this.g}getCallOptions(){return this.i}}class ha{constructor(a,b,c={},d=null){this.i=a;this.g=c;this.h=b;this.j=d;}getResponseMessage(){return this.i}getMetadata(){return this.g}getMethodDescriptor(){return this.h}getStatus(){return this.j}}function ia(a,b,c={}){return new fa(b,a,c)}function ja(a,b,c={},d=null){return new ha(b,a,c,d)}const ka=class{constructor(a,b,c,d,e,g){this.name=a;this.g=e;this.h=g;}getName(){return this.name}};ka.prototype.getName=ka.prototype.getName;class la{constructor(a){this.g=a;}on(a,b){return a=="data"||a=="error"?this:this.g.on(a,b)}removeListener(a,b){return this.g.removeListener(a,b)}cancel(){this.g.cancel();}}function ma(a){switch(a){case 0:return "No Error";case 1:return "Access denied to content document";case 2:return "File not found";case 3:return "Firefox silently errored";case 4:return "Application custom error";case 5:return "An exception occurred";case 6:return "Http response at 400 or 500 level";case 7:return "Request was aborted";case 8:return "Request timed out";case 9:return "The resource is not available offline";default:return "Unrecognized error code"}}function y(a,b){if(Error.captureStackTrace)Error.captureStackTrace(this,y);else {const c=Error().stack;c&&(this.stack=c);}a&&(this.message=String(a));b!==void 0&&(this.cause=b);}x(y,Error);y.prototype.name="CustomError";function na(a,b){a=a.split("%s");let c="";const d=a.length-1;for(let e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");y.call(this,c+a[d]);}x(na,y);na.prototype.name="AssertionError";function oa(a,b){throw new na("Failure"+(": "+a),Array.prototype.slice.call(arguments,1));}function pa(a,b){function c(l){l==qa?f.o=l:l==B?f.o=l:ra(f,h,k,"invalid frame byte");f.h=sa;f.g=0;f.l=0;}function d(l){f.l++;f.g=(f.g<<8)+l;f.l==4&&(f.h=ta,f.m=0,typeof Uint8Array!=="undefined"?f.i=new Uint8Array(f.g):f.i=Array(f.g),f.g==0&&g());}function e(l){f.i[f.m++]=l;f.m==f.g&&g();}function g(){var l={};l[f.o]=f.i;f.j.push(l);f.h=ua;}var f=a,h,k=0;for(b instanceof Uint8Array||b instanceof Array?h=b:h=new Uint8Array(b);k<h.length;){switch(f.h){case va:ra(f,h,k,"stream already broken");break;case ua:c(h[k]);
|
|
4108
|
+
break;case sa:d(h[k]);break;case ta:e(h[k]);break;default:throw Error("unexpected parser state: "+f.h);}f.v++;k++;}a=f.j;f.j=[];return a.length>0?a:null}class wa{constructor(){this.u=null;this.j=[];this.v=0;this.h=ua;this.l=this.g=this.o=0;this.i=null;this.m=0;}}var ua=0,sa=1,ta=2,va=3,qa=0,B=128;function ra(a,b,c,d){a.h=va;a.u="The stream is broken @"+a.v+"/"+c+". Error: "+d+". With input:\n"+b;throw Error(a.u);}function xa(a){switch(a){case 200:return 0;case 400:return 3;case 401:return 16;case 403:return 7;case 404:return 5;case 409:return 10;case 412:return 9;case 429:return 8;case 499:return 1;case 500:return 2;case 501:return 12;case 503:return 14;case 504:return 4;default:return 2}}
|
|
4109
|
+
function ya(a){switch(a){case 0:return "OK";case 1:return "CANCELLED";case 2:return "UNKNOWN";case 3:return "INVALID_ARGUMENT";case 4:return "DEADLINE_EXCEEDED";case 5:return "NOT_FOUND";case 6:return "ALREADY_EXISTS";case 7:return "PERMISSION_DENIED";case 16:return "UNAUTHENTICATED";case 8:return "RESOURCE_EXHAUSTED";case 9:return "FAILED_PRECONDITION";case 10:return "ABORTED";case 11:return "OUT_OF_RANGE";case 12:return "UNIMPLEMENTED";case 13:return "INTERNAL";case 14:return "UNAVAILABLE";case 15:return "DATA_LOSS";
|
|
4110
|
+
default:return ""}}class C extends Error{constructor(a,b,c={}){super(b);this.code=a;this.metadata=c;}toString(){let a=`RpcError(${ya(this.code)||String(this.code)})`;this.message&&(a+=": "+this.message);return a}}C.prototype.name="RpcError";const za=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(typeof a==="string")return typeof b!=="string"||b.length!=1?-1:a.indexOf(b,0);for(let c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return -1};function Aa(){var a=q.navigator;return a&&(a=a.userAgent)?a:""}function D(a){return Aa().indexOf(a)!=-1}function Ba(a){Ba[" "](a);return a}Ba[" "]=function(){};var Ca=D("Trident")||D("MSIE"),Da=D("Gecko")&&!(Aa().toLowerCase().indexOf("webkit")!=-1&&!D("Edge"))&&!(D("Trident")||D("MSIE"))&&!D("Edge");var Fa=class{constructor(a){if(Ea!==Ea)throw Error("SafeUrl is not meant to be built directly");this.g=a;}toString(){return this.g.toString()}},Ea={};new Fa("about:invalid#zClosurez");new Fa("about:blank");const Ga={};class Ha{constructor(){if(Ga!==Ga)throw Error("SafeStyle is not meant to be built directly");}toString(){return "".toString()}}new Ha;function Ia(a,b){for(const c in a)b.call(void 0,a[c],c,a);}function Ja(a,b){const c={};for(const d in a)c[d]=b.call(void 0,a[d],d,a);return c}const Ka="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function La(a,b){let c,d;for(let e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(let g=0;g<Ka.length;g++)c=Ka[g],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c]);}}const Ma={};class Na{constructor(){if(Ma!==Ma)throw Error("SafeStyleSheet is not meant to be built directly");}toString(){return "".toString()}}new Na;const Oa={};class Pa{constructor(){var a=q.trustedTypes&&q.trustedTypes.emptyHTML||"";if(Oa!==Oa)throw Error("SafeHtml is not meant to be built directly");this.g=a;}toString(){return this.g.toString()}}new Pa;function Qa(a){var b=1;a=a.split(":");const c=[];for(;b>0&&a.length;)c.push(a.shift()),b--;a.length&&c.push(a.join(":"));return c}function E(){this.v=this.v;this.o=this.o;}var Ra=0;E.prototype.v=false;E.prototype.dispose=function(){if(!this.v&&(this.v=true,this.C(),0!=Ra));};E.prototype.C=function(){if(this.o)for(;this.o.length;)this.o.shift()();};var Ta=Object.freeze||function(a){return a};function F(a,b){this.type=a;this.g=this.target=b;this.defaultPrevented=false;}F.prototype.h=function(){this.defaultPrevented=true;};var Ua=function(){if(!q.addEventListener||!Object.defineProperty)return false;var a=false,b=Object.defineProperty({},"passive",{get:function(){a=true;}});try{const c=()=>{};q.addEventListener("test",c,b);q.removeEventListener("test",c,b);}catch(c){}return a}();function G(a,b){F.call(this,a?a.type:"");this.relatedTarget=this.g=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=false;this.state=null;this.pointerId=0;this.pointerType="";this.i=null;a&&this.init(a,b);}x(G,F);var Va=Ta({2:"touch",3:"pen",4:"mouse"});
|
|
4111
|
+
G.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.g=b;if(b=a.relatedTarget){if(Da){a:{try{Ba(b.nodeName);var e=!0;break a}catch(g){}e=false;}e||(b=null);}}else c=="mouseover"?b=a.fromElement:c=="mouseout"&&(b=a.toElement);this.relatedTarget=b;d?(this.clientX=d.clientX!==void 0?d.clientX:d.pageX,this.clientY=d.clientY!==void 0?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||
|
|
4112
|
+
0):(this.clientX=a.clientX!==void 0?a.clientX:a.pageX,this.clientY=a.clientY!==void 0?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=typeof a.pointerType==="string"?a.pointerType:Va[a.pointerType]||"";this.state=a.state;this.i=a;a.defaultPrevented&&G.N.h.call(this);};
|
|
4113
|
+
G.prototype.h=function(){G.N.h.call(this);var a=this.i;a.preventDefault?a.preventDefault():a.returnValue=false;};var H="closure_listenable_"+(Math.random()*1E6|0);var Wa=0;function Xa(a,b,c,d,e){this.listener=a;this.proxy=null;this.src=b;this.type=c;this.capture=!!d;this.M=e;this.key=++Wa;this.D=this.L=false;}function I(a){a.D=true;a.listener=null;a.proxy=null;a.src=null;a.M=null;}function J(a){this.src=a;this.g={};this.h=0;}J.prototype.add=function(a,b,c,d,e){var g=a.toString();a=this.g[g];a||(a=this.g[g]=[],this.h++);var f=Ya(a,b,d,e);f>-1?(b=a[f],c||(b.L=false)):(b=new Xa(b,this.src,g,!!d,e),b.L=c,a.push(b));return b};function Za(a,b){var c=b.type;if(c in a.g){var d=a.g[c],e=za(d,b),g;(g=e>=0)&&Array.prototype.splice.call(d,e,1);g&&(I(b),a.g[c].length==0&&(delete a.g[c],a.h--));}}
|
|
4114
|
+
function Ya(a,b,c,d){for(var e=0;e<a.length;++e){var g=a[e];if(!g.D&&g.listener==b&&g.capture==!!c&&g.M==d)return e}return -1}var $a="closure_lm_"+(Math.random()*1E6|0),ab={};function cb(a,b,c,d,e){if(Array.isArray(b))for(var g=0;g<b.length;g++)cb(a,b[g],c,d,e);else c=eb(c),a&&a[H]?a.j.add(String(b),c,false,t(d)?!!d.capture:false,e):fb(a,b,c,false,d,e);}
|
|
4115
|
+
function fb(a,b,c,d,e,g){if(!b)throw Error("Invalid event type");var f=t(e)?!!e.capture:!!e,h=gb(a);h||(a[$a]=h=new J(a));c=h.add(b,c,d,f,g);if(!c.proxy){d=hb();c.proxy=d;d.src=a;d.listener=c;if(a.addEventListener)Ua||(e=f),e===void 0&&(e=false),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(mb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");}}
|
|
4116
|
+
function hb(){function a(c){return b.call(a.src,a.listener,c)}const b=nb;return a} function ob(a,b,c,d,e){if(Array.isArray(b))for(var g=0;g<b.length;g++)ob(a,b[g],c,d,e);else (d=t(d)?!!d.capture:!!d,c=eb(c),a&&a[H])?(a=a.j,b=String(b).toString(),b in a.g&&(g=a.g[b],c=Ya(g,c,d,e),c>-1&&(I(g[c]),Array.prototype.splice.call(g,c,1),g.length==0&&(delete a.g[b],a.h--)))):a&&(a=gb(a))&&(b=a.g[b.toString()],a=-1,b&&(a=Ya(b,c,d,e)),(c=a>-1?b[a]:null)&&pb(c));}
|
|
4117
|
+
function pb(a){if(typeof a!=="number"&&a&&!a.D){var b=a.src;if(b&&b[H])Za(b.j,a);else {var c=a.type,d=a.proxy;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(mb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);(c=gb(b))?(Za(c,a),c.h==0&&(c.src=null,b[$a]=null)):I(a);}}}function mb(a){return a in ab?ab[a]:ab[a]="on"+a}function nb(a,b){if(a.D)a=true;else {b=new G(b,this);var c=a.listener,d=a.M||a.src;a.L&&pb(a);a=c.call(d,b);}return a}
|
|
4118
|
+
function gb(a){a=a[$a];return a instanceof J?a:null}var qb="__closure_events_fn_"+(Math.random()*1E9>>>0);function eb(a){if(typeof a==="function")return a;a[qb]||(a[qb]=function(b){return a.handleEvent(b)});return a[qb]}function K(){E.call(this);this.j=new J(this);this.W=this;this.S=null;}x(K,E);K.prototype[H]=true;K.prototype.removeEventListener=function(a,b,c,d){ob(this,a,b,c,d);};
|
|
4119
|
+
function L(a,b){var c,d=a.S;if(d)for(c=[];d;d=d.S)c.push(d);a=a.W;d=b.type||b;if(typeof b==="string")b=new F(b,a);else if(b instanceof F)b.target=b.target||a;else {var e=b;b=new F(d,a);La(b,e);}e=true;if(c)for(var g=c.length-1;g>=0;g--){var f=b.g=c[g];e=M(f,d,true,b)&&e;}f=b.g=a;e=M(f,d,true,b)&&e;e=M(f,d,false,b)&&e;if(c)for(g=0;g<c.length;g++)f=b.g=c[g],e=M(f,d,false,b)&&e;}
|
|
4120
|
+
K.prototype.C=function(){K.N.C.call(this);if(this.j){var a=this.j,c;for(c in a.g){for(var d=a.g[c],e=0;e<d.length;e++)I(d[e]);delete a.g[c];a.h--;}}this.S=null;};function M(a,b,c,d){b=a.j.g[String(b)];if(!b)return true;b=b.concat();for(var e=true,g=0;g<b.length;++g){var f=b[g];if(f&&!f.D&&f.capture==c){var h=f.listener,k=f.M||f.src;f.L&&Za(a.j,f);e=h.call(k,d)!==false&&e;}}return e&&!d.defaultPrevented}var rb=q;function sb(a,b,c){if(typeof a==="function")c&&(a=w(a,c));else if(a&&typeof a.handleEvent=="function")a=w(a.handleEvent,a);else throw Error("Invalid listener argument");return Number(b)>2147483647?-1:rb.setTimeout(a,b||0)}var N=class{constructor(a,b){this.name=a;this.value=b;}toString(){return this.name}},O=new N("OFF",Infinity),tb=new N("SEVERE",1E3),ub=new N("CONFIG",700),vb=new N("FINE",500),yb=class{constructor(a,b,c){this.reset(a||O,b,c,void 0,void 0);}reset(){}};function zb(a){if(a.g)return a.g;if(a.h)return zb(a.h);oa("Root logger has no level set.");return O}function Ab(a,b){for(;a;)a.j.forEach(c=>{c(b);}),a=a.h;}
|
|
4121
|
+
var Bb=class{constructor(a,b=null){this.g=null;this.j=[];this.h=b||null;this.i=[];this.l={getName:()=>a};}};function P(a,b){var c=a.entries[b];if(c)return c;c=P(a,b.slice(0,Math.max(b.lastIndexOf("."),0)));const d=new Bb(b,c);a.entries[b]=d;c.i.push(d);return d}var Cb=class{constructor(){this.entries={};const a=new Bb("");a.g=ub;this.entries[""]=a;}},Db;function Eb(){Db||=new Cb;return Db}
|
|
4122
|
+
function Fb(a,b,c){var d;if(d=a)if(d=a&&b){d=b.value;var e=a?zb(P(Eb(),a.getName())):O;d=d>=e.value;}d&&(b=b||O,d=P(Eb(),a.getName()),typeof c==="function"&&(c=c()),a=a.getName(),a=new yb(b,c,a),Ab(d,a));}function Gb(a,b){a&&Fb(a,tb,b);}function Q(a,b){a&&Fb(a,vb,b);}function Hb(){}Hb.prototype.g=null;function Ib(a){var b;(b=a.g)||(b={},Jb(a)&&(b[0]=true,b[1]=true),b=a.g=b);return b}var Kb;function Lb(){}x(Lb,Hb);function Mb(a){return (a=Jb(a))?new ActiveXObject(a):new XMLHttpRequest}function Jb(a){if(!a.h&&typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){const b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(let c=0;c<b.length;c++){const d=b[c];try{return new ActiveXObject(d),a.h=d}catch(e){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return a.h}Kb=new Lb;var Nb=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function R(a){K.call(this);this.headers=new Map;this.K=a||null;this.i=false;this.J=this.g=null;this.T=this.G="";this.m=0;this.A="";this.l=this.R=this.F=this.P=false;this.u=0;this.H=null;this.B=Ob;this.I=this.O=false;}x(R,K);var Ob="";R.prototype.h=P(Eb(),"goog.net.XhrIo").l;var Pb=/^https?$/i,Qb=["POST","PUT"];
|
|
4123
|
+
function Rb(a,b,c){if(a.g)throw Error("[goog.net.XhrIo] Object is active with another request="+a.G+"; newUri="+b);a.G=b;a.A="";a.m=0;a.T="POST";a.P=false;a.i=true;a.g=a.K?Mb(a.K):Mb(Kb);a.J=a.K?Ib(a.K):Ib(Kb);a.g.onreadystatechange=w(a.U,a);try{Q(a.h,S(a,"Opening Xhr")),a.R=!0,a.g.open("POST",String(b),!0),a.R=!1;}catch(g){Q(a.h,S(a,"Error opening Xhr: "+g.message));Sb(a,g);return}b=c||"";c=new Map(a.headers);const d=Array.from(c.keys()).find(g=>"content-type"==g.toLowerCase()),e=q.FormData&&b instanceof
|
|
4124
|
+
q.FormData;!(za(Qb,"POST")>=0)||d||e||c.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const [g,f]of c)a.g.setRequestHeader(g,f);a.B&&(a.g.responseType=a.B);"withCredentials"in a.g&&a.g.withCredentials!==a.O&&(a.g.withCredentials=a.O);try{Tb(a),a.u>0&&(a.I=Ub(a.g),Q(a.h,S(a,"Will abort after "+a.u+"ms if incomplete, xhr2 "+a.I)),a.I?(a.g.timeout=a.u,a.g.ontimeout=w(a.V,a)):a.H=sb(a.V,a.u,a)),Q(a.h,S(a,"Sending request")),a.F=!0,a.g.send(b),a.F=!1;}catch(g){Q(a.h,S(a,"Send error: "+
|
|
4125
|
+
g.message)),Sb(a,g);}}function Ub(a){return Ca&&typeof a.timeout==="number"&&a.ontimeout!==void 0}n=R.prototype;n.V=function(){typeof p!="undefined"&&this.g&&(this.A="Timed out after "+this.u+"ms, aborting",this.m=8,Q(this.h,S(this,this.A)),L(this,"timeout"),this.abort(8));};function Sb(a,b){a.i=false;a.g&&(a.l=true,a.g.abort(),a.l=false);a.A=b;a.m=5;Vb(a);T(a);}function Vb(a){a.P||(a.P=true,L(a,"complete"),L(a,"error"));}
|
|
4126
|
+
n.abort=function(a){this.g&&this.i&&(Q(this.h,S(this,"Aborting")),this.i=false,this.l=true,this.g.abort(),this.l=false,this.m=a||7,L(this,"complete"),L(this,"abort"),T(this));};n.C=function(){this.g&&(this.i&&(this.i=false,this.l=true,this.g.abort(),this.l=false),T(this,true));R.N.C.call(this);};n.U=function(){this.v||(this.R||this.F||this.l?Wb(this):this.X());};n.X=function(){Wb(this);};
|
|
4127
|
+
function Wb(a){if(a.i&&typeof p!="undefined")if(a.J[1]&&U(a)==4&&a.getStatus()==2)Q(a.h,S(a,"Local request error detected and ignored"));else if(a.F&&U(a)==4)sb(a.U,0,a);else if(L(a,"readystatechange"),U(a)==4){Q(a.h,S(a,"Request complete"));a.i=false;try{const f=a.getStatus();a:switch(f){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var b=!0;break a;default:b=!1;}var c;if(!(c=b)){var d;if(d=f===0){var e=String(a.G).match(Nb)[1]||null;!e&&q.self&&q.self.location&&(e=q.self.location.protocol.slice(0,
|
|
4128
|
+
-1));d=!Pb.test(e?e.toLowerCase():"");}c=d;}if(c)L(a,"complete"),L(a,"success");else {a.m=6;try{var g=U(a)>2?a.g.statusText:"";}catch(h){Q(a.h,"Can not get status: "+h.message),g="";}a.A=g+" ["+a.getStatus()+"]";Vb(a);}}finally{T(a);}}}function T(a,b){if(a.g){Tb(a);const c=a.g,d=a.J[0]?()=>{}:null;a.g=null;a.J=null;b||L(a,"ready");try{c.onreadystatechange=d;}catch(e){Gb(a.h,"Problem encountered resetting onreadystatechange: "+e.message);}}}
|
|
4129
|
+
function Tb(a){a.g&&a.I&&(a.g.ontimeout=null);a.H&&(rb.clearTimeout(a.H),a.H=null);}n.isActive=function(){return !!this.g};function U(a){return a.g?a.g.readyState:0}n.getStatus=function(){try{return U(this)>2?this.g.status:-1}catch(a){return -1}};
|
|
4130
|
+
function Xb(a){try{if(!a.g)return null;if("response"in a.g)return a.g.response;switch(a.B){case Ob:case "text":return a.g.responseText;case "arraybuffer":if("mozResponseArrayBuffer"in a.g)return a.g.mozResponseArrayBuffer}Gb(a.h,"Response type "+a.B+" is not supported on this browser");return null}catch(b){return Q(a.h,"Can not get response: "+b.message),null}}
|
|
4131
|
+
function Yb(a){const b={};a=(a.g&&U(a)>=2?a.g.getAllResponseHeaders()||"":"").split("\r\n");for(let d=0;d<a.length;d++){if(/^[\s\xa0]*$/.test(a[d]))continue;var c=Qa(a[d]);const e=c[0];c=c[1];if(typeof c!=="string")continue;c=c.trim();const g=b[e]||[];b[e]=g;g.push(c);}return Ja(b,function(d){return d.join(", ")})}function S(a,b){return b+" ["+a.T+" "+a.G+" "+a.getStatus()+"]"}var Zb={},V=null;function $b(a){var b=a.length,c=b*3/4;c%3?c=Math.floor(c):"=.".indexOf(a[b-1])!=-1&&(c="=.".indexOf(a[b-2])!=-1?c-2:c-1);var d=new Uint8Array(c),e=0;ac(a,function(g){d[e++]=g;});return e!==c?d.subarray(0,e):d}
|
|
4132
|
+
function ac(a,b){function c(k){for(;d<a.length;){var l=a.charAt(d++),m=V[l];if(m!=null)return m;if(!/^[\s\xa0]*$/.test(l))throw Error("Unknown base64 encoding at char: "+l);}return k}bc();for(var d=0;;){var e=c(-1),g=c(0),f=c(64),h=c(64);if(h===64&&e===-1)break;b(e<<2|g>>4);f!=64&&(b(g<<4&240|f>>2),h!=64&&b(f<<6&192|h));}}
|
|
4133
|
+
function bc(){if(!V){V={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;c<5;c++){var d=a.concat(b[c].split(""));Zb[c]=d;for(var e=0;e<d.length;e++){var g=d[e];V[g]===void 0&&(V[g]=e);}}}}const cc=["content-type","grpc-status","grpc-message"];function W(a,b){if(b.code!=0){var c=new C(b.code,decodeURIComponent(b.message||""),b.metadata);for(let d=0;d<a.j.length;d++)a.j[d](c);}b={code:b.code,details:decodeURIComponent(b.message||""),metadata:b.metadata};for(c=0;c<a.m.length;c++)a.m[c](b);}function dc(a,b){for(let c=0;c<a.l.length;c++)a.l[c](b);}function ec(a){for(let b=0;b<a.i.length;b++)a.i[b]();}function X(a,b){b=a.indexOf(b);b>-1&&a.splice(b,1);}
|
|
4134
|
+
class Y{constructor(a){this.g=a.$;this.v=null;this.h=[];this.m=[];this.l=[];this.j=[];this.i=[];this.u=false;this.o=0;this.A=new wa;const b=this;cb(this.g,"readystatechange",function(){var c=b.g;if(c=c.g?c.g.getResponseHeader("Content-Type"):null){c=c.toLowerCase();if(c.lastIndexOf("application/grpc-web-text",0)==0){c=b.g;try{var d=c.g?c.g.responseText:"";}catch(h){Q(c.h,"Can not get responseText: "+h.message),d="";}c=d||"";d=c.length-c.length%4;c=c.substr(b.o,d-b.o);if(c.length==0)return;b.o=d;c=$b(c);}else if(c.lastIndexOf("application/grpc",
|
|
4135
|
+
0)==0)c=new Uint8Array(Xb(b.g));else {W(b,new C(2,"Unknown Content-type received."));return}d=null;try{d=pa(b.A,c);}catch(h){W(b,new C(2,"Error in parsing response body"));}if(d)for(c=0;c<d.length;c++){if(qa in d[c]){var e=d[c][qa];if(e){var g=false;let h;try{h=b.v(e),g=!0;}catch(k){W(b,new C(13,`Error when deserializing response data; error: ${k}`+`, response: ${h}`));}if(g){e=b;g=h;for(var f=0;f<e.h.length;f++)e.h[f](g);}}}if(B in d[c]&&d[c][B].length>0){e="";for(g=0;g<d[c][B].length;g++)e+=String.fromCharCode(d[c][B][g]);
|
|
4136
|
+
e=e.trim().split("\r\n");g={};for(f=0;f<e.length;f++){const h=e[f].indexOf(":");g[e[f].substring(0,h).trim()]=e[f].substring(h+1).trim();}e=g;g=0;f="";"grpc-status"in e&&(g=Number(e["grpc-status"]),delete e["grpc-status"]);"grpc-message"in e&&(f=e["grpc-message"],delete e["grpc-message"]);W(b,new C(g,f,e));}}}});cb(this.g,"complete",function(){var c=b.g.m,d=2,e="";const g={};d=Yb(b.g);const f={};for(var h in d)d.hasOwnProperty(h)&&(f[h.toLowerCase()]=d[h]);Object.keys(f).forEach(k=>{cc.includes(k)||
|
|
4137
|
+
(g[k]=f[k]);});dc(b,g);h=-1;if(c!=0){switch(c){case 7:d=10;break;case 8:d=4;break;case 6:h=b.g.getStatus();d=xa(h);break;default:d=14;}d==10&&b.u||(e=ma(c),h!=-1&&(e+=", http status code: "+h),W(b,new C(d,e)));}else c=false,"grpc-status"in f&&(d=Number(f["grpc-status"]),"grpc-message"in f&&(e=f["grpc-message"]),d!=0&&(W(b,new C(d,e||"",f)),c=true)),c||ec(b);});}on(a,b){a=="data"?this.h.push(b):a=="status"?this.m.push(b):a=="metadata"?this.l.push(b):a=="end"?this.i.push(b):a=="error"&&this.j.push(b);return this}removeListener(a,
|
|
4138
|
+
b){a=="data"?X(this.h,b):a=="status"?X(this.m,b):a=="metadata"?X(this.l,b):a=="end"?X(this.i,b):a=="error"&&X(this.j,b);return this}cancel(){this.u=true;this.g.abort();}}Y.prototype.cancel=Y.prototype.cancel;Y.prototype.removeListener=Y.prototype.removeListener;Y.prototype.on=Y.prototype.on;function fc(a){let b="";Ia(a,function(c,d){b+=d;b+=":";b+=c;b+="\r\n";});return b}function hc(a,b){return b.reduce((c,d)=>e=>d.intercept(e,c),a)}
|
|
4139
|
+
function ic(a,b,c){let d=false,e=null,g=false;a.on("data",function(f){d=true;e=f;});a.on("error",function(f){f.code==0||g||(g=true,b(f,null));});a.on("status",function(f){f.code==0||g?c&&b(null,null,f):(g=true,b({code:f.code,message:f.details,metadata:f.metadata},null));});if(c)a.on("metadata",function(f){b(null,null,null,f);});a.on("end",function(){g||(d?c?b(null,e,null,null,true):b(null,e):b({code:2,message:"Incomplete response"}));c&&b(null,null);});}
|
|
4140
|
+
function jc(a,b,c){var d=b.getMethodDescriptor(),e=c+d.getName();c=a.i?a.i:new R;c.O=a.j;const g=new Y({$:c});g.v=d.h;var f=b.getMetadata();for(var h in f)c.headers.set(h,f[h]);a.g=="text"?(c.headers.set("Content-Type","application/grpc-web-text"),c.headers.set("Accept","application/grpc-web-text")):c.headers.set("Content-Type","application/grpc-web+proto");c.headers.set("X-User-Agent","grpc-web-javascript/0.1");c.headers.set("X-Grpc-Web","1");c.headers.has("deadline")&&(h=Number(c.headers.get("deadline")),
|
|
4141
|
+
h=Math.ceil(h-(new Date).getTime()),c.headers.delete("deadline"),h===Infinity&&(h=0),h>0&&(c.headers.set("grpc-timeout",h+"m"),c.u=Math.max(0,Math.max(1E3,Math.ceil(h*1.1)))));if(a.l){h=c.headers;f={};for(k of h.keys())f[k]=h.get(k);var k=f;c.headers.clear();b:{for(l in k){var l=false;break b}l=true;}if(!l)if(k=fc(k),typeof e==="string"){if(l=encodeURIComponent("$httpHeaders"),k=k!=null?"="+encodeURIComponent(String(k)):"",l+=k)k=e.indexOf("#"),k<0&&(k=e.length),h=e.indexOf("?"),h<0||h>k?(h=k,f=""):f=e.substring(h+
|
|
4142
|
+
1,k),e=[e.slice(0,h),f,e.slice(k)],k=e[1],e[1]=l?k?k+"&"+l:l:k,e=e[0]+(e[1]?"?"+e[1]:"")+e[2];}else e.g("$httpHeaders",k);}b=(0, d.g)(b.getRequestMessage());d=b.length;l=[0,0,0,0];k=new Uint8Array(5+d);for(h=3;h>=0;h--)l[h]=d%256,d>>>=8;k.set(new Uint8Array(l),1);k.set(b,5);b=k;if(a.g=="text"){a=b;var m;m===void 0&&(m=0);bc();m=Zb[m];b=Array(Math.floor(a.length/3));d=m[64]||"";for(l=k=0;k<a.length-2;k+=3){var z=a[k],A=a[k+1];f=a[k+2];h=m[z>>2];z=m[(z&3)<<4|A>>4];A=m[(A&15)<<2|f>>6];f=m[f&63];b[l++]=
|
|
4143
|
+
h+z+A+f;}h=0;f=d;switch(a.length-k){case 2:h=a[k+1],f=m[(h&15)<<2]||d;case 1:a=a[k],b[l]=m[a>>2]+m[(a&3)<<4|h>>4]+f+d;}b=b.join("");}else a.g=="binary"&&(c.B="arraybuffer");Rb(c,e,b);return g}
|
|
4144
|
+
function kc(a,b,c,d,e,g={}){const f=b.substr(0,b.length-e.name.length),h=g&&g.signal;return hc(k=>new Promise((l,m)=>{if(h&&h.aborted){const v=new C(1,"Aborted");v.cause=h.reason;m(v);}else {var z=jc(a,k,f),A,ib,jb;ic(z,(v,lc,kb,lb,mc)=>{v?m(v):mc?jb=lc:kb?ib=kb:lb?A=lb:l(ja(k.getMethodDescriptor(),jb,A,ib));},true);h&&h.addEventListener("abort",()=>{z.cancel();const v=new C(1,"Aborted");v.cause=h.reason;m(v);});}}),a.m).call(a,ia(e,c,d)).then(k=>k.getResponseMessage())}
|
|
4145
|
+
class Z{constructor(a={},b){this.g=a.format||r("format",a)||"text";this.l=a.ca||r("suppressCorsPreflight",a)||false;this.j=a.withCredentials||r("withCredentials",a)||false;this.h=a.ba||r("streamInterceptors",a)||[];this.m=a.da||r("unaryInterceptors",a)||[];this.i=b||null;}Y(a,b,c,d,e){const g=a.substr(0,a.length-d.name.length);a=hc(f=>jc(this,f,g),this.h).call(this,ia(d,b,c));ic(a,e,false);return new la(a)}unaryCall(a,b,c,d,e={}){return kc(this,a,b,c,d,e)}Z(a,b,c,d){const e=a.substr(0,a.length-d.name.length);
|
|
4146
|
+
return hc(g=>jc(this,g,e),this.h).call(this,ia(d,b,c))}}Z.prototype.serverStreaming=Z.prototype.Z;Z.prototype.unaryCall=Z.prototype.unaryCall;Z.prototype.rpcCall=Z.prototype.Y;grpcWeb.CallOptions=ea;grpcWeb.MethodDescriptor=ka;grpcWeb.GrpcWebClientBase=Z;grpcWeb.RpcError=C;grpcWeb.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15};grpcWeb.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"};
|
|
4147
|
+
rb=typeof globalThis!=="undefined"&&globalThis||self;
|
|
4148
|
+
return grpcWeb;
|
|
4149
|
+
}
|
|
4150
|
+
|
|
4151
|
+
var grpcWebExports = requireGrpcWeb();
|
|
4152
|
+
|
|
4090
4153
|
/**
|
|
4091
4154
|
* @fileoverview gRPC-Web generated client stub for gateway.parallax.v1
|
|
4092
4155
|
* @enhanceable
|
|
@@ -4233,6 +4296,7 @@
|
|
|
4233
4296
|
}
|
|
4234
4297
|
}
|
|
4235
4298
|
|
|
4299
|
+
// Parallax SDK Web Client
|
|
4236
4300
|
const GRPC_GATEWAY_API_URL = "https://gateway-parallax-dev.platform.svc.cluster.local:50053";
|
|
4237
4301
|
const debugIssue = (trace, error) => {
|
|
4238
4302
|
// Handle our own debugging / logging here
|
|
@@ -4266,6 +4330,131 @@
|
|
|
4266
4330
|
// Initialize the gRPC-Web client
|
|
4267
4331
|
this.client = new ParallaxGatewayServiceClient(this.apiUrl, credentials);
|
|
4268
4332
|
}
|
|
4333
|
+
/**
|
|
4334
|
+
* Gather client metadata for traces/spans
|
|
4335
|
+
* Returns a metadata object with client environment details
|
|
4336
|
+
* This includes browser, OS, screen size, IP address, and more
|
|
4337
|
+
* @returns metadata
|
|
4338
|
+
*/
|
|
4339
|
+
async getClientMetadata() {
|
|
4340
|
+
const metadata = {};
|
|
4341
|
+
// Browser info
|
|
4342
|
+
metadata.userAgent = navigator.userAgent;
|
|
4343
|
+
metadata.platform = navigator.platform;
|
|
4344
|
+
metadata.language = navigator.language;
|
|
4345
|
+
// Screen info
|
|
4346
|
+
metadata.screenWidth = window.screen.width.toString();
|
|
4347
|
+
metadata.screenHeight = window.screen.height.toString();
|
|
4348
|
+
metadata.viewportWidth = window.innerWidth.toString();
|
|
4349
|
+
metadata.viewportHeight = window.innerHeight.toString();
|
|
4350
|
+
// Try to get IP address (non-blocking)
|
|
4351
|
+
// Note: This may be blocked by Content Security Policy (CSP)
|
|
4352
|
+
// If blocked, the backend should capture IP from request headers instead
|
|
4353
|
+
try {
|
|
4354
|
+
// Use ipify API (simple and fast JSON response)
|
|
4355
|
+
const ipResponse = await fetch('https://api.ipify.org?format=json');
|
|
4356
|
+
if (ipResponse && ipResponse.ok) {
|
|
4357
|
+
const data = await ipResponse.json();
|
|
4358
|
+
if (data && data.ip) {
|
|
4359
|
+
metadata.ip = data.ip;
|
|
4360
|
+
}
|
|
4361
|
+
else {
|
|
4362
|
+
metadata.ip = 'client_unavailable';
|
|
4363
|
+
}
|
|
4364
|
+
}
|
|
4365
|
+
else {
|
|
4366
|
+
metadata.ip = 'client_unavailable';
|
|
4367
|
+
}
|
|
4368
|
+
}
|
|
4369
|
+
catch (error) {
|
|
4370
|
+
// IP lookup failed (CSP block, timeout, or network error)
|
|
4371
|
+
// This is expected if CSP blocks external requests
|
|
4372
|
+
// Backend should capture IP from request headers instead
|
|
4373
|
+
if (error instanceof Error && error.message.includes('Content Security Policy')) {
|
|
4374
|
+
console.debug('IP fetch blocked by CSP - backend will capture from headers');
|
|
4375
|
+
}
|
|
4376
|
+
else {
|
|
4377
|
+
console.debug('Could not fetch IP address');
|
|
4378
|
+
}
|
|
4379
|
+
metadata.ip = 'client_unavailable';
|
|
4380
|
+
}
|
|
4381
|
+
// Browser details (parse from user agent)
|
|
4382
|
+
const ua = navigator.userAgent;
|
|
4383
|
+
if (ua.includes('Chrome')) {
|
|
4384
|
+
metadata.browser = 'Chrome';
|
|
4385
|
+
}
|
|
4386
|
+
else if (ua.includes('Firefox')) {
|
|
4387
|
+
metadata.browser = 'Firefox';
|
|
4388
|
+
}
|
|
4389
|
+
else if (ua.includes('Safari')) {
|
|
4390
|
+
metadata.browser = 'Safari';
|
|
4391
|
+
}
|
|
4392
|
+
else if (ua.includes('Edge')) {
|
|
4393
|
+
metadata.browser = 'Edge';
|
|
4394
|
+
}
|
|
4395
|
+
else {
|
|
4396
|
+
metadata.browser = 'Unknown';
|
|
4397
|
+
}
|
|
4398
|
+
// OS detection
|
|
4399
|
+
if (ua.includes('Windows')) {
|
|
4400
|
+
metadata.os = 'Windows';
|
|
4401
|
+
}
|
|
4402
|
+
else if (ua.includes('Mac')) {
|
|
4403
|
+
metadata.os = 'macOS';
|
|
4404
|
+
}
|
|
4405
|
+
else if (ua.includes('Linux')) {
|
|
4406
|
+
metadata.os = 'Linux';
|
|
4407
|
+
}
|
|
4408
|
+
else if (ua.includes('Android')) {
|
|
4409
|
+
metadata.os = 'Android';
|
|
4410
|
+
}
|
|
4411
|
+
else if (ua.includes('iOS')) {
|
|
4412
|
+
metadata.os = 'iOS';
|
|
4413
|
+
}
|
|
4414
|
+
else {
|
|
4415
|
+
metadata.os = 'Unknown';
|
|
4416
|
+
}
|
|
4417
|
+
// Timezone
|
|
4418
|
+
metadata.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
4419
|
+
metadata.timezoneOffset = new Date().getTimezoneOffset().toString();
|
|
4420
|
+
// Page info
|
|
4421
|
+
metadata.url = window.location.href;
|
|
4422
|
+
metadata.referrer = document.referrer || 'direct';
|
|
4423
|
+
return metadata;
|
|
4424
|
+
}
|
|
4425
|
+
/**
|
|
4426
|
+
* Creates a CreateTraceRequest with optional attributes and client metadata
|
|
4427
|
+
* @param name name of the trace
|
|
4428
|
+
* @param tags optional tags for trace
|
|
4429
|
+
* @param attr optional attributes for trace
|
|
4430
|
+
* @param includeClientMeta optional flag to include client metadata (ip, browser, os, etc)
|
|
4431
|
+
* @returns a CreateTraceRequest object to be used for the createTrace request
|
|
4432
|
+
*/
|
|
4433
|
+
async createTraceRequest({ name, tags, attr, includeClientMeta = false }) {
|
|
4434
|
+
const createTraceReq = new parallax_gateway_pbExports.CreateTraceRequest();
|
|
4435
|
+
createTraceReq.setName(name);
|
|
4436
|
+
if (tags) {
|
|
4437
|
+
createTraceReq.setTagsList(tags);
|
|
4438
|
+
}
|
|
4439
|
+
const traceAttrs = createTraceReq.getAttributesMap();
|
|
4440
|
+
if (attr) {
|
|
4441
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4442
|
+
if (key.includes('client.')) {
|
|
4443
|
+
console.warn(`Attribute key "${key}" is reserved for client metadata. It will be prefixed with "custom."`);
|
|
4444
|
+
}
|
|
4445
|
+
else {
|
|
4446
|
+
traceAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4447
|
+
}
|
|
4448
|
+
});
|
|
4449
|
+
}
|
|
4450
|
+
if (includeClientMeta) {
|
|
4451
|
+
const clientMetadata = await this.getClientMetadata();
|
|
4452
|
+
Object.entries(clientMetadata).forEach(([key, value]) => {
|
|
4453
|
+
traceAttrs.set(`client.${key}`, value);
|
|
4454
|
+
});
|
|
4455
|
+
}
|
|
4456
|
+
return createTraceReq;
|
|
4457
|
+
}
|
|
4269
4458
|
/**
|
|
4270
4459
|
* Create a new trace
|
|
4271
4460
|
* @param params Parameters to create a new trace
|
|
@@ -4280,6 +4469,46 @@
|
|
|
4280
4469
|
throw _error;
|
|
4281
4470
|
}
|
|
4282
4471
|
}
|
|
4472
|
+
/**
|
|
4473
|
+
* Create a StartSpanRequest with optional attributes and client metadata
|
|
4474
|
+
* @param traceId trace id to associate the span with
|
|
4475
|
+
* @param name name of the span
|
|
4476
|
+
* @param parentSpanId (optional) create a span off a parent span id
|
|
4477
|
+
* @param attr (optional) attributes to add to the span
|
|
4478
|
+
* @param includeClientMeta (optional) flag to include client metadata (ip, browser, os, etc)
|
|
4479
|
+
* @returns
|
|
4480
|
+
*/
|
|
4481
|
+
async createStartSpanRequest({ traceId, name, parentSpanId, attr, includeClientMeta = false }) {
|
|
4482
|
+
const startSpanReq = new parallax_gateway_pbExports.StartSpanRequest();
|
|
4483
|
+
startSpanReq.setTraceId(traceId);
|
|
4484
|
+
startSpanReq.setName(name);
|
|
4485
|
+
if (parentSpanId) {
|
|
4486
|
+
startSpanReq.setParentSpanId(parentSpanId);
|
|
4487
|
+
}
|
|
4488
|
+
const spanAttrs = startSpanReq.getAttributesMap();
|
|
4489
|
+
if (attr) {
|
|
4490
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4491
|
+
if (key.includes('client.')) {
|
|
4492
|
+
console.warn(`Attribute key "${key}" is reserved for client metadata. It will be prefixed with "custom."`);
|
|
4493
|
+
}
|
|
4494
|
+
else {
|
|
4495
|
+
spanAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4496
|
+
}
|
|
4497
|
+
});
|
|
4498
|
+
}
|
|
4499
|
+
try {
|
|
4500
|
+
if (includeClientMeta) {
|
|
4501
|
+
const clientMetadata = await this.getClientMetadata();
|
|
4502
|
+
Object.entries(clientMetadata).forEach(([key, value]) => {
|
|
4503
|
+
spanAttrs.set(`client.${key}`, value);
|
|
4504
|
+
});
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
catch (error) {
|
|
4508
|
+
console.error('Error gathering client metadata for span:', error);
|
|
4509
|
+
}
|
|
4510
|
+
return startSpanReq;
|
|
4511
|
+
}
|
|
4283
4512
|
/**
|
|
4284
4513
|
* Start a new span within a trace
|
|
4285
4514
|
* @param params Parameters to start a new span
|
|
@@ -4293,6 +4522,25 @@
|
|
|
4293
4522
|
throw _error;
|
|
4294
4523
|
}
|
|
4295
4524
|
}
|
|
4525
|
+
/**
|
|
4526
|
+
* Create a FinishSpanRequest
|
|
4527
|
+
* @param params Parameters to finish a span - traceId, spanId, status (optional) (success, errorMessage)
|
|
4528
|
+
* @returns FinishSpanRequest
|
|
4529
|
+
*/
|
|
4530
|
+
createFinishSpanRequest({ traceId, spanId, status }) {
|
|
4531
|
+
const request = new parallax_gateway_pbExports.FinishSpanRequest();
|
|
4532
|
+
request.setTraceId(traceId);
|
|
4533
|
+
request.setSpanId(spanId);
|
|
4534
|
+
if (status !== undefined) {
|
|
4535
|
+
const spanStatus = new parallax_gateway_pbExports.FinishSpanRequest.SpanStatus();
|
|
4536
|
+
spanStatus.setCode(status.success ? parallax_gateway_pbExports.FinishSpanRequest.SpanStatus.StatusCode.STATUS_CODE_OK : parallax_gateway_pbExports.FinishSpanRequest.SpanStatus.StatusCode.STATUS_CODE_ERROR);
|
|
4537
|
+
if (status.errorMessage) {
|
|
4538
|
+
spanStatus.setMessage(status.errorMessage);
|
|
4539
|
+
}
|
|
4540
|
+
request.setStatus(spanStatus);
|
|
4541
|
+
}
|
|
4542
|
+
return request;
|
|
4543
|
+
}
|
|
4296
4544
|
/**
|
|
4297
4545
|
* Finish a span within a trace
|
|
4298
4546
|
* @param params Parameters to finish a span
|
|
@@ -4306,6 +4554,25 @@
|
|
|
4306
4554
|
throw _error;
|
|
4307
4555
|
}
|
|
4308
4556
|
}
|
|
4557
|
+
/**
|
|
4558
|
+
* Creates the add span event request
|
|
4559
|
+
* @param params - Parameters to create an AddSpanEventRequest - traceId, spanId, eventName, attr (optional)
|
|
4560
|
+
* @returns AddSpanEventRequest
|
|
4561
|
+
*/
|
|
4562
|
+
createAddSpanEventRequest({ traceId, spanId, eventName, attr }) {
|
|
4563
|
+
const request = new parallax_gateway_pbExports.AddSpanEventRequest();
|
|
4564
|
+
request.setTraceId(traceId);
|
|
4565
|
+
request.setSpanId(spanId);
|
|
4566
|
+
request.setEventName(eventName);
|
|
4567
|
+
const eventAttrs = request.getAttributesMap();
|
|
4568
|
+
if (attr) {
|
|
4569
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4570
|
+
eventAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4571
|
+
});
|
|
4572
|
+
}
|
|
4573
|
+
eventAttrs.set('timestamp', new Date().toISOString());
|
|
4574
|
+
return request;
|
|
4575
|
+
}
|
|
4309
4576
|
/**
|
|
4310
4577
|
* Add an event to a span
|
|
4311
4578
|
* @param params Parameters to add an event to a span
|
|
@@ -4319,6 +4586,24 @@
|
|
|
4319
4586
|
throw _error;
|
|
4320
4587
|
}
|
|
4321
4588
|
}
|
|
4589
|
+
/**
|
|
4590
|
+
* Creates the add span error request
|
|
4591
|
+
* @param params - params used to generate the error request ( traceid, span id, error message, error type, stack trace)
|
|
4592
|
+
* @returns AddSpanErrorRequest
|
|
4593
|
+
*/
|
|
4594
|
+
createAddSpanErrorRequest({ traceId, spanId, errorMessage, errorType, stackTrace }) {
|
|
4595
|
+
const request = new parallax_gateway_pbExports.AddSpanErrorRequest();
|
|
4596
|
+
request.setTraceId(traceId);
|
|
4597
|
+
request.setSpanId(spanId);
|
|
4598
|
+
request.setMessage(errorMessage);
|
|
4599
|
+
if (errorType) {
|
|
4600
|
+
request.setErrorType(errorType);
|
|
4601
|
+
}
|
|
4602
|
+
if (stackTrace) {
|
|
4603
|
+
request.setStackTrace(stackTrace);
|
|
4604
|
+
}
|
|
4605
|
+
return request;
|
|
4606
|
+
}
|
|
4322
4607
|
/**
|
|
4323
4608
|
* Add an error to a span
|
|
4324
4609
|
* @param params Parameters to add an error to a span
|
|
@@ -4332,6 +4617,23 @@
|
|
|
4332
4617
|
throw _error;
|
|
4333
4618
|
}
|
|
4334
4619
|
}
|
|
4620
|
+
/**
|
|
4621
|
+
* Creates the add span hint request
|
|
4622
|
+
* @param params - params used to generate the span hint (trace id, parentSpanId, txHash and chainId)
|
|
4623
|
+
* @returns AddSpanHintRequest
|
|
4624
|
+
*/
|
|
4625
|
+
createAddSpanHintRequest({ traceId, parentSpanId, txHash, chainId }) {
|
|
4626
|
+
const hintReq = new parallax_gateway_pbExports.AddSpanHintRequest();
|
|
4627
|
+
hintReq.setTraceId(traceId);
|
|
4628
|
+
hintReq.setParentSpanId(parentSpanId);
|
|
4629
|
+
if (txHash && chainId !== undefined) {
|
|
4630
|
+
const chainTxReq = new parallax_gateway_pbExports.AddSpanHintRequest.ChainTransaction();
|
|
4631
|
+
chainTxReq.setTxHash(txHash);
|
|
4632
|
+
chainTxReq.setChainId(chainId);
|
|
4633
|
+
hintReq.setChainTransaction(chainTxReq);
|
|
4634
|
+
}
|
|
4635
|
+
return hintReq;
|
|
4636
|
+
}
|
|
4335
4637
|
/**
|
|
4336
4638
|
* Add a hint to a span
|
|
4337
4639
|
* @param params Parameters to add a hint to a span
|
|
@@ -4454,6 +4756,339 @@
|
|
|
4454
4756
|
}
|
|
4455
4757
|
}
|
|
4456
4758
|
|
|
4759
|
+
/**
|
|
4760
|
+
* Parallax Service - Transaction Tracing for Web Applications
|
|
4761
|
+
* Creates individual traces for each transaction and tracks them through their lifecycle
|
|
4762
|
+
*
|
|
4763
|
+
* This service provides a simplified interface for tracking transactions with automatic
|
|
4764
|
+
* client metadata collection and lifecycle management.
|
|
4765
|
+
*/
|
|
4766
|
+
class ParallaxService {
|
|
4767
|
+
constructor() {
|
|
4768
|
+
Object.defineProperty(this, "client", {
|
|
4769
|
+
enumerable: true,
|
|
4770
|
+
configurable: true,
|
|
4771
|
+
writable: true,
|
|
4772
|
+
value: null
|
|
4773
|
+
});
|
|
4774
|
+
Object.defineProperty(this, "activeTransactions", {
|
|
4775
|
+
enumerable: true,
|
|
4776
|
+
configurable: true,
|
|
4777
|
+
writable: true,
|
|
4778
|
+
value: new Map()
|
|
4779
|
+
});
|
|
4780
|
+
// Client will be initialized lazily
|
|
4781
|
+
}
|
|
4782
|
+
/**
|
|
4783
|
+
* Initialize the Parallax client (lazy initialization)
|
|
4784
|
+
* @param apiKey - Optional API key for authentication
|
|
4785
|
+
* @param gatewayUrl - Optional custom gateway URL
|
|
4786
|
+
*/
|
|
4787
|
+
_ensureClient(apiKey, gatewayUrl) {
|
|
4788
|
+
if (this.client)
|
|
4789
|
+
return;
|
|
4790
|
+
// Determine gateway URL based on environment if not provided
|
|
4791
|
+
let url = gatewayUrl;
|
|
4792
|
+
if (!url && typeof window !== 'undefined') {
|
|
4793
|
+
const isDevelopment = window.location.hostname === 'localhost' ||
|
|
4794
|
+
window.location.hostname === '127.0.0.1';
|
|
4795
|
+
url = isDevelopment
|
|
4796
|
+
? `${window.location.protocol}//${window.location.host}/parallax-gateway`
|
|
4797
|
+
: 'https://gateway-parallax-dev.mirador.org';
|
|
4798
|
+
}
|
|
4799
|
+
this.client = new ParallaxClient(apiKey || '', url);
|
|
4800
|
+
console.log('[ParallaxService] Client initialized with URL:', url);
|
|
4801
|
+
}
|
|
4802
|
+
/**
|
|
4803
|
+
* Start a new transaction trace
|
|
4804
|
+
* Called when user initiates a transaction
|
|
4805
|
+
*
|
|
4806
|
+
* Note: Since createTrace now automatically creates a root span, we don't need
|
|
4807
|
+
* to call startSpan separately. The rootSpanId from the response is the parent span.
|
|
4808
|
+
*
|
|
4809
|
+
* @param txData - Transaction data
|
|
4810
|
+
* @param name - Name for the trace (e.g., 'SendingTrace', 'SwappingTrace')
|
|
4811
|
+
* @param options - Optional configuration (apiKey, gatewayUrl, includeClientMeta)
|
|
4812
|
+
* @returns Promise with traceId, rootSpanId, and txId
|
|
4813
|
+
*/
|
|
4814
|
+
async startTransactionTrace(txData, name = 'WalletTransaction', options) {
|
|
4815
|
+
this._ensureClient(options?.apiKey, options?.gatewayUrl);
|
|
4816
|
+
if (!this.client) {
|
|
4817
|
+
throw new Error('Failed to initialize Parallax client');
|
|
4818
|
+
}
|
|
4819
|
+
try {
|
|
4820
|
+
const txId = `tx_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
4821
|
+
const timestamp = new Date().toISOString();
|
|
4822
|
+
// Create trace attributes
|
|
4823
|
+
const traceAttributes = {
|
|
4824
|
+
transactionId: txId,
|
|
4825
|
+
walletAddress: txData.walletAddress || txData.from,
|
|
4826
|
+
network: txData.network || 'Unknown',
|
|
4827
|
+
transactionStart: timestamp,
|
|
4828
|
+
from: txData.from,
|
|
4829
|
+
to: txData.to,
|
|
4830
|
+
value: txData.value,
|
|
4831
|
+
};
|
|
4832
|
+
// Add any additional transaction data
|
|
4833
|
+
if (txData.additionalData) {
|
|
4834
|
+
Object.entries(txData.additionalData).forEach(([key, value]) => {
|
|
4835
|
+
traceAttributes[key] = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
4836
|
+
});
|
|
4837
|
+
}
|
|
4838
|
+
// Create a trace for this transaction
|
|
4839
|
+
const createTraceReq = await this.client.createTraceRequest({
|
|
4840
|
+
name: name,
|
|
4841
|
+
attr: traceAttributes,
|
|
4842
|
+
tags: ['transaction', 'wallet', txData.network || 'unknown'],
|
|
4843
|
+
includeClientMeta: options?.includeClientMeta ?? true,
|
|
4844
|
+
});
|
|
4845
|
+
const traceResponse = await this.client.createTrace(createTraceReq);
|
|
4846
|
+
const traceId = traceResponse.getTraceId();
|
|
4847
|
+
const rootSpanId = traceResponse.getRootSpanId();
|
|
4848
|
+
// Store transaction info
|
|
4849
|
+
this.activeTransactions.set(txId, {
|
|
4850
|
+
traceId,
|
|
4851
|
+
rootSpanId,
|
|
4852
|
+
spanId: rootSpanId, // Use rootSpanId as the main span for this transaction
|
|
4853
|
+
timestamp,
|
|
4854
|
+
txHash: null,
|
|
4855
|
+
from: txData.from,
|
|
4856
|
+
to: txData.to,
|
|
4857
|
+
network: txData.network,
|
|
4858
|
+
});
|
|
4859
|
+
console.log('[ParallaxService] Transaction trace started:', {
|
|
4860
|
+
txId,
|
|
4861
|
+
traceId,
|
|
4862
|
+
rootSpanId,
|
|
4863
|
+
from: txData.from,
|
|
4864
|
+
to: txData.to,
|
|
4865
|
+
});
|
|
4866
|
+
// Add initial event to the root span
|
|
4867
|
+
await this.addTransactionEvent(txId, 'transaction_initiated', {
|
|
4868
|
+
from: txData.from,
|
|
4869
|
+
to: txData.to,
|
|
4870
|
+
value: txData.value,
|
|
4871
|
+
timestamp,
|
|
4872
|
+
});
|
|
4873
|
+
return { traceId, rootSpanId, txId };
|
|
4874
|
+
}
|
|
4875
|
+
catch (error) {
|
|
4876
|
+
console.error('[ParallaxService] Failed to start transaction trace:', error);
|
|
4877
|
+
throw error;
|
|
4878
|
+
}
|
|
4879
|
+
}
|
|
4880
|
+
/**
|
|
4881
|
+
* Associate a transaction hash with an existing trace
|
|
4882
|
+
* Called when the transaction hash is available after signing/sending
|
|
4883
|
+
*
|
|
4884
|
+
* @param txId - Transaction identifier returned from startTransactionTrace
|
|
4885
|
+
* @param txHash - Blockchain transaction hash
|
|
4886
|
+
* @param chainId - Chain ID
|
|
4887
|
+
*/
|
|
4888
|
+
async associateTransactionHash(txId, txHash, chainId) {
|
|
4889
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4890
|
+
if (!txInfo) {
|
|
4891
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found in active transactions`);
|
|
4892
|
+
return;
|
|
4893
|
+
}
|
|
4894
|
+
if (!this.client) {
|
|
4895
|
+
console.warn('[ParallaxService] Client not initialized');
|
|
4896
|
+
return;
|
|
4897
|
+
}
|
|
4898
|
+
try {
|
|
4899
|
+
// Update stored tx info
|
|
4900
|
+
txInfo.txHash = txHash;
|
|
4901
|
+
this.activeTransactions.set(txId, txInfo);
|
|
4902
|
+
// Add chain hint to correlate with blockchain events
|
|
4903
|
+
const hintReq = this.client.createAddSpanHintRequest({
|
|
4904
|
+
traceId: txInfo.traceId,
|
|
4905
|
+
parentSpanId: txInfo.rootSpanId,
|
|
4906
|
+
txHash: txHash,
|
|
4907
|
+
chainId: chainId,
|
|
4908
|
+
});
|
|
4909
|
+
await this.client.addSpanHint(hintReq);
|
|
4910
|
+
// Add event for transaction sent
|
|
4911
|
+
await this.addTransactionEvent(txId, 'transaction_hash_available', {
|
|
4912
|
+
txHash,
|
|
4913
|
+
chainId: chainId.toString(),
|
|
4914
|
+
timestamp: new Date().toISOString(),
|
|
4915
|
+
});
|
|
4916
|
+
console.log('[ParallaxService] Transaction hash associated with trace:', {
|
|
4917
|
+
txId,
|
|
4918
|
+
txHash,
|
|
4919
|
+
traceId: txInfo.traceId,
|
|
4920
|
+
});
|
|
4921
|
+
}
|
|
4922
|
+
catch (error) {
|
|
4923
|
+
console.error('[ParallaxService] Failed to associate transaction hash:', error);
|
|
4924
|
+
}
|
|
4925
|
+
}
|
|
4926
|
+
/**
|
|
4927
|
+
* Add an event to a transaction trace
|
|
4928
|
+
*
|
|
4929
|
+
* @param txId - Transaction identifier
|
|
4930
|
+
* @param eventName - Event name
|
|
4931
|
+
* @param attributes - Event attributes
|
|
4932
|
+
*/
|
|
4933
|
+
async addTransactionEvent(txId, eventName, attributes = {}) {
|
|
4934
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4935
|
+
if (!txInfo) {
|
|
4936
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot add event '${eventName}'`);
|
|
4937
|
+
return;
|
|
4938
|
+
}
|
|
4939
|
+
if (!this.client || !txInfo.spanId) {
|
|
4940
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
4941
|
+
return;
|
|
4942
|
+
}
|
|
4943
|
+
try {
|
|
4944
|
+
// Convert attributes to plain object with string values
|
|
4945
|
+
const eventAttributes = {};
|
|
4946
|
+
Object.entries(attributes).forEach(([key, value]) => {
|
|
4947
|
+
eventAttributes[key] = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
4948
|
+
});
|
|
4949
|
+
const request = this.client.createAddSpanEventRequest({
|
|
4950
|
+
traceId: txInfo.traceId,
|
|
4951
|
+
spanId: txInfo.spanId,
|
|
4952
|
+
eventName: eventName,
|
|
4953
|
+
attr: eventAttributes,
|
|
4954
|
+
});
|
|
4955
|
+
await this.client.addSpanEvent(request);
|
|
4956
|
+
}
|
|
4957
|
+
catch (error) {
|
|
4958
|
+
console.error(`[ParallaxService] Failed to add transaction event '${eventName}':`, error);
|
|
4959
|
+
}
|
|
4960
|
+
}
|
|
4961
|
+
/**
|
|
4962
|
+
* Add an error to a transaction trace
|
|
4963
|
+
* Creates a proper span error event in Parallax
|
|
4964
|
+
*
|
|
4965
|
+
* @param txId - Transaction identifier
|
|
4966
|
+
* @param error - Error object or message
|
|
4967
|
+
* @param errorType - Type/category of error (e.g., 'TransactionError', 'NetworkError', 'UserRejection')
|
|
4968
|
+
*/
|
|
4969
|
+
async addTransactionError(txId, error, errorType = 'TransactionError') {
|
|
4970
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4971
|
+
if (!txInfo) {
|
|
4972
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot add error.`);
|
|
4973
|
+
return;
|
|
4974
|
+
}
|
|
4975
|
+
if (!this.client || !txInfo.spanId) {
|
|
4976
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
4977
|
+
return;
|
|
4978
|
+
}
|
|
4979
|
+
try {
|
|
4980
|
+
// Extract error message and stack trace
|
|
4981
|
+
let errorMessage = '';
|
|
4982
|
+
let stackTrace;
|
|
4983
|
+
if (error instanceof Error) {
|
|
4984
|
+
errorMessage = error.message;
|
|
4985
|
+
stackTrace = error.stack;
|
|
4986
|
+
}
|
|
4987
|
+
else {
|
|
4988
|
+
errorMessage = String(error);
|
|
4989
|
+
}
|
|
4990
|
+
const request = this.client.createAddSpanErrorRequest({
|
|
4991
|
+
traceId: txInfo.traceId,
|
|
4992
|
+
spanId: txInfo.spanId,
|
|
4993
|
+
errorMessage: errorMessage,
|
|
4994
|
+
errorType: errorType,
|
|
4995
|
+
stackTrace: stackTrace,
|
|
4996
|
+
});
|
|
4997
|
+
await this.client.addSpanError(request);
|
|
4998
|
+
console.log('[ParallaxService] Transaction error added to trace:', {
|
|
4999
|
+
txId,
|
|
5000
|
+
errorType,
|
|
5001
|
+
message: error instanceof Error ? error.message : String(error),
|
|
5002
|
+
});
|
|
5003
|
+
}
|
|
5004
|
+
catch (err) {
|
|
5005
|
+
console.error('[ParallaxService] Failed to add transaction error:', err);
|
|
5006
|
+
}
|
|
5007
|
+
}
|
|
5008
|
+
/**
|
|
5009
|
+
* Finish a transaction trace
|
|
5010
|
+
* Called when transaction is confirmed or permanently failed
|
|
5011
|
+
*
|
|
5012
|
+
* @param txId - Transaction identifier
|
|
5013
|
+
* @param options - Finish options (success, error message)
|
|
5014
|
+
*/
|
|
5015
|
+
async finishTransactionTrace(txId, options = { success: true }) {
|
|
5016
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
5017
|
+
if (!txInfo) {
|
|
5018
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot finish.`);
|
|
5019
|
+
return;
|
|
5020
|
+
}
|
|
5021
|
+
if (!this.client || !txInfo.spanId) {
|
|
5022
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
5023
|
+
return;
|
|
5024
|
+
}
|
|
5025
|
+
try {
|
|
5026
|
+
// Add final event
|
|
5027
|
+
await this.addTransactionEvent(txId, options.success ? 'transaction_completed' : 'transaction_failed', {
|
|
5028
|
+
success: options.success.toString(),
|
|
5029
|
+
error: options.error || '',
|
|
5030
|
+
duration: (Date.now() - new Date(txInfo.timestamp).getTime()).toString(),
|
|
5031
|
+
timestamp: new Date().toISOString(),
|
|
5032
|
+
});
|
|
5033
|
+
// Finish the span
|
|
5034
|
+
const request = this.client.createFinishSpanRequest({
|
|
5035
|
+
traceId: txInfo.traceId,
|
|
5036
|
+
spanId: txInfo.spanId,
|
|
5037
|
+
status: {
|
|
5038
|
+
success: options.success,
|
|
5039
|
+
errorMessage: options.error || '',
|
|
5040
|
+
},
|
|
5041
|
+
});
|
|
5042
|
+
await this.client.finishSpan(request);
|
|
5043
|
+
console.log('[ParallaxService] Transaction trace finished:', {
|
|
5044
|
+
txId,
|
|
5045
|
+
traceId: txInfo.traceId,
|
|
5046
|
+
success: options.success,
|
|
5047
|
+
txHash: txInfo.txHash,
|
|
5048
|
+
});
|
|
5049
|
+
// Remove from active transactions
|
|
5050
|
+
this.activeTransactions.delete(txId);
|
|
5051
|
+
}
|
|
5052
|
+
catch (error) {
|
|
5053
|
+
console.error('[ParallaxService] Failed to finish transaction trace:', error);
|
|
5054
|
+
}
|
|
5055
|
+
}
|
|
5056
|
+
/**
|
|
5057
|
+
* Get info about an active transaction
|
|
5058
|
+
*
|
|
5059
|
+
* @param txId - Transaction identifier
|
|
5060
|
+
* @returns Transaction info or null if not found
|
|
5061
|
+
*/
|
|
5062
|
+
getTransactionInfo(txId) {
|
|
5063
|
+
return this.activeTransactions.get(txId) || null;
|
|
5064
|
+
}
|
|
5065
|
+
/**
|
|
5066
|
+
* Get all active transactions
|
|
5067
|
+
*
|
|
5068
|
+
* @returns Array of active transaction info
|
|
5069
|
+
*/
|
|
5070
|
+
getAllActiveTransactions() {
|
|
5071
|
+
return Array.from(this.activeTransactions.entries()).map(([txId, info]) => ({
|
|
5072
|
+
txId,
|
|
5073
|
+
...info,
|
|
5074
|
+
}));
|
|
5075
|
+
}
|
|
5076
|
+
/**
|
|
5077
|
+
* Get the ParallaxClient instance for advanced usage
|
|
5078
|
+
* @param apiKey - Optional API key
|
|
5079
|
+
* @param gatewayUrl - Optional gateway URL
|
|
5080
|
+
*/
|
|
5081
|
+
getClient(apiKey, gatewayUrl) {
|
|
5082
|
+
this._ensureClient(apiKey, gatewayUrl);
|
|
5083
|
+
if (!this.client) {
|
|
5084
|
+
throw new Error('Failed to initialize Parallax client');
|
|
5085
|
+
}
|
|
5086
|
+
return this.client;
|
|
5087
|
+
}
|
|
5088
|
+
}
|
|
5089
|
+
// Export singleton instance
|
|
5090
|
+
const parallaxService = new ParallaxService();
|
|
5091
|
+
|
|
4457
5092
|
exports.AddSpanErrorRequest = parallax_gateway_pbExports.AddSpanErrorRequest;
|
|
4458
5093
|
exports.AddSpanErrorResponse = parallax_gateway_pbExports.AddSpanErrorResponse;
|
|
4459
5094
|
exports.AddSpanEventRequest = parallax_gateway_pbExports.AddSpanEventRequest;
|
|
@@ -4466,8 +5101,10 @@
|
|
|
4466
5101
|
exports.FinishSpanResponse = parallax_gateway_pbExports.FinishSpanResponse;
|
|
4467
5102
|
exports.GrpcWebRpc = GrpcWebRpc;
|
|
4468
5103
|
exports.ParallaxClient = ParallaxClient;
|
|
5104
|
+
exports.ParallaxService = ParallaxService;
|
|
4469
5105
|
exports.StartSpanRequest = parallax_gateway_pbExports.StartSpanRequest;
|
|
4470
5106
|
exports.StartSpanResponse = parallax_gateway_pbExports.StartSpanResponse;
|
|
5107
|
+
exports.parallaxService = parallaxService;
|
|
4471
5108
|
|
|
4472
5109
|
}));
|
|
4473
5110
|
//# sourceMappingURL=index.umd.js.map
|