@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.esm.js
CHANGED
|
@@ -2,67 +2,6 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
|
|
5
|
-
var grpcWeb = {};
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
|
|
9
|
-
Copyright The Closure Library Authors.
|
|
10
|
-
SPDX-License-Identifier: Apache-2.0
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
var hasRequiredGrpcWeb;
|
|
14
|
-
|
|
15
|
-
function requireGrpcWeb () {
|
|
16
|
-
if (hasRequiredGrpcWeb) return grpcWeb;
|
|
17
|
-
hasRequiredGrpcWeb = 1;
|
|
18
|
-
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)}
|
|
19
|
-
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)}
|
|
20
|
-
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]);
|
|
21
|
-
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}}
|
|
22
|
-
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";
|
|
23
|
-
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"});
|
|
24
|
-
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||
|
|
25
|
-
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);};
|
|
26
|
-
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--));}}
|
|
27
|
-
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);}
|
|
28
|
-
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.");}}
|
|
29
|
-
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));}
|
|
30
|
-
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}
|
|
31
|
-
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);};
|
|
32
|
-
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;}
|
|
33
|
-
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;}
|
|
34
|
-
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}
|
|
35
|
-
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"];
|
|
36
|
-
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
|
|
37
|
-
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: "+
|
|
38
|
-
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"));}
|
|
39
|
-
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);};
|
|
40
|
-
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,
|
|
41
|
-
-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);}}}
|
|
42
|
-
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}};
|
|
43
|
-
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}}
|
|
44
|
-
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}
|
|
45
|
-
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));}}
|
|
46
|
-
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);}
|
|
47
|
-
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",
|
|
48
|
-
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]);
|
|
49
|
-
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)||
|
|
50
|
-
(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,
|
|
51
|
-
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)}
|
|
52
|
-
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);});}
|
|
53
|
-
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")),
|
|
54
|
-
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+
|
|
55
|
-
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++]=
|
|
56
|
-
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}
|
|
57
|
-
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())}
|
|
58
|
-
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);
|
|
59
|
-
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"};
|
|
60
|
-
rb=typeof globalThis!=="undefined"&&globalThis||self;
|
|
61
|
-
return grpcWeb;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var grpcWebExports = requireGrpcWeb();
|
|
65
|
-
|
|
66
5
|
var parallax_gateway_pb = {};
|
|
67
6
|
|
|
68
7
|
var googleProtobuf = {};
|
|
@@ -1114,7 +1053,8 @@ function requireParallax_gateway_pb () {
|
|
|
1114
1053
|
var f, obj = {
|
|
1115
1054
|
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
|
1116
1055
|
attributesMap: (f = msg.getAttributesMap()) ? f.toObject(includeInstance, undefined) : [],
|
|
1117
|
-
tagsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
|
|
1056
|
+
tagsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
|
|
1057
|
+
startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
|
1118
1058
|
};
|
|
1119
1059
|
|
|
1120
1060
|
if (includeInstance) {
|
|
@@ -1165,6 +1105,11 @@ function requireParallax_gateway_pb () {
|
|
|
1165
1105
|
var value = /** @type {string} */ (reader.readString());
|
|
1166
1106
|
msg.addTags(value);
|
|
1167
1107
|
break;
|
|
1108
|
+
case 4:
|
|
1109
|
+
var value = new google_protobuf_timestamp_pb.Timestamp;
|
|
1110
|
+
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
|
|
1111
|
+
msg.setStartTime(value);
|
|
1112
|
+
break;
|
|
1168
1113
|
default:
|
|
1169
1114
|
reader.skipField();
|
|
1170
1115
|
break;
|
|
@@ -1212,6 +1157,14 @@ function requireParallax_gateway_pb () {
|
|
|
1212
1157
|
f
|
|
1213
1158
|
);
|
|
1214
1159
|
}
|
|
1160
|
+
f = message.getStartTime();
|
|
1161
|
+
if (f != null) {
|
|
1162
|
+
writer.writeMessage(
|
|
1163
|
+
4,
|
|
1164
|
+
f,
|
|
1165
|
+
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
|
|
1166
|
+
);
|
|
1167
|
+
}
|
|
1215
1168
|
};
|
|
1216
1169
|
|
|
1217
1170
|
|
|
@@ -1293,6 +1246,43 @@ function requireParallax_gateway_pb () {
|
|
|
1293
1246
|
};
|
|
1294
1247
|
|
|
1295
1248
|
|
|
1249
|
+
/**
|
|
1250
|
+
* optional google.protobuf.Timestamp start_time = 4;
|
|
1251
|
+
* @return {?proto.google.protobuf.Timestamp}
|
|
1252
|
+
*/
|
|
1253
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.getStartTime = function() {
|
|
1254
|
+
return /** @type{?proto.google.protobuf.Timestamp} */ (
|
|
1255
|
+
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));
|
|
1256
|
+
};
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
/**
|
|
1260
|
+
* @param {?proto.google.protobuf.Timestamp|undefined} value
|
|
1261
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceRequest} returns this
|
|
1262
|
+
*/
|
|
1263
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.setStartTime = function(value) {
|
|
1264
|
+
return jspb.Message.setWrapperField(this, 4, value);
|
|
1265
|
+
};
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
/**
|
|
1269
|
+
* Clears the message field making it undefined.
|
|
1270
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceRequest} returns this
|
|
1271
|
+
*/
|
|
1272
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.clearStartTime = function() {
|
|
1273
|
+
return this.setStartTime(undefined);
|
|
1274
|
+
};
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
/**
|
|
1278
|
+
* Returns whether this field is set.
|
|
1279
|
+
* @return {boolean}
|
|
1280
|
+
*/
|
|
1281
|
+
proto.gateway.parallax.v1.CreateTraceRequest.prototype.hasStartTime = function() {
|
|
1282
|
+
return jspb.Message.getField(this, 4) != null;
|
|
1283
|
+
};
|
|
1284
|
+
|
|
1285
|
+
|
|
1296
1286
|
|
|
1297
1287
|
|
|
1298
1288
|
|
|
@@ -1326,7 +1316,8 @@ function requireParallax_gateway_pb () {
|
|
|
1326
1316
|
proto.gateway.parallax.v1.CreateTraceResponse.toObject = function(includeInstance, msg) {
|
|
1327
1317
|
var f, obj = {
|
|
1328
1318
|
status: (f = msg.getStatus()) && proto_common_v1_status_pb.ResponseStatus.toObject(includeInstance, f),
|
|
1329
|
-
traceId: jspb.Message.getFieldWithDefault(msg, 2, "")
|
|
1319
|
+
traceId: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
|
1320
|
+
rootSpanId: jspb.Message.getFieldWithDefault(msg, 3, "")
|
|
1330
1321
|
};
|
|
1331
1322
|
|
|
1332
1323
|
if (includeInstance) {
|
|
@@ -1372,6 +1363,10 @@ function requireParallax_gateway_pb () {
|
|
|
1372
1363
|
var value = /** @type {string} */ (reader.readString());
|
|
1373
1364
|
msg.setTraceId(value);
|
|
1374
1365
|
break;
|
|
1366
|
+
case 3:
|
|
1367
|
+
var value = /** @type {string} */ (reader.readString());
|
|
1368
|
+
msg.setRootSpanId(value);
|
|
1369
|
+
break;
|
|
1375
1370
|
default:
|
|
1376
1371
|
reader.skipField();
|
|
1377
1372
|
break;
|
|
@@ -1416,6 +1411,13 @@ function requireParallax_gateway_pb () {
|
|
|
1416
1411
|
f
|
|
1417
1412
|
);
|
|
1418
1413
|
}
|
|
1414
|
+
f = message.getRootSpanId();
|
|
1415
|
+
if (f.length > 0) {
|
|
1416
|
+
writer.writeString(
|
|
1417
|
+
3,
|
|
1418
|
+
f
|
|
1419
|
+
);
|
|
1420
|
+
}
|
|
1419
1421
|
};
|
|
1420
1422
|
|
|
1421
1423
|
|
|
@@ -1474,6 +1476,24 @@ function requireParallax_gateway_pb () {
|
|
|
1474
1476
|
};
|
|
1475
1477
|
|
|
1476
1478
|
|
|
1479
|
+
/**
|
|
1480
|
+
* optional string root_span_id = 3;
|
|
1481
|
+
* @return {string}
|
|
1482
|
+
*/
|
|
1483
|
+
proto.gateway.parallax.v1.CreateTraceResponse.prototype.getRootSpanId = function() {
|
|
1484
|
+
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
|
|
1485
|
+
};
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
/**
|
|
1489
|
+
* @param {string} value
|
|
1490
|
+
* @return {!proto.gateway.parallax.v1.CreateTraceResponse} returns this
|
|
1491
|
+
*/
|
|
1492
|
+
proto.gateway.parallax.v1.CreateTraceResponse.prototype.setRootSpanId = function(value) {
|
|
1493
|
+
return jspb.Message.setProto3StringField(this, 3, value);
|
|
1494
|
+
};
|
|
1495
|
+
|
|
1496
|
+
|
|
1477
1497
|
|
|
1478
1498
|
|
|
1479
1499
|
|
|
@@ -1508,7 +1528,7 @@ function requireParallax_gateway_pb () {
|
|
|
1508
1528
|
var f, obj = {
|
|
1509
1529
|
name: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
|
1510
1530
|
traceId: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
|
1511
|
-
parentSpanId:
|
|
1531
|
+
parentSpanId: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
|
1512
1532
|
attributesMap: (f = msg.getAttributesMap()) ? f.toObject(includeInstance, undefined) : [],
|
|
1513
1533
|
startTime: (f = msg.getStartTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
|
1514
1534
|
};
|
|
@@ -1613,8 +1633,8 @@ function requireParallax_gateway_pb () {
|
|
|
1613
1633
|
f
|
|
1614
1634
|
);
|
|
1615
1635
|
}
|
|
1616
|
-
f =
|
|
1617
|
-
if (f
|
|
1636
|
+
f = message.getParentSpanId();
|
|
1637
|
+
if (f.length > 0) {
|
|
1618
1638
|
writer.writeString(
|
|
1619
1639
|
3,
|
|
1620
1640
|
f
|
|
@@ -1685,25 +1705,7 @@ function requireParallax_gateway_pb () {
|
|
|
1685
1705
|
* @return {!proto.gateway.parallax.v1.StartSpanRequest} returns this
|
|
1686
1706
|
*/
|
|
1687
1707
|
proto.gateway.parallax.v1.StartSpanRequest.prototype.setParentSpanId = function(value) {
|
|
1688
|
-
return jspb.Message.
|
|
1689
|
-
};
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
/**
|
|
1693
|
-
* Clears the field making it undefined.
|
|
1694
|
-
* @return {!proto.gateway.parallax.v1.StartSpanRequest} returns this
|
|
1695
|
-
*/
|
|
1696
|
-
proto.gateway.parallax.v1.StartSpanRequest.prototype.clearParentSpanId = function() {
|
|
1697
|
-
return jspb.Message.setField(this, 3, undefined);
|
|
1698
|
-
};
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
/**
|
|
1702
|
-
* Returns whether this field is set.
|
|
1703
|
-
* @return {boolean}
|
|
1704
|
-
*/
|
|
1705
|
-
proto.gateway.parallax.v1.StartSpanRequest.prototype.hasParentSpanId = function() {
|
|
1706
|
-
return jspb.Message.getField(this, 3) != null;
|
|
1708
|
+
return jspb.Message.setProto3StringField(this, 3, value);
|
|
1707
1709
|
};
|
|
1708
1710
|
|
|
1709
1711
|
|
|
@@ -4083,6 +4085,67 @@ function requireParallax_gateway_pb () {
|
|
|
4083
4085
|
|
|
4084
4086
|
var parallax_gateway_pbExports = requireParallax_gateway_pb();
|
|
4085
4087
|
|
|
4088
|
+
var grpcWeb = {};
|
|
4089
|
+
|
|
4090
|
+
/*
|
|
4091
|
+
|
|
4092
|
+
Copyright The Closure Library Authors.
|
|
4093
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4094
|
+
*/
|
|
4095
|
+
|
|
4096
|
+
var hasRequiredGrpcWeb;
|
|
4097
|
+
|
|
4098
|
+
function requireGrpcWeb () {
|
|
4099
|
+
if (hasRequiredGrpcWeb) return grpcWeb;
|
|
4100
|
+
hasRequiredGrpcWeb = 1;
|
|
4101
|
+
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)}
|
|
4102
|
+
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)}
|
|
4103
|
+
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]);
|
|
4104
|
+
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}}
|
|
4105
|
+
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";
|
|
4106
|
+
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"});
|
|
4107
|
+
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||
|
|
4108
|
+
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);};
|
|
4109
|
+
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--));}}
|
|
4110
|
+
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);}
|
|
4111
|
+
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.");}}
|
|
4112
|
+
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));}
|
|
4113
|
+
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}
|
|
4114
|
+
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);};
|
|
4115
|
+
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;}
|
|
4116
|
+
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;}
|
|
4117
|
+
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}
|
|
4118
|
+
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"];
|
|
4119
|
+
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
|
|
4120
|
+
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: "+
|
|
4121
|
+
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"));}
|
|
4122
|
+
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);};
|
|
4123
|
+
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,
|
|
4124
|
+
-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);}}}
|
|
4125
|
+
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}};
|
|
4126
|
+
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}}
|
|
4127
|
+
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}
|
|
4128
|
+
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));}}
|
|
4129
|
+
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);}
|
|
4130
|
+
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",
|
|
4131
|
+
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]);
|
|
4132
|
+
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)||
|
|
4133
|
+
(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,
|
|
4134
|
+
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)}
|
|
4135
|
+
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);});}
|
|
4136
|
+
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")),
|
|
4137
|
+
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+
|
|
4138
|
+
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++]=
|
|
4139
|
+
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}
|
|
4140
|
+
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())}
|
|
4141
|
+
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);
|
|
4142
|
+
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"};
|
|
4143
|
+
rb=typeof globalThis!=="undefined"&&globalThis||self;
|
|
4144
|
+
return grpcWeb;
|
|
4145
|
+
}
|
|
4146
|
+
|
|
4147
|
+
var grpcWebExports = requireGrpcWeb();
|
|
4148
|
+
|
|
4086
4149
|
/**
|
|
4087
4150
|
* @fileoverview gRPC-Web generated client stub for gateway.parallax.v1
|
|
4088
4151
|
* @enhanceable
|
|
@@ -4229,6 +4292,7 @@ class ParallaxGatewayServiceClient {
|
|
|
4229
4292
|
}
|
|
4230
4293
|
}
|
|
4231
4294
|
|
|
4295
|
+
// Parallax SDK Web Client
|
|
4232
4296
|
const GRPC_GATEWAY_API_URL = "https://gateway-parallax-dev.platform.svc.cluster.local:50053";
|
|
4233
4297
|
const debugIssue = (trace, error) => {
|
|
4234
4298
|
// Handle our own debugging / logging here
|
|
@@ -4262,6 +4326,131 @@ class ParallaxClient {
|
|
|
4262
4326
|
// Initialize the gRPC-Web client
|
|
4263
4327
|
this.client = new ParallaxGatewayServiceClient(this.apiUrl, credentials);
|
|
4264
4328
|
}
|
|
4329
|
+
/**
|
|
4330
|
+
* Gather client metadata for traces/spans
|
|
4331
|
+
* Returns a metadata object with client environment details
|
|
4332
|
+
* This includes browser, OS, screen size, IP address, and more
|
|
4333
|
+
* @returns metadata
|
|
4334
|
+
*/
|
|
4335
|
+
async getClientMetadata() {
|
|
4336
|
+
const metadata = {};
|
|
4337
|
+
// Browser info
|
|
4338
|
+
metadata.userAgent = navigator.userAgent;
|
|
4339
|
+
metadata.platform = navigator.platform;
|
|
4340
|
+
metadata.language = navigator.language;
|
|
4341
|
+
// Screen info
|
|
4342
|
+
metadata.screenWidth = window.screen.width.toString();
|
|
4343
|
+
metadata.screenHeight = window.screen.height.toString();
|
|
4344
|
+
metadata.viewportWidth = window.innerWidth.toString();
|
|
4345
|
+
metadata.viewportHeight = window.innerHeight.toString();
|
|
4346
|
+
// Try to get IP address (non-blocking)
|
|
4347
|
+
// Note: This may be blocked by Content Security Policy (CSP)
|
|
4348
|
+
// If blocked, the backend should capture IP from request headers instead
|
|
4349
|
+
try {
|
|
4350
|
+
// Use ipify API (simple and fast JSON response)
|
|
4351
|
+
const ipResponse = await fetch('https://api.ipify.org?format=json');
|
|
4352
|
+
if (ipResponse && ipResponse.ok) {
|
|
4353
|
+
const data = await ipResponse.json();
|
|
4354
|
+
if (data && data.ip) {
|
|
4355
|
+
metadata.ip = data.ip;
|
|
4356
|
+
}
|
|
4357
|
+
else {
|
|
4358
|
+
metadata.ip = 'client_unavailable';
|
|
4359
|
+
}
|
|
4360
|
+
}
|
|
4361
|
+
else {
|
|
4362
|
+
metadata.ip = 'client_unavailable';
|
|
4363
|
+
}
|
|
4364
|
+
}
|
|
4365
|
+
catch (error) {
|
|
4366
|
+
// IP lookup failed (CSP block, timeout, or network error)
|
|
4367
|
+
// This is expected if CSP blocks external requests
|
|
4368
|
+
// Backend should capture IP from request headers instead
|
|
4369
|
+
if (error instanceof Error && error.message.includes('Content Security Policy')) {
|
|
4370
|
+
console.debug('IP fetch blocked by CSP - backend will capture from headers');
|
|
4371
|
+
}
|
|
4372
|
+
else {
|
|
4373
|
+
console.debug('Could not fetch IP address');
|
|
4374
|
+
}
|
|
4375
|
+
metadata.ip = 'client_unavailable';
|
|
4376
|
+
}
|
|
4377
|
+
// Browser details (parse from user agent)
|
|
4378
|
+
const ua = navigator.userAgent;
|
|
4379
|
+
if (ua.includes('Chrome')) {
|
|
4380
|
+
metadata.browser = 'Chrome';
|
|
4381
|
+
}
|
|
4382
|
+
else if (ua.includes('Firefox')) {
|
|
4383
|
+
metadata.browser = 'Firefox';
|
|
4384
|
+
}
|
|
4385
|
+
else if (ua.includes('Safari')) {
|
|
4386
|
+
metadata.browser = 'Safari';
|
|
4387
|
+
}
|
|
4388
|
+
else if (ua.includes('Edge')) {
|
|
4389
|
+
metadata.browser = 'Edge';
|
|
4390
|
+
}
|
|
4391
|
+
else {
|
|
4392
|
+
metadata.browser = 'Unknown';
|
|
4393
|
+
}
|
|
4394
|
+
// OS detection
|
|
4395
|
+
if (ua.includes('Windows')) {
|
|
4396
|
+
metadata.os = 'Windows';
|
|
4397
|
+
}
|
|
4398
|
+
else if (ua.includes('Mac')) {
|
|
4399
|
+
metadata.os = 'macOS';
|
|
4400
|
+
}
|
|
4401
|
+
else if (ua.includes('Linux')) {
|
|
4402
|
+
metadata.os = 'Linux';
|
|
4403
|
+
}
|
|
4404
|
+
else if (ua.includes('Android')) {
|
|
4405
|
+
metadata.os = 'Android';
|
|
4406
|
+
}
|
|
4407
|
+
else if (ua.includes('iOS')) {
|
|
4408
|
+
metadata.os = 'iOS';
|
|
4409
|
+
}
|
|
4410
|
+
else {
|
|
4411
|
+
metadata.os = 'Unknown';
|
|
4412
|
+
}
|
|
4413
|
+
// Timezone
|
|
4414
|
+
metadata.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
4415
|
+
metadata.timezoneOffset = new Date().getTimezoneOffset().toString();
|
|
4416
|
+
// Page info
|
|
4417
|
+
metadata.url = window.location.href;
|
|
4418
|
+
metadata.referrer = document.referrer || 'direct';
|
|
4419
|
+
return metadata;
|
|
4420
|
+
}
|
|
4421
|
+
/**
|
|
4422
|
+
* Creates a CreateTraceRequest with optional attributes and client metadata
|
|
4423
|
+
* @param name name of the trace
|
|
4424
|
+
* @param tags optional tags for trace
|
|
4425
|
+
* @param attr optional attributes for trace
|
|
4426
|
+
* @param includeClientMeta optional flag to include client metadata (ip, browser, os, etc)
|
|
4427
|
+
* @returns a CreateTraceRequest object to be used for the createTrace request
|
|
4428
|
+
*/
|
|
4429
|
+
async createTraceRequest({ name, tags, attr, includeClientMeta = false }) {
|
|
4430
|
+
const createTraceReq = new parallax_gateway_pbExports.CreateTraceRequest();
|
|
4431
|
+
createTraceReq.setName(name);
|
|
4432
|
+
if (tags) {
|
|
4433
|
+
createTraceReq.setTagsList(tags);
|
|
4434
|
+
}
|
|
4435
|
+
const traceAttrs = createTraceReq.getAttributesMap();
|
|
4436
|
+
if (attr) {
|
|
4437
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4438
|
+
if (key.includes('client.')) {
|
|
4439
|
+
console.warn(`Attribute key "${key}" is reserved for client metadata. It will be prefixed with "custom."`);
|
|
4440
|
+
}
|
|
4441
|
+
else {
|
|
4442
|
+
traceAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4443
|
+
}
|
|
4444
|
+
});
|
|
4445
|
+
}
|
|
4446
|
+
if (includeClientMeta) {
|
|
4447
|
+
const clientMetadata = await this.getClientMetadata();
|
|
4448
|
+
Object.entries(clientMetadata).forEach(([key, value]) => {
|
|
4449
|
+
traceAttrs.set(`client.${key}`, value);
|
|
4450
|
+
});
|
|
4451
|
+
}
|
|
4452
|
+
return createTraceReq;
|
|
4453
|
+
}
|
|
4265
4454
|
/**
|
|
4266
4455
|
* Create a new trace
|
|
4267
4456
|
* @param params Parameters to create a new trace
|
|
@@ -4276,6 +4465,46 @@ class ParallaxClient {
|
|
|
4276
4465
|
throw _error;
|
|
4277
4466
|
}
|
|
4278
4467
|
}
|
|
4468
|
+
/**
|
|
4469
|
+
* Create a StartSpanRequest with optional attributes and client metadata
|
|
4470
|
+
* @param traceId trace id to associate the span with
|
|
4471
|
+
* @param name name of the span
|
|
4472
|
+
* @param parentSpanId (optional) create a span off a parent span id
|
|
4473
|
+
* @param attr (optional) attributes to add to the span
|
|
4474
|
+
* @param includeClientMeta (optional) flag to include client metadata (ip, browser, os, etc)
|
|
4475
|
+
* @returns
|
|
4476
|
+
*/
|
|
4477
|
+
async createStartSpanRequest({ traceId, name, parentSpanId, attr, includeClientMeta = false }) {
|
|
4478
|
+
const startSpanReq = new parallax_gateway_pbExports.StartSpanRequest();
|
|
4479
|
+
startSpanReq.setTraceId(traceId);
|
|
4480
|
+
startSpanReq.setName(name);
|
|
4481
|
+
if (parentSpanId) {
|
|
4482
|
+
startSpanReq.setParentSpanId(parentSpanId);
|
|
4483
|
+
}
|
|
4484
|
+
const spanAttrs = startSpanReq.getAttributesMap();
|
|
4485
|
+
if (attr) {
|
|
4486
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4487
|
+
if (key.includes('client.')) {
|
|
4488
|
+
console.warn(`Attribute key "${key}" is reserved for client metadata. It will be prefixed with "custom."`);
|
|
4489
|
+
}
|
|
4490
|
+
else {
|
|
4491
|
+
spanAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4492
|
+
}
|
|
4493
|
+
});
|
|
4494
|
+
}
|
|
4495
|
+
try {
|
|
4496
|
+
if (includeClientMeta) {
|
|
4497
|
+
const clientMetadata = await this.getClientMetadata();
|
|
4498
|
+
Object.entries(clientMetadata).forEach(([key, value]) => {
|
|
4499
|
+
spanAttrs.set(`client.${key}`, value);
|
|
4500
|
+
});
|
|
4501
|
+
}
|
|
4502
|
+
}
|
|
4503
|
+
catch (error) {
|
|
4504
|
+
console.error('Error gathering client metadata for span:', error);
|
|
4505
|
+
}
|
|
4506
|
+
return startSpanReq;
|
|
4507
|
+
}
|
|
4279
4508
|
/**
|
|
4280
4509
|
* Start a new span within a trace
|
|
4281
4510
|
* @param params Parameters to start a new span
|
|
@@ -4289,6 +4518,25 @@ class ParallaxClient {
|
|
|
4289
4518
|
throw _error;
|
|
4290
4519
|
}
|
|
4291
4520
|
}
|
|
4521
|
+
/**
|
|
4522
|
+
* Create a FinishSpanRequest
|
|
4523
|
+
* @param params Parameters to finish a span - traceId, spanId, status (optional) (success, errorMessage)
|
|
4524
|
+
* @returns FinishSpanRequest
|
|
4525
|
+
*/
|
|
4526
|
+
createFinishSpanRequest({ traceId, spanId, status }) {
|
|
4527
|
+
const request = new parallax_gateway_pbExports.FinishSpanRequest();
|
|
4528
|
+
request.setTraceId(traceId);
|
|
4529
|
+
request.setSpanId(spanId);
|
|
4530
|
+
if (status !== undefined) {
|
|
4531
|
+
const spanStatus = new parallax_gateway_pbExports.FinishSpanRequest.SpanStatus();
|
|
4532
|
+
spanStatus.setCode(status.success ? parallax_gateway_pbExports.FinishSpanRequest.SpanStatus.StatusCode.STATUS_CODE_OK : parallax_gateway_pbExports.FinishSpanRequest.SpanStatus.StatusCode.STATUS_CODE_ERROR);
|
|
4533
|
+
if (status.errorMessage) {
|
|
4534
|
+
spanStatus.setMessage(status.errorMessage);
|
|
4535
|
+
}
|
|
4536
|
+
request.setStatus(spanStatus);
|
|
4537
|
+
}
|
|
4538
|
+
return request;
|
|
4539
|
+
}
|
|
4292
4540
|
/**
|
|
4293
4541
|
* Finish a span within a trace
|
|
4294
4542
|
* @param params Parameters to finish a span
|
|
@@ -4302,6 +4550,25 @@ class ParallaxClient {
|
|
|
4302
4550
|
throw _error;
|
|
4303
4551
|
}
|
|
4304
4552
|
}
|
|
4553
|
+
/**
|
|
4554
|
+
* Creates the add span event request
|
|
4555
|
+
* @param params - Parameters to create an AddSpanEventRequest - traceId, spanId, eventName, attr (optional)
|
|
4556
|
+
* @returns AddSpanEventRequest
|
|
4557
|
+
*/
|
|
4558
|
+
createAddSpanEventRequest({ traceId, spanId, eventName, attr }) {
|
|
4559
|
+
const request = new parallax_gateway_pbExports.AddSpanEventRequest();
|
|
4560
|
+
request.setTraceId(traceId);
|
|
4561
|
+
request.setSpanId(spanId);
|
|
4562
|
+
request.setEventName(eventName);
|
|
4563
|
+
const eventAttrs = request.getAttributesMap();
|
|
4564
|
+
if (attr) {
|
|
4565
|
+
Object.entries(attr).forEach(([key, value]) => {
|
|
4566
|
+
eventAttrs.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
|
|
4567
|
+
});
|
|
4568
|
+
}
|
|
4569
|
+
eventAttrs.set('timestamp', new Date().toISOString());
|
|
4570
|
+
return request;
|
|
4571
|
+
}
|
|
4305
4572
|
/**
|
|
4306
4573
|
* Add an event to a span
|
|
4307
4574
|
* @param params Parameters to add an event to a span
|
|
@@ -4315,6 +4582,24 @@ class ParallaxClient {
|
|
|
4315
4582
|
throw _error;
|
|
4316
4583
|
}
|
|
4317
4584
|
}
|
|
4585
|
+
/**
|
|
4586
|
+
* Creates the add span error request
|
|
4587
|
+
* @param params - params used to generate the error request ( traceid, span id, error message, error type, stack trace)
|
|
4588
|
+
* @returns AddSpanErrorRequest
|
|
4589
|
+
*/
|
|
4590
|
+
createAddSpanErrorRequest({ traceId, spanId, errorMessage, errorType, stackTrace }) {
|
|
4591
|
+
const request = new parallax_gateway_pbExports.AddSpanErrorRequest();
|
|
4592
|
+
request.setTraceId(traceId);
|
|
4593
|
+
request.setSpanId(spanId);
|
|
4594
|
+
request.setMessage(errorMessage);
|
|
4595
|
+
if (errorType) {
|
|
4596
|
+
request.setErrorType(errorType);
|
|
4597
|
+
}
|
|
4598
|
+
if (stackTrace) {
|
|
4599
|
+
request.setStackTrace(stackTrace);
|
|
4600
|
+
}
|
|
4601
|
+
return request;
|
|
4602
|
+
}
|
|
4318
4603
|
/**
|
|
4319
4604
|
* Add an error to a span
|
|
4320
4605
|
* @param params Parameters to add an error to a span
|
|
@@ -4328,6 +4613,23 @@ class ParallaxClient {
|
|
|
4328
4613
|
throw _error;
|
|
4329
4614
|
}
|
|
4330
4615
|
}
|
|
4616
|
+
/**
|
|
4617
|
+
* Creates the add span hint request
|
|
4618
|
+
* @param params - params used to generate the span hint (trace id, parentSpanId, txHash and chainId)
|
|
4619
|
+
* @returns AddSpanHintRequest
|
|
4620
|
+
*/
|
|
4621
|
+
createAddSpanHintRequest({ traceId, parentSpanId, txHash, chainId }) {
|
|
4622
|
+
const hintReq = new parallax_gateway_pbExports.AddSpanHintRequest();
|
|
4623
|
+
hintReq.setTraceId(traceId);
|
|
4624
|
+
hintReq.setParentSpanId(parentSpanId);
|
|
4625
|
+
if (txHash && chainId !== undefined) {
|
|
4626
|
+
const chainTxReq = new parallax_gateway_pbExports.AddSpanHintRequest.ChainTransaction();
|
|
4627
|
+
chainTxReq.setTxHash(txHash);
|
|
4628
|
+
chainTxReq.setChainId(chainId);
|
|
4629
|
+
hintReq.setChainTransaction(chainTxReq);
|
|
4630
|
+
}
|
|
4631
|
+
return hintReq;
|
|
4632
|
+
}
|
|
4331
4633
|
/**
|
|
4332
4634
|
* Add a hint to a span
|
|
4333
4635
|
* @param params Parameters to add a hint to a span
|
|
@@ -4450,6 +4752,339 @@ class GrpcWebRpc {
|
|
|
4450
4752
|
}
|
|
4451
4753
|
}
|
|
4452
4754
|
|
|
4755
|
+
/**
|
|
4756
|
+
* Parallax Service - Transaction Tracing for Web Applications
|
|
4757
|
+
* Creates individual traces for each transaction and tracks them through their lifecycle
|
|
4758
|
+
*
|
|
4759
|
+
* This service provides a simplified interface for tracking transactions with automatic
|
|
4760
|
+
* client metadata collection and lifecycle management.
|
|
4761
|
+
*/
|
|
4762
|
+
class ParallaxService {
|
|
4763
|
+
constructor() {
|
|
4764
|
+
Object.defineProperty(this, "client", {
|
|
4765
|
+
enumerable: true,
|
|
4766
|
+
configurable: true,
|
|
4767
|
+
writable: true,
|
|
4768
|
+
value: null
|
|
4769
|
+
});
|
|
4770
|
+
Object.defineProperty(this, "activeTransactions", {
|
|
4771
|
+
enumerable: true,
|
|
4772
|
+
configurable: true,
|
|
4773
|
+
writable: true,
|
|
4774
|
+
value: new Map()
|
|
4775
|
+
});
|
|
4776
|
+
// Client will be initialized lazily
|
|
4777
|
+
}
|
|
4778
|
+
/**
|
|
4779
|
+
* Initialize the Parallax client (lazy initialization)
|
|
4780
|
+
* @param apiKey - Optional API key for authentication
|
|
4781
|
+
* @param gatewayUrl - Optional custom gateway URL
|
|
4782
|
+
*/
|
|
4783
|
+
_ensureClient(apiKey, gatewayUrl) {
|
|
4784
|
+
if (this.client)
|
|
4785
|
+
return;
|
|
4786
|
+
// Determine gateway URL based on environment if not provided
|
|
4787
|
+
let url = gatewayUrl;
|
|
4788
|
+
if (!url && typeof window !== 'undefined') {
|
|
4789
|
+
const isDevelopment = window.location.hostname === 'localhost' ||
|
|
4790
|
+
window.location.hostname === '127.0.0.1';
|
|
4791
|
+
url = isDevelopment
|
|
4792
|
+
? `${window.location.protocol}//${window.location.host}/parallax-gateway`
|
|
4793
|
+
: 'https://gateway-parallax-dev.mirador.org';
|
|
4794
|
+
}
|
|
4795
|
+
this.client = new ParallaxClient(apiKey || '', url);
|
|
4796
|
+
console.log('[ParallaxService] Client initialized with URL:', url);
|
|
4797
|
+
}
|
|
4798
|
+
/**
|
|
4799
|
+
* Start a new transaction trace
|
|
4800
|
+
* Called when user initiates a transaction
|
|
4801
|
+
*
|
|
4802
|
+
* Note: Since createTrace now automatically creates a root span, we don't need
|
|
4803
|
+
* to call startSpan separately. The rootSpanId from the response is the parent span.
|
|
4804
|
+
*
|
|
4805
|
+
* @param txData - Transaction data
|
|
4806
|
+
* @param name - Name for the trace (e.g., 'SendingTrace', 'SwappingTrace')
|
|
4807
|
+
* @param options - Optional configuration (apiKey, gatewayUrl, includeClientMeta)
|
|
4808
|
+
* @returns Promise with traceId, rootSpanId, and txId
|
|
4809
|
+
*/
|
|
4810
|
+
async startTransactionTrace(txData, name = 'WalletTransaction', options) {
|
|
4811
|
+
this._ensureClient(options?.apiKey, options?.gatewayUrl);
|
|
4812
|
+
if (!this.client) {
|
|
4813
|
+
throw new Error('Failed to initialize Parallax client');
|
|
4814
|
+
}
|
|
4815
|
+
try {
|
|
4816
|
+
const txId = `tx_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
4817
|
+
const timestamp = new Date().toISOString();
|
|
4818
|
+
// Create trace attributes
|
|
4819
|
+
const traceAttributes = {
|
|
4820
|
+
transactionId: txId,
|
|
4821
|
+
walletAddress: txData.walletAddress || txData.from,
|
|
4822
|
+
network: txData.network || 'Unknown',
|
|
4823
|
+
transactionStart: timestamp,
|
|
4824
|
+
from: txData.from,
|
|
4825
|
+
to: txData.to,
|
|
4826
|
+
value: txData.value,
|
|
4827
|
+
};
|
|
4828
|
+
// Add any additional transaction data
|
|
4829
|
+
if (txData.additionalData) {
|
|
4830
|
+
Object.entries(txData.additionalData).forEach(([key, value]) => {
|
|
4831
|
+
traceAttributes[key] = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
4832
|
+
});
|
|
4833
|
+
}
|
|
4834
|
+
// Create a trace for this transaction
|
|
4835
|
+
const createTraceReq = await this.client.createTraceRequest({
|
|
4836
|
+
name: name,
|
|
4837
|
+
attr: traceAttributes,
|
|
4838
|
+
tags: ['transaction', 'wallet', txData.network || 'unknown'],
|
|
4839
|
+
includeClientMeta: options?.includeClientMeta ?? true,
|
|
4840
|
+
});
|
|
4841
|
+
const traceResponse = await this.client.createTrace(createTraceReq);
|
|
4842
|
+
const traceId = traceResponse.getTraceId();
|
|
4843
|
+
const rootSpanId = traceResponse.getRootSpanId();
|
|
4844
|
+
// Store transaction info
|
|
4845
|
+
this.activeTransactions.set(txId, {
|
|
4846
|
+
traceId,
|
|
4847
|
+
rootSpanId,
|
|
4848
|
+
spanId: rootSpanId, // Use rootSpanId as the main span for this transaction
|
|
4849
|
+
timestamp,
|
|
4850
|
+
txHash: null,
|
|
4851
|
+
from: txData.from,
|
|
4852
|
+
to: txData.to,
|
|
4853
|
+
network: txData.network,
|
|
4854
|
+
});
|
|
4855
|
+
console.log('[ParallaxService] Transaction trace started:', {
|
|
4856
|
+
txId,
|
|
4857
|
+
traceId,
|
|
4858
|
+
rootSpanId,
|
|
4859
|
+
from: txData.from,
|
|
4860
|
+
to: txData.to,
|
|
4861
|
+
});
|
|
4862
|
+
// Add initial event to the root span
|
|
4863
|
+
await this.addTransactionEvent(txId, 'transaction_initiated', {
|
|
4864
|
+
from: txData.from,
|
|
4865
|
+
to: txData.to,
|
|
4866
|
+
value: txData.value,
|
|
4867
|
+
timestamp,
|
|
4868
|
+
});
|
|
4869
|
+
return { traceId, rootSpanId, txId };
|
|
4870
|
+
}
|
|
4871
|
+
catch (error) {
|
|
4872
|
+
console.error('[ParallaxService] Failed to start transaction trace:', error);
|
|
4873
|
+
throw error;
|
|
4874
|
+
}
|
|
4875
|
+
}
|
|
4876
|
+
/**
|
|
4877
|
+
* Associate a transaction hash with an existing trace
|
|
4878
|
+
* Called when the transaction hash is available after signing/sending
|
|
4879
|
+
*
|
|
4880
|
+
* @param txId - Transaction identifier returned from startTransactionTrace
|
|
4881
|
+
* @param txHash - Blockchain transaction hash
|
|
4882
|
+
* @param chainId - Chain ID
|
|
4883
|
+
*/
|
|
4884
|
+
async associateTransactionHash(txId, txHash, chainId) {
|
|
4885
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4886
|
+
if (!txInfo) {
|
|
4887
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found in active transactions`);
|
|
4888
|
+
return;
|
|
4889
|
+
}
|
|
4890
|
+
if (!this.client) {
|
|
4891
|
+
console.warn('[ParallaxService] Client not initialized');
|
|
4892
|
+
return;
|
|
4893
|
+
}
|
|
4894
|
+
try {
|
|
4895
|
+
// Update stored tx info
|
|
4896
|
+
txInfo.txHash = txHash;
|
|
4897
|
+
this.activeTransactions.set(txId, txInfo);
|
|
4898
|
+
// Add chain hint to correlate with blockchain events
|
|
4899
|
+
const hintReq = this.client.createAddSpanHintRequest({
|
|
4900
|
+
traceId: txInfo.traceId,
|
|
4901
|
+
parentSpanId: txInfo.rootSpanId,
|
|
4902
|
+
txHash: txHash,
|
|
4903
|
+
chainId: chainId,
|
|
4904
|
+
});
|
|
4905
|
+
await this.client.addSpanHint(hintReq);
|
|
4906
|
+
// Add event for transaction sent
|
|
4907
|
+
await this.addTransactionEvent(txId, 'transaction_hash_available', {
|
|
4908
|
+
txHash,
|
|
4909
|
+
chainId: chainId.toString(),
|
|
4910
|
+
timestamp: new Date().toISOString(),
|
|
4911
|
+
});
|
|
4912
|
+
console.log('[ParallaxService] Transaction hash associated with trace:', {
|
|
4913
|
+
txId,
|
|
4914
|
+
txHash,
|
|
4915
|
+
traceId: txInfo.traceId,
|
|
4916
|
+
});
|
|
4917
|
+
}
|
|
4918
|
+
catch (error) {
|
|
4919
|
+
console.error('[ParallaxService] Failed to associate transaction hash:', error);
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
/**
|
|
4923
|
+
* Add an event to a transaction trace
|
|
4924
|
+
*
|
|
4925
|
+
* @param txId - Transaction identifier
|
|
4926
|
+
* @param eventName - Event name
|
|
4927
|
+
* @param attributes - Event attributes
|
|
4928
|
+
*/
|
|
4929
|
+
async addTransactionEvent(txId, eventName, attributes = {}) {
|
|
4930
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4931
|
+
if (!txInfo) {
|
|
4932
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot add event '${eventName}'`);
|
|
4933
|
+
return;
|
|
4934
|
+
}
|
|
4935
|
+
if (!this.client || !txInfo.spanId) {
|
|
4936
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
4937
|
+
return;
|
|
4938
|
+
}
|
|
4939
|
+
try {
|
|
4940
|
+
// Convert attributes to plain object with string values
|
|
4941
|
+
const eventAttributes = {};
|
|
4942
|
+
Object.entries(attributes).forEach(([key, value]) => {
|
|
4943
|
+
eventAttributes[key] = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
4944
|
+
});
|
|
4945
|
+
const request = this.client.createAddSpanEventRequest({
|
|
4946
|
+
traceId: txInfo.traceId,
|
|
4947
|
+
spanId: txInfo.spanId,
|
|
4948
|
+
eventName: eventName,
|
|
4949
|
+
attr: eventAttributes,
|
|
4950
|
+
});
|
|
4951
|
+
await this.client.addSpanEvent(request);
|
|
4952
|
+
}
|
|
4953
|
+
catch (error) {
|
|
4954
|
+
console.error(`[ParallaxService] Failed to add transaction event '${eventName}':`, error);
|
|
4955
|
+
}
|
|
4956
|
+
}
|
|
4957
|
+
/**
|
|
4958
|
+
* Add an error to a transaction trace
|
|
4959
|
+
* Creates a proper span error event in Parallax
|
|
4960
|
+
*
|
|
4961
|
+
* @param txId - Transaction identifier
|
|
4962
|
+
* @param error - Error object or message
|
|
4963
|
+
* @param errorType - Type/category of error (e.g., 'TransactionError', 'NetworkError', 'UserRejection')
|
|
4964
|
+
*/
|
|
4965
|
+
async addTransactionError(txId, error, errorType = 'TransactionError') {
|
|
4966
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
4967
|
+
if (!txInfo) {
|
|
4968
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot add error.`);
|
|
4969
|
+
return;
|
|
4970
|
+
}
|
|
4971
|
+
if (!this.client || !txInfo.spanId) {
|
|
4972
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
4973
|
+
return;
|
|
4974
|
+
}
|
|
4975
|
+
try {
|
|
4976
|
+
// Extract error message and stack trace
|
|
4977
|
+
let errorMessage = '';
|
|
4978
|
+
let stackTrace;
|
|
4979
|
+
if (error instanceof Error) {
|
|
4980
|
+
errorMessage = error.message;
|
|
4981
|
+
stackTrace = error.stack;
|
|
4982
|
+
}
|
|
4983
|
+
else {
|
|
4984
|
+
errorMessage = String(error);
|
|
4985
|
+
}
|
|
4986
|
+
const request = this.client.createAddSpanErrorRequest({
|
|
4987
|
+
traceId: txInfo.traceId,
|
|
4988
|
+
spanId: txInfo.spanId,
|
|
4989
|
+
errorMessage: errorMessage,
|
|
4990
|
+
errorType: errorType,
|
|
4991
|
+
stackTrace: stackTrace,
|
|
4992
|
+
});
|
|
4993
|
+
await this.client.addSpanError(request);
|
|
4994
|
+
console.log('[ParallaxService] Transaction error added to trace:', {
|
|
4995
|
+
txId,
|
|
4996
|
+
errorType,
|
|
4997
|
+
message: error instanceof Error ? error.message : String(error),
|
|
4998
|
+
});
|
|
4999
|
+
}
|
|
5000
|
+
catch (err) {
|
|
5001
|
+
console.error('[ParallaxService] Failed to add transaction error:', err);
|
|
5002
|
+
}
|
|
5003
|
+
}
|
|
5004
|
+
/**
|
|
5005
|
+
* Finish a transaction trace
|
|
5006
|
+
* Called when transaction is confirmed or permanently failed
|
|
5007
|
+
*
|
|
5008
|
+
* @param txId - Transaction identifier
|
|
5009
|
+
* @param options - Finish options (success, error message)
|
|
5010
|
+
*/
|
|
5011
|
+
async finishTransactionTrace(txId, options = { success: true }) {
|
|
5012
|
+
const txInfo = this.activeTransactions.get(txId);
|
|
5013
|
+
if (!txInfo) {
|
|
5014
|
+
console.warn(`[ParallaxService] Transaction ${txId} not found. Cannot finish.`);
|
|
5015
|
+
return;
|
|
5016
|
+
}
|
|
5017
|
+
if (!this.client || !txInfo.spanId) {
|
|
5018
|
+
console.warn('[ParallaxService] Client not initialized or span not available');
|
|
5019
|
+
return;
|
|
5020
|
+
}
|
|
5021
|
+
try {
|
|
5022
|
+
// Add final event
|
|
5023
|
+
await this.addTransactionEvent(txId, options.success ? 'transaction_completed' : 'transaction_failed', {
|
|
5024
|
+
success: options.success.toString(),
|
|
5025
|
+
error: options.error || '',
|
|
5026
|
+
duration: (Date.now() - new Date(txInfo.timestamp).getTime()).toString(),
|
|
5027
|
+
timestamp: new Date().toISOString(),
|
|
5028
|
+
});
|
|
5029
|
+
// Finish the span
|
|
5030
|
+
const request = this.client.createFinishSpanRequest({
|
|
5031
|
+
traceId: txInfo.traceId,
|
|
5032
|
+
spanId: txInfo.spanId,
|
|
5033
|
+
status: {
|
|
5034
|
+
success: options.success,
|
|
5035
|
+
errorMessage: options.error || '',
|
|
5036
|
+
},
|
|
5037
|
+
});
|
|
5038
|
+
await this.client.finishSpan(request);
|
|
5039
|
+
console.log('[ParallaxService] Transaction trace finished:', {
|
|
5040
|
+
txId,
|
|
5041
|
+
traceId: txInfo.traceId,
|
|
5042
|
+
success: options.success,
|
|
5043
|
+
txHash: txInfo.txHash,
|
|
5044
|
+
});
|
|
5045
|
+
// Remove from active transactions
|
|
5046
|
+
this.activeTransactions.delete(txId);
|
|
5047
|
+
}
|
|
5048
|
+
catch (error) {
|
|
5049
|
+
console.error('[ParallaxService] Failed to finish transaction trace:', error);
|
|
5050
|
+
}
|
|
5051
|
+
}
|
|
5052
|
+
/**
|
|
5053
|
+
* Get info about an active transaction
|
|
5054
|
+
*
|
|
5055
|
+
* @param txId - Transaction identifier
|
|
5056
|
+
* @returns Transaction info or null if not found
|
|
5057
|
+
*/
|
|
5058
|
+
getTransactionInfo(txId) {
|
|
5059
|
+
return this.activeTransactions.get(txId) || null;
|
|
5060
|
+
}
|
|
5061
|
+
/**
|
|
5062
|
+
* Get all active transactions
|
|
5063
|
+
*
|
|
5064
|
+
* @returns Array of active transaction info
|
|
5065
|
+
*/
|
|
5066
|
+
getAllActiveTransactions() {
|
|
5067
|
+
return Array.from(this.activeTransactions.entries()).map(([txId, info]) => ({
|
|
5068
|
+
txId,
|
|
5069
|
+
...info,
|
|
5070
|
+
}));
|
|
5071
|
+
}
|
|
5072
|
+
/**
|
|
5073
|
+
* Get the ParallaxClient instance for advanced usage
|
|
5074
|
+
* @param apiKey - Optional API key
|
|
5075
|
+
* @param gatewayUrl - Optional gateway URL
|
|
5076
|
+
*/
|
|
5077
|
+
getClient(apiKey, gatewayUrl) {
|
|
5078
|
+
this._ensureClient(apiKey, gatewayUrl);
|
|
5079
|
+
if (!this.client) {
|
|
5080
|
+
throw new Error('Failed to initialize Parallax client');
|
|
5081
|
+
}
|
|
5082
|
+
return this.client;
|
|
5083
|
+
}
|
|
5084
|
+
}
|
|
5085
|
+
// Export singleton instance
|
|
5086
|
+
const parallaxService = new ParallaxService();
|
|
5087
|
+
|
|
4453
5088
|
var AddSpanErrorRequest = parallax_gateway_pbExports.AddSpanErrorRequest;
|
|
4454
5089
|
var AddSpanErrorResponse = parallax_gateway_pbExports.AddSpanErrorResponse;
|
|
4455
5090
|
var AddSpanEventRequest = parallax_gateway_pbExports.AddSpanEventRequest;
|
|
@@ -4462,5 +5097,5 @@ var FinishSpanRequest = parallax_gateway_pbExports.FinishSpanRequest;
|
|
|
4462
5097
|
var FinishSpanResponse = parallax_gateway_pbExports.FinishSpanResponse;
|
|
4463
5098
|
var StartSpanRequest = parallax_gateway_pbExports.StartSpanRequest;
|
|
4464
5099
|
var StartSpanResponse = parallax_gateway_pbExports.StartSpanResponse;
|
|
4465
|
-
export { AddSpanErrorRequest, AddSpanErrorResponse, AddSpanEventRequest, AddSpanEventResponse, AddSpanHintRequest, AddSpanHintResponse, CreateTraceRequest, CreateTraceResponse, FinishSpanRequest, FinishSpanResponse, GrpcWebRpc, ParallaxClient, StartSpanRequest, StartSpanResponse };
|
|
5100
|
+
export { AddSpanErrorRequest, AddSpanErrorResponse, AddSpanEventRequest, AddSpanEventResponse, AddSpanHintRequest, AddSpanHintResponse, CreateTraceRequest, CreateTraceResponse, FinishSpanRequest, FinishSpanResponse, GrpcWebRpc, ParallaxClient, ParallaxService, StartSpanRequest, StartSpanResponse, parallaxService };
|
|
4466
5101
|
//# sourceMappingURL=index.esm.js.map
|